GPU端到端目标检测YOLOV3全过程(上)

GPU端到端目标检测YOLOV3全过程(上)

Basic Parameters:

    • Video: mp4, webM, avi
    • Picture: jpg, png, gif, bmp
    • Text: doc, html, txt, pdf, excel
    • Video File Size:  not more than 10GB
    • batch=16, subdivisions=1
    • Resolution: 416 * 416, 320 * 320.
    • Frame: 45f/s with 320 * 320. At 320 × 320 YOLOv3 runs in 22 ms at 28.2 mAP, as accurate as SSD but three times faster.
    • AI Framework:TensorFlow, Pytorch, Mxnet, Caffe
    • Programming Lanuage:  Python/C/C++/Java
    • Accept:  application/json, text/plain, */*
    • Accept-Language:  en-US, en;
    • Files Input Parameters of Test Model : *.model,*.weight
    • Files Input Parameters of Train Model : Filename, Path, Resolution,…
    • Files Output Parameters of Train Model : *.model,*.weight
    • Files Output Parameters of Test Model : Class Number,Class Name,mAP value
    • Hardware: VGA, DVI, HDMI, DP, SDI, BNC, WIFI, Bluetooth, USB, CAN, Socket, PCIE, SD Card, Serial Port, Clock Time, SPI, Uart, I2C/I2S, GPIO, Touch Ctrl, LCD, LED, EMMC, SATA, Audio ADC
    • Dependency Library: v4l2(Video for linux2),ffmpeg,VLC media player,opencv,
    • CUDA,cudann,Tensorflow,Pytorch,Mxnet,Caffe,Ubuntu,
    • darknet,udp/tcp,H264、AAC,rtmp、rtp/rtcp,ffmpeg、x264、
    • WebRTC、GStreamer,NEON、OpenCL、OpenGL ES,
    • MongoDB/MySQL/Redis,
    • dataset:coco,kitti,VOC
    • lanuage:python/c/c++
    • 图像分类经典网络模型
    • LeNet-5
    • AlexNet
    • VGG-16/VGG-19
    • GoogLeNet
    • Inception v3/v4
    • ResNet
    • preResNet
    • ResNeXt
    • SENet
    • GPU端到端目标检测YOLOV3全过程(上)

       

       

 GPU端到端目标检测YOLOV3全过程(上)

 

 

目标检测网络模型:

R-CNN(Region-CNN)

SPP Net

Fast R-CNN

Faster R-CNN

R-FCN

YOLO

SSD

FPN

RetinaNet

GPU端到端目标检测YOLOV3全过程(上)

 

 

GPU端到端目标检测YOLOV3全过程(上)

 

 

GPU端到端目标检测YOLOV3全过程(上)

 

 

GPU端到端目标检测YOLOV3全过程(上)

 

 

GPU端到端目标检测YOLOV3全过程(上)

 

 

GPU端到端目标检测YOLOV3全过程(上)

 

 

 GPU端到端目标检测YOLOV3全过程(上)

 

 

 

 
 

目标检测常用数据集

Pascal VOC http://host.robots.ox.ac.uk/pascal/VOC/

MS COCO http://cocodataset.org/#home

KITI http://www.cvlibs.net/datasets/kitti/eval_object.php?obj_benchmark=2d

ImageNet http://www.image-net.org/

Berkeley发布BDD100K bdd-data.berkeley.edu/#download-section

 

 

 

 

 

 

 

 

 

 

语义分割(semantic segmentation)

Mask R-CNN

FCN

SegNet

Unet

DeepLab

RefineNet

PSPNet

GCN

DeepLabV3 ASPP

GAN

目标检测常用数据集

Pascal VOC http://host.robots.ox.ac.uk/pascal/VOC/

MS COCO http://cocodataset.org/#home

KITI http://www.cvlibs.net/datasets/kitti/eval_object.php?obj_benchmark=2d

Cityscapeshttps://www.cityscapes-dataset.com/dataset-overview/#features

ImageNet http://www.image-net.org/

Berkeley发布BDD100K: bdd-data.berkeley.edu/#download-section

NYUDv2https://cs.nyu.edu/~silberman/datasets/nyu_depth_v2.html

SUN-RGBDhttp://rgbd.cs.princeton.edu/

ADE20K_MIThttp://groups.csail.mit.edu/vision/datasets/ADE20K/

名称

优点

缺点

FCN

可以接受任意大小的图像输入;避免了采用像素块带来的重复存储和计算的问题

得到的结果不太精确,对图像的细节不敏感,没有考虑像素与像素之间的关系,缺乏空间一致性

SegNet

使用去池化对特征图进行上采样,在分割中保持细节的完整性;去掉全连接层,拥有较少的参数

当对低分辨率的特征图进行去池化时,会忽略邻近像素的信息

Deconvnet

对分割的细节处理要强于 FCN,位于低层的filter 能捕获目标的形状信息,位于高层的 filter能够捕获特定类别的细节信息,分割效果更好

对细节的处理难度较大

U-net

简单地将编码器的特征图拼接至每个阶段解码器的上采样特征图,形成了一个梯形结构;采用跳跃连接架构,允许解码器学习在编码器池化中丢失的相关性

在卷积过程中没有加pad,导致在每一次卷积后,特征长度就会减少两个像素,导致网络最后的输出与输入大小不一样

DeepLab

使用了空洞卷积;全连接条件随机场

得到的预测结果只有原始输入的 1/8 大小

RefineNet

带有解码器模块的编码器-解码器结构;所有组件遵循残差连接的设计方式

带有解码器模块的编码器-解码器结构;所有组件遵循残差连接的设计方式

PSPNet

提出金字塔模块来聚合背景信息;使用了附加损失

采用四种不同的金字塔池化模块,对细节的处理要求较高

GCN

提出了带有大维度卷积核的编码器-解码器结构

计算复杂,具有较多的结构参数

DeepLabV3 ASPP

采用了Multigrid;在原有的网络基础上增加了几个 block;提出了ASPP,加入了   BN

不能捕捉图像大范围信息,图像层的特征整合只存在于 ASPP中

GAN

提出将分割网络作为判别器,GAN   扩展训练数据,提升训练效果;将判别器改造为 FCN,从将判别每一个样本的真假变为每一个像素的真假

没有比较与全监督+半监督精调模型的实验结果,只体现了在本文中所提创新点起到了一定的作用,但并没有体现有效的程度GPU端到端目标检测YOLOV3全过程(上)

 

 

 

人脸识别

网络模型:

dlib
mtcnn

DeepFace

OpenFace

DeepID

Facenet

VGGFace

Face Recognition Compare

模型

速度

维度 

准确度 (LFW数据)

准确度(YTF视频) 

DeepFace

0.18s+0.05s(对齐)

4096

97.35%  

92.5%

DeepID

35ms(GPU)

160  

99.15%

无 

FaceNet(NN3) 

无,但是NNS2移动端是30ms

512

99.65%

95.12% 

  • Video Codec
  • H264/H265/H266
  • Ffmpeg/Gstream/OpenMax

流媒体(Streaming Media)技术是指将一连串的媒体数据压缩后,以流的方式在网络中分段传送,实现在网络上实时传输影音以供观赏的一种技术。

流媒体实际指的是一种新的媒体传送方式,有声音流、视频流、文本流、图像流、动画流等,而非一种新的媒体。

流媒体文件格式是支持采用流式传输及播放的媒体格式。常用格式有:RA:实时声音;RM:实时视频或音频的实时媒体;RT:实时文本;RP:实时图像;SMII.:同步的多重数据类型综合设计文件;SWF:real flash和shockwavc flash动面文件;RPM: HTMI。文件的插件;RAM:流媒体的源文件,是包含RA、RM、SMIIJ文件地址(URL地址)的文本文件;CSF:一种类似媒体容器的文件格式,可以将非常多的媒体格式包含在其中,而不仅仅限于音、视频。quicktime,mov,asf,wmv,wma,avi,mpeg,mpg,dat,mts; aam多媒体教学课件格式,可将authorware生成的文件压缩为aam和aas流式文件播放。

 

FFMPEG

GStreamer

OpenMax

History

2009

2002

2006 Khronos & NVidia

OS

Windows, Linux, MacOS

Linux, Windows, Android, iOS

Android (Cross-platform)

Who?

Youtube, chrome, facebook, Baidu

Table later

Khronos

SW layer

APP(player, tool) & Framework

App, Framework & plugin

Framework & Library

Overall arch

~ Well packaged API with details hidden

~  Simple and clear API flow

~ Pipeline-module driven

~ plug-in based

~ Layer based API 

Advantage

~ Quick development, easier start

~ Less modularized, hard to extend for IVA E2E solution

~ Strong support @ Media Stream player

~ highly expandable to support IVA

~ Deepstream as Gstreamer plugin

~ User defined Stream Type

~ mobile platform

~ CTS

Others

~ Integrated core into Gstreamer plug-in & with OpenMax

~ C/C++ based

~ Advanced developers, larger code size

~ C based

~ C based

 

 GPU端到端目标检测YOLOV3全过程(上)

 

 

CMOS图像传感器内部结构及工作原理

1. CMOS sensor内部结构

 GPU端到端目标检测YOLOV3全过程(上)

 

 

2. CMOS sensor整个平面构造图(floorplan)

光电二极管具有正向导通反向截止的特殊,反向的特性还有个电容的特性,当在二极管上加反向偏置电压时,就会给电容充电,当电容充满电荷之后,光子的射入会导致内部激发出新的电子 空穴对,与原来充电形成的电子空穴对进行配对放电,形成光电流I_ph,光电流I_ph给右侧的电容充电变成一个电压输出,

 GPU端到端目标检测YOLOV3全过程(上)

 

 

3.光子(Photon)与量子效率(quantum efficiency)

自然界中有不同频率的光线,如果我们简单来说分成RGB三种频率的光线,由于RGB的频率不同,所载有的能量也是不同的,以蓝光子为例,所载有的能量为4.41E-19焦耳,单个光子的能量E=hc/普朗克常量,那么一束光子的能量就等于所有光子能量的总和Total_Power=sum_of(all photons)。量子效率QE定义为,在一个camera sensor里面,经过color filter透射过来的光子转变成电荷的的效率,如果透射过来三个光子,产生出来一个电子空穴对,那么这个效率就是1/3.

 GPU端到端目标检测YOLOV3全过程(上)

 

 

4.与量子效率QE有关的几个重要概念

QE是衡量某个颜色通道某个频率/波长的光子转换成电子的效率

在不同的波长上QE是不一样的。

camera sensor可以感受近红外的波段,这个不符合人眼视觉的感受的,需要用IR cut把近红外的波段去除掉,否则红色通道感光就会过强,这样出来的图像就会偏红。

像素不能够被一个颜色的光激发的现在叫crosstalk,理想情况crosstalk为0。

sensitivity感光度:同样的光子能够激发出的电荷

sensitivity=QE*pixel_size    QE越高激发出来的电荷越多,pixel_size越大激发出来的电荷越多

 GPU端到端目标检测YOLOV3全过程(上)

 

 

5.感光过程

 GPU端到端目标检测YOLOV3全过程(上)

 

 

6.读取过程

 GPU端到端目标检测YOLOV3全过程(上)

 

 

7.动态范围

 

 GPU端到端目标检测YOLOV3全过程(上)

 

 

 

TX2作为TX1的改进版,资源配置相当强劲。 
1. 模组配置 
 256 core NVIDIA Pascal GPU. 
 ARMv8 (64-bit) Multi-Processor CPU Complex. 
 Advanced HD Video Encoder. 
 Advanced HD Video Decoder. 
 Display Controller Subsystem. 
 128-bit Memory Controller. 
 8GB LPDDR4 and 32 GB eMMC memory 
 1.4Gpix/s Advanced image signal processing 
 Audio Processing Engine. 
2. 对外接口 

 GPU端到端目标检测YOLOV3全过程(上)

 

 

  1. 载板配置 
    TX1和TX2封装尺寸大致相同,接插件也兼容,有些引脚TX1没有引出,但是TX2引出了,不同之处可以参考官方文档《JetsonTX1_TX2_Developer_Kit_Carrier_Board_Specification》对比。

 GPU端到端目标检测YOLOV3全过程(上)

 

 

TX1与TX2开发板载板其实是完全一致的,经过实际验证,模组可以互换。 
载板配置如下: 

 GPU端到端目标检测YOLOV3全过程(上)

 

 

 

3. Pascal GPU

 GPU端到端目标检测YOLOV3全过程(上)

 

 

 

 GPU端到端目标检测YOLOV3全过程(上)

 

 

一. 视频采集接口

常用视频采集接口根据是否支持EDID分成两类,支持EDID的接口DVI、VGA、HDMI、DP接口,不支持EDID协议的SDI、YPbPr、BNC。

支持EDID的接口:
VGA(Video Graphics Array):

GPU端到端目标检测YOLOV3全过程(上)

 

 


GPU端到端目标检测YOLOV3全过程(上)

 

 


VGA传递的是模拟信号,计算机显卡产生的是数字信号,显示器使用的也是数字信号,VGA视频接口需要进行数模转换、模数转换,信号转换过程中会有损失。

DVI(Digital Visual Interface)数字视频接口:

 GPU端到端目标检测YOLOV3全过程(上)

 

 

 GPU端到端目标检测YOLOV3全过程(上)

 

 

DVI传输的是数字信号,没有模数/数模转换的信号损失,但是只传输视频不传输音频。

HDMI(High Definition Multimedia Interface)高清晰度多媒体接口:

GPU端到端目标检测YOLOV3全过程(上)

 

 

HDMI传输的也是数字信号,但是它是视音频同时传输。

DP(Displayport)显示接口:

GPU端到端目标检测YOLOV3全过程(上)

 

 


Displayport兼容HDMI、DVI、VGA标准,而HDMI只对DVI兼容。Displayport标准完全开放,而HDMI标准则需要授权。运用场景方面,Displayport标准主要运用于PC领域,而HDMI标准则更广泛的运用到消费类电子产品上。DP与HDMI在性能上没有多大区别。如果你使用3840x2160分辨率,HDMI由于带宽不足,最大只能传送30帧,DP就没有问题。

不支持EDID的接口:
SDI(Serial Digital Interface)数字分量串行接口:
GPU端到端目标检测YOLOV3全过程(上)

 

 


串行接口是把数据字的各个比特以及相应的数据通过单一通道顺序传送的接口。由于串行数字信号的数据率很高,在传送前必须经过处理。

YPbPr色差分量接口:

GPU端到端目标检测YOLOV3全过程(上)

 

 

YPbPr也是模拟信号,它和RGB是线性的转换关系,Pb信号是蓝色和亮度的差的某个倍数,Pr信号是红色和亮度的差的某个倍数还有个区别就是,水平垂直同步信号,是加载在Y信号,也就是绿线上面的,所以一般它只需要三根线。

BNC(Bayonet Nut Connector)卡扣配合型接口:

GPU端到端目标检测YOLOV3全过程(上)

 

 



BNC接头由R、G、B三原色信号以及行同步、场同步五个独立信号接头组成,BNC接头可以让视频信号相互间干扰减少,可达到最佳信号响应效果。

GPU端到端目标检测YOLOV3全过程(上)

 

 

 GPU端到端目标检测YOLOV3全过程(上)

 

上一篇:Linux 下用 HDMI 线外接高分辨率显示器不能正常显示的一种解决方法


下一篇:树莓派配置文档 config.txt 说明