HI3559学习(四)-- YOLOV3实时识别(实测8帧每秒)

海思 专栏收录该内容
4 篇文章 2 订阅

本文写的是yolov3实时处理,不是SDK中的处理单张照片!利用摄像头数据直接进行图像识别!很有参考价值!

一 概述

在运行了demo 之后提示

Usage : ./sample_nnie_main <index> 
index:
         0) RFCN(VI->VPSS->NNIE->VGS->VO).
         1) Segnet(Read File).
         2) FasterRcnnAlexnet(Read File).
         3) FasterRcnnDoubleRoiPooling(Read File).
         4) Cnn(Read File).
         5) SSD(Read File).
         6) Yolov1(Read File).
         7) Yolov2(Read File).
         8) Yolov3(Read File).
         9) LSTM(Read File).
         a) Pvanet(Read File).

发现,yolov3是读取图片完成的,并没有做到实时读取摄像头数据来进行实时的识别,本节的内容就是将yolov3应用于实时的输入输出上.

二、系统划分

2.1 初始化 

包括 vi vo 初始化,nnie初始化,yolov3模型加载,2个线程创建

2.2 vi vo线程

1 HI_MPI_VPSS_GetChnFrame  获取图像数据

2 HI_MPI_SYS_Mmap 映射虚拟内存指针

3 图像格式转化   需要将420sp格式图像转化为bbbgggrrr格式图像

4 利用vgs画框

5 HI_MPI_VO_SendFrame

2.3 yolov3 处理线程

1 将图像数据填充至相关结构体

2 SAMPLE_SVP_NNIE_Forward

3 SAMPLE_SVP_NNIE_Yolov3_GetResult

4 SAMPLE_SVP_NNIE_Detection_Result_to_rect 结果保存在rect中

三、测试结果

每秒8帧速率

 

具体实现过程以及最终源码 

https://edu.csdn.net/course/detail/27680/373638

===========================================================================

最近新开的公众号,文章正在一篇篇的更新,

公众号名称:玩转电子世界。

各位朋友有什么问题了可以直接在上面提问,我会一一进行解答的。

跟着阳光非宅男,一步步走进电子的世界。

关注之后回复   资料下载  关键词可以获得免费的视频学习资料下载~~~~!!

已共享的学习视频资料,共享资料正在不断更新中。。。


 

 

 

 

  • 4
    点赞
  • 1
    评论
  • 28
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

<span style="color:#E53333;"><strong>告知:需要学习YOLOv4进行TT100K数据集上中国交通标志识别的学员请前往</strong></span><br /><br /><span style="color:#E53333;"><strong>(1) Ubuntu系统《YOLOv4目标检测实战:中国交通标志识别》课程链接:https://edu.csdn.net/course/detail/29362</strong></span> <p> <span style="color:#E53333;"><strong>(2)《Windows版YOLOv4目标检测实战:中国交通标志识别》</strong></span><span style="color:#E53333;"><strong>课程链接:https://edu.csdn.net/course/detail/29363</strong></span><span style="color:#E53333;"><strong></strong></span> </p> <br /> 在无人驾驶中,交通标志识别是一项重要的任务。本课程中的项目以<strong><span style="color:#E53333;">美国交通标志数据集LISA</span></strong>为训练对象,采用<strong><span style="color:#E53333;">YOLOv3</span></strong>目标检测方法实现实时交通标志识别。<br /><br /> 具体项目过程包括包括:安装Darknet、下载LISA交通标志数据集、数据集格式转换、修改配置文件、训练LISA数据集、测试训练出的网络模型、性能统计(mAP计算和画出PR曲线)和先验框聚类。<br /><br /> YOLOv3基于深度学习,可以实时地进行端到端的目标检测,以速度快见长。本课程将手把手地教大家使用YOLOv3实现交通标志的多目标检测。本课程的YOLOv3使用Darknet,在Ubuntu系统上做项目演示。 Darknet是使用C语言实现的轻型开源深度学习框架,依赖少,可移植性好,值得深入学习和探究。<br /><br /> 除本课程《YOLOv3目标检测实战:交通标志识别》外,本人推出了有关YOLOv3目标检测的系列课程,请持续关注该系列的其它课程视频,包括:<br /><br /> 《YOLOv3目标检测实战:训练自己的数据集》<br /><br /> 《YOLOv3目标检测:原理与源码解析》<br /><br /> 《YOLOv3目标检测:网络模型改进方法》<br /><br /> 另一门课程《YOLOv3目标检测实战:训练自己的数据集》主要是介绍如何训练自己标注的数据集。而本课程的区别主要在于学习对已标注数据集的格式转换,即把LISA数据集从csv格式转换成YOLOv3所需要的PASCAL VOC格式和YOLO格式。本课程提供数据集格式转换的Python代码。<br /><br /> 请大家关注以上课程,并选择学习。<br /><br /> 下图是使用YOLOv3进行交通标志识别的测试结果<br /><p> <br /></p> <p> <img alt="" src="https://img-bss.csdn.net/201905291412089927.jpg" /><img alt="" src="https://img-bss.csdn.net/201905291412336785.jpg" /><img alt="" src="https://img-bss.csdn.net/201905291412485752.jpg" /></p> <p> <img alt="" src="https://img-bss.csdn.net/201905291413012686.jpg" /></p>
<p> <br /> </p> <p align="left" class="MsoNormal" style="background:white;"> Linux创始人<span>Linus Torvalds</span>有一句名言:<span>Talk is cheap, Show me the code.</span>冗谈不够,放码过来!。<span></span> </p> <p align="left" class="MsoNormal" style="background:white;"> 代码阅读是从入门到提高的必由之路。尤其对深度学习,许多框架隐藏了神经网络底层的实现,只能在上层调包使用,对其内部原理很难认识清晰,不利于进一步优化和创新。<span></span> </p> <p align="left" class="MsoNormal" style="background:white;">   </p> <p align="left" class="MsoNormal" style="background:white;"> YOLOv3是一种基于深度学习的端到端实时目标检测方法,以速度快见长。 </p> <p align="left" class="MsoNormal" style="background:white;"> YOLOv3的实现<span>Darknet</span>是使用<span>C</span>语言开发的轻型开源深度学习框架,依赖少,可移植性好,可以作为很好的代码阅读案例,让我们深入探究其实现原理。<span></span> </p> <p align="left" class="MsoNormal" style="background:white;">   </p> <p align="left" class="MsoNormal" style="background:white;"> 本课程将解析<span>YOLOv3</span>的实现原理和源码,具体内容包括:<span></span> </p> <p align="left" class="MsoNormal" style="text-indent:-18pt;background:white;"> <br /> </p> <ul> <li>      <span>YOLO目标检测原理 </span> </li> <li>      神经网络及Darknet的C语言实现,尤其是反向传播的梯度求解和误差计算  </li> <li>      代码阅读工具及方法  </li> <li>      深度学习计算的利器:BLAS和GEMM  </li> <li>      GPU的CUDA编程方法及在Darknet的应用  </li> <li>      YOLOv3的程序流程及各层的源码解析 </li> </ul> <!--[if !supportLists]--> <p> <br /> </p> <p align="left" class="MsoNormal" style="background:white;">   </p> <p align="left" class="MsoNormal" style="background:white;"> 本课程将提供注释后的<span>Darknet</span>的源码程序文件。<span></span> </p> <p align="left" class="MsoNormal" style="background:white;">   </p> <p align="left" class="MsoNormal" style="background:white;"> 除本课程《<span>YOLOv3</span>目标检测:原理与源码解析》外,本人推出了有关<span>YOLOv3</span>目标检测的系列课程,包括:<span></span> </p> <p align="left" class="MsoNormal" style="background:white;"> <br /> </p> <ul> <li>   《YOLOv3目标检测实战:训练自己的数据集》 </li> <li>   《YOLOv3目标检测实战:交通标志识别》 </li> <li>   《YOLOv3目标检测:原理与源码解析》 </li> <li>   《YOLOv3目标检测:网络模型改进方法》 </li> </ul> <p> <br /> </p> <p align="left" class="MsoNormal" style="background:white;">   </p> <p align="left" class="MsoNormal" style="background:white;"> 建议先学习课程《<span>YOLOv3</span>目标检测实战:训练自己的数据集》或课程《<span>YOLOv3</span>目标检测实战:交通标志识别》,对<span>YOLOv3</span>的使用方法了解以后再学习本课程。<span></span> </p> <p> <br /> </p> <p> <span></span><span></span><span></span><span></span> </p>
相关推荐
<p style="text-align:left;"> <span style="font-size:16px;">本课程内容分为5个部分:</span> </p> <p style="text-align:left;"> <span style="font-size:16px;">1.海思35xx SDK资料梳理以及SVP相关文档详细介绍</span> </p> <p style="text-align:left;"> <span style="font-size:16px;">2.将darknet框架训练出来的yolov3模型转换成caffemodel</span> </p> <div style="text-align:left;"> <span style="font-size:16px;">3.RuyiStudio工具的安装及其使用</span><br /> </div> <div style="text-align:left;"> <span style="font-size:16px;">4.Windows上仿真代码的运行以及代码分析</span><br /> </div> <p style="text-align:left;"> <span style="font-size:16px;">5.开发板上的sample代码的运行以及代码分析</span> </p> <p style="text-align:left;"> <span style="font-size:16px;"><br /> </span> </p> <p style="text-align:left;"> <span style="font-size:16px;"><span style="background-color:#FFFFFF;color:#000000;font-size:16px;">本课程特色:</span></span> </p> <p style="text-align:left;"> <span style="font-size:16px;">1. 不是照本宣科,着力把背后的原理讲清楚。</span> </p> <p style="text-align:left;"> <span style="font-size:16px;">2. 实用性很强。 目标检测算法是计算机视觉基本任务之一,而YOLOv3则仍然是目前工业界中应用非常广泛的算法模型,从速度、准确度以及易用性的trade-off来看,它目前仍然是最好的算法模型之一。</span> </p> <p style="text-align:left;"> <span style="font-size:16px;"><br /> </span> </p>
资源为视频检测算法代码包括算法的模型,算法实现的原理是:首先在视频检测跟踪之前,对所有目标已经完成检测,那么当第一进来时,以检测到的目标初始化并创建新的跟踪器,标注ID,输出行人图片,输出一组向量,通过比对两个向量之间的距离,来判断两副输入图片是否是同一个行人。在后面进来时,先到卡尔曼滤波器中得到由前面box产生的状态预测和协方差预测,并且使用确信度较高的跟踪结果进行预测结果的修正。求跟踪器所有目标状态与本检测的box的IOU,通过匈牙利算法寻找二分图的最大匹配,在多目标检测跟踪问题中为寻找前后两的若干目标的匹配最优解,得到IOU最大的唯一匹配,在去掉匹配值小于iou_threshold的匹配对。 用本中匹配到的目标检测box去更新卡尔曼跟踪器,计算卡尔曼增益,状态更新和协方差更新。并将状态更新值输出,作为本的跟踪box,再对于本中没有匹配到的目标重新初始化跟踪器。 yolo v3首先通过特征提取网络对输入图像提取特征,得到一定size的feature map,通过尺寸聚类确定anchor box。对每个bounding box网络预测4个坐标偏移。如果feature map某一单元偏移图片左上角坐标,bounding box预选框尺寸为,即anchor尺寸,那么生成对预测坐标为,此为feature map层级.而为真值在feature map上的映射,通过预测偏移使得与一致。类别预测方面为多标签分类,采用多个scale融合的方式做预测。
©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值