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

目标检测网络模型:

R-CNN(Region-CNN)

SPP Net

Fast R-CNN

Faster R-CNN

R-FCN

YOLO

SSD

FPN

RetinaNet

 
 

目标检测常用数据集

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

Cityscapes:https://www.cityscapes-dataset.com/dataset-overview/#features

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

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

NYUDv2:https://cs.nyu.edu/~silberman/datasets/nyu_depth_v2.html

SUN-RGBD:http://rgbd.cs.princeton.edu/

ADE20K_MIT:http://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,从将判别每一个样本的真假变为每一个像素的真假

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

人脸识别

网络模型:

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

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

1. CMOS sensor内部结构

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

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

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

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

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

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

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

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

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

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

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

5.感光过程

6.读取过程

7.动态范围

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. 对外接口

  1. 载板配置 

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

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

载板配置如下:

3. Pascal GPU

一.
视频采集接口

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

支持EDID的接口:

VGA(Video Graphics Array):

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

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

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

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

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

DP(Displayport)显示接口:

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

不支持EDID的接口:

SDI(Serial Digital Interface)数字分量串行接口:

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

YPbPr色差分量接口:

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

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

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

GPU端到端目标检测YOLOV3全过程(上)的更多相关文章

  1. GPU端到端目标检测YOLOV3全过程(下)

    GPU端到端目标检测YOLOV3全过程(下) Ubuntu18.04系统下最新版GPU环境配置 安装显卡驱动 安装Cuda 10.0 安装cuDNN 1.安装显卡驱动 (1)这里采用的是PPA源的安装 ...

  2. GPU端到端目标检测YOLOV3全过程(中)

    GPU端到端目标检测YOLOV3全过程(中)   计算机视觉初级部分知识体系                       总结了一下自己在计算机视觉初级部分的知识框架,整理如下.  个人所学并不全面( ...

  3. Yolo:实时目标检测实战(上)

    Yolo:实时目标检测实战(上) YOLO:Real-Time Object Detection 你只看一次(YOLO)是一个最先进的实时物体检测系统.在帕斯卡泰坦X上,它以每秒30帧的速度处理图像, ...

  4. 小白也能弄懂的目标检测YOLO系列之YOLOV1 - 第二期

    上期给大家展示了用VisDrone数据集训练pytorch版YOLOV3模型的效果,介绍了什么是目标检测.目标检测目前比较流行的检测算法和效果比较以及YOLO的进化史,这期我们来讲解YOLO最原始V1 ...

  5. 目标检测算法之R-CNN和SPPNet原理

    一.R-CNN的原理 R-CNN的全称是Region-CNN,它可以说是第一个将深度学习应用到目标检测上的算法.后面将要学习的Fast R-CNN.Faster R-CNN全部都是建立在R-CNN基础 ...

  6. 目标检测,主要问题发展,非极大值抑制中阈值也作为参数去学习更满足end2end,最近发展趋势和主要研究思路方向

    目标检测,主要问题发展,非极大值抑制中阈值也作为参数去学习更满足end2end,最近发展趋势和主要研究思路方向 待办 目标检测问题时间线 特征金字塔加滑窗 对象框推荐 回归算法回归对象框 多尺度检测 ...

  7. pytorch实现yolov3(5) 实现端到端的目标检测

    torch实现yolov3(1) torch实现yolov3(2) torch实现yolov3(3) torch实现yolov3(4) 前面4篇已经实现了network的forward,并且将netw ...

  8. 目标检测算法之YOLOv3

    参考地址:https://blog.csdn.net/leviopku/article/details/82660381 YOLO v3结构图 DBL:卷积+BN+leaky relu,是v3的最小组 ...

  9. GPU上创建目标检测Pipeline管道

    GPU上创建目标检测Pipeline管道 Creating an Object Detection Pipeline for GPUs 今年3月早些时候,展示了retinanet示例,这是一个开源示例 ...

随机推荐

  1. C/C++ 实现多线程与线程同步

    多线程中的线程同步可以使用,CreateThread,CreateMutex 互斥锁实现线程同步,通过临界区实现线程同步,Semaphore 基于信号实现线程同步,CreateEvent 事件对象的同 ...

  2. 从苏宁电器到卡巴斯基第27篇:难忘的三年硕士时光 V

    一发不可收拾 安全领域的公司都喜欢在看雪或者是吾爱破解这样的网站上发布招聘贴,因为这样的话很容易就能够招到适合的人才,也算是精准营销了.而像我这种想进入安全圈的,也会在这里发布自己的求职简历,以期望能 ...

  3. Android Hook框架adbi的分析(1)---注入工具hijack

    本文博客地址:http://blog.csdn.net/qq1084283172/article/details/74055505 一.Android Hook框架adbi的基本介绍 adbi是And ...

  4. POJ1719行列匹配

    题意:      给一个n*m的格子,每一列都有两个白色的,其余的全是黑色的,然后要选择m个格子,要求是每一列必须也只能选一个,而每一行至少选择一个,输出一种可行的方案没,输出的格式是输出m个数,表示 ...

  5. Intel汇编语言程序设计学习-第五章 过程-上

    过程 5.1  简介 需要阅读本章的理由可能很多: 1.读者可能想要学习如何在汇编语言中进行输入输出. 2.应该了解运行时栈(runtime stack),运行时栈是子过程(函数)调用以及从子过程返回 ...

  6. Python JWT 介绍

    Python JWT 介绍 目录 Python JWT 介绍 1. JWT 介绍 2. JWT 创建 token 2.1 JWT 生成原理 2.2 JWT 校验 token 原理 3. 代码实现 4. ...

  7. back_insert_iterator和insert_iterator

    #include <iostream> #include <string> #include <iterator> #include <vector> ...

  8. Linux x86_64与i386区别之 —— 内存寻址

    毫无疑问,不管是32位,还是64位处理器,所有进程(执行的程序)都必须占用一定数量的内存,它或是用来存放从磁盘载入的程序代码,或是 存放取自用户输入的数据等等.不过进程对这些内存的管理方式因内存用途不 ...

  9. path自定义转换器

    register-converter用于注册转换器

  10. 网络编程-UDP的服务器和客户端----keep on going never give up

    1 //**************************************服务器********************************************** 2 #inclu ...