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
目标检测网络模型:
R-CNN(Region-CNN)
SPP Net
Fast R-CNN
Faster R-CNN
R-FCN
YOLO
SSD
FPN
RetinaNet
|
语义分割(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
- 人脸识别常用数据集大全
- 哥伦比亚大学的公众人物脸部数据集:PubFig: Public Figures Face Database
- 香港中文大学大型人脸识别数据集:Large-scaleCelebFacesAttributes (CelebA) Dataset
- color FERET Database:https://www.nist.gov/itl/products-and-services/color-feret-database
- Multi-Task Facial Landmark (MTFL) dataset:http://mmlab.ie.cuhk.edu.hk/projects/TCDCN.html
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 |
~ 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. 对外接口
- 载板配置
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全过程(上)的更多相关文章
- GPU端到端目标检测YOLOV3全过程(下)
GPU端到端目标检测YOLOV3全过程(下) Ubuntu18.04系统下最新版GPU环境配置 安装显卡驱动 安装Cuda 10.0 安装cuDNN 1.安装显卡驱动 (1)这里采用的是PPA源的安装 ...
- GPU端到端目标检测YOLOV3全过程(中)
GPU端到端目标检测YOLOV3全过程(中) 计算机视觉初级部分知识体系 总结了一下自己在计算机视觉初级部分的知识框架,整理如下. 个人所学并不全面( ...
- Yolo:实时目标检测实战(上)
Yolo:实时目标检测实战(上) YOLO:Real-Time Object Detection 你只看一次(YOLO)是一个最先进的实时物体检测系统.在帕斯卡泰坦X上,它以每秒30帧的速度处理图像, ...
- 小白也能弄懂的目标检测YOLO系列之YOLOV1 - 第二期
上期给大家展示了用VisDrone数据集训练pytorch版YOLOV3模型的效果,介绍了什么是目标检测.目标检测目前比较流行的检测算法和效果比较以及YOLO的进化史,这期我们来讲解YOLO最原始V1 ...
- 目标检测算法之R-CNN和SPPNet原理
一.R-CNN的原理 R-CNN的全称是Region-CNN,它可以说是第一个将深度学习应用到目标检测上的算法.后面将要学习的Fast R-CNN.Faster R-CNN全部都是建立在R-CNN基础 ...
- 目标检测,主要问题发展,非极大值抑制中阈值也作为参数去学习更满足end2end,最近发展趋势和主要研究思路方向
目标检测,主要问题发展,非极大值抑制中阈值也作为参数去学习更满足end2end,最近发展趋势和主要研究思路方向 待办 目标检测问题时间线 特征金字塔加滑窗 对象框推荐 回归算法回归对象框 多尺度检测 ...
- pytorch实现yolov3(5) 实现端到端的目标检测
torch实现yolov3(1) torch实现yolov3(2) torch实现yolov3(3) torch实现yolov3(4) 前面4篇已经实现了network的forward,并且将netw ...
- 目标检测算法之YOLOv3
参考地址:https://blog.csdn.net/leviopku/article/details/82660381 YOLO v3结构图 DBL:卷积+BN+leaky relu,是v3的最小组 ...
- GPU上创建目标检测Pipeline管道
GPU上创建目标检测Pipeline管道 Creating an Object Detection Pipeline for GPUs 今年3月早些时候,展示了retinanet示例,这是一个开源示例 ...
随机推荐
- POJ2983 查分约束系统
题意: 给你n个点,然后给你两种情况,P a b c,表明a在b的北边c那么远,V a b 表明a在b的北边(距离最少是1),问你这些条件是否冲突. 思路: 一开始想用带权并 ...
- hdu1914 稳定婚姻问题
稳定婚姻问题就是给你n个男的,n个女的,然后给你每个男生中女生的排名,和女生心目中男生的排名,然后让你匹配成n对,使婚姻稳定,假如a和b匹配,c和d匹配,如果a认为d比b好,同时 ...
- 路由协议之RIP
目录 RIP协议 RIP的路由汇总和过滤 RIP的认证 RIP的防环机制 华为/思科中的配置 RIP协议 RIP协议是一种内部网关协议(IGP),底层是贝尔曼福特算法,是一种动态路由选择协议,用于自治 ...
- 逆向 time.h 函数库 time、gmtime 函数
0x01 time 函数 函数原型:time_t time(time_t *t) 函数功能:返回自纪元 Epoch(1970-01-01 00:00:00 UTC)起经过的时间,以秒为单位.如果 se ...
- Win64 驱动内核编程-13.回调监控模块加载
回调监控模块加载 模块加载包括用户层模块(.DLL)和内核模块(.SYS)的加载.传统方法要监控这两者加在必须 HOOK 好几个函数,比如 NtCreateSection 和 NtLoadDriver ...
- Day006 方法的定义和调用
方法的定义 Java的方法类似于其他语言的函数,是一段用来完成特定功能的代码片段,一般情况下,定义一个方法包含以下语法: 方法包含一个方法头和一个方法体.下面是一个方法的所有部分: 修饰符:修饰符,这 ...
- SpringBoot日志输出定义
在application.yml配置文件中添加 logging: level: root: INFO #根日志输出级别 com.juyss.dao: DEBUG #自定义包的日志输出级别 file: ...
- Mybatis学习之自定义持久层框架(六) 自定义持久层框架:完善CRUD方法并进行测试
前言 没想到会等到半年以后才来写这篇文章,我已经不记得当初自己想要在这篇文章中写什么了,还好有一些零散的笔记留着,就对照着上一篇文章及零散的笔记,把内容给补充完吧. 完善CRUD方法 完善Defaul ...
- Redis数据结构—整数集合与压缩列表
目录 Redis数据结构-整数集合与压缩列表 整数集合的实现 整数集合的升级 整数集合不支持降级 压缩列表的构成 压缩列表节点的构成 小结 Redis数据结构-整数集合与压缩列表 大家好,我是白泽.今 ...
- Docker 部署阿里云RocketMQ 4.5.1
搜索镜像 docker search rocketmq 查看镜像版本 如果要查看其它的镜像,只需要将其中的镜像名称foxiswho/rocketmq替换为其它镜像即可 curl https://reg ...