瑞芯微 Toybrick RK3399Pro开发 --YOLOV3开发与实现

概述
基于RKNN开发
搭建开发环境
训练自己的数据
基于Darknet开发
展望

人工智能开发系列(3) YOLOV3开发与实现

一、概述

物体检测

  • 传统的人工设计特征加浅层分类器
  • 基于深度学习检测框架
    R-CNN:候选区域选择CNN特征提取分类与边界回归
    **Fast RCNN:**候选余秋雨选择整图CNN特征值提取,候选框在特征图上的映射分类
    **Faster RCNN:**区域生成网络RPN候选框提取模块+Fast RCNN检测模块(RPN是全卷积神经网络)
    YOLOV3: 一阶段的检测器,全卷积神经网络

YOLOV3
YOLO的全名是:You Only Look Once.
YOLO算法的基本思想是:首先将输入图像分成S*S个格子,如果某个预测对象的中心坐标落在某个格子中,那么就由该格子来预测该对象,每个格子都会预测B个边界框,每个边界框输出为(5+C)长度参数
SxS: 在yolov3-416中会切割成13x13, 26x26, 52x52
B: 在yolov3中该值为3, 由anchors决定
C: 模型可预测分类, VOC数据集为20,coco数据集为80,也可以自己训练
5 bounding box边界框的中心坐标,长宽,对象置信度
瑞芯微 Toybrick RK3399Pro开发 --YOLOV3开发与实现

Yolov3原理
瑞芯微 Toybrick RK3399Pro开发 --YOLOV3开发与实现
Yolov3后处理
瑞芯微 Toybrick RK3399Pro开发 --YOLOV3开发与实现
瑞芯微 Toybrick RK3399Pro开发 --YOLOV3开发与实现

Yolov3速度对比瑞芯微 Toybrick RK3399Pro开发 --YOLOV3开发与实现

二、搭建开发环境

瑞芯微 Toybrick RK3399Pro开发 --YOLOV3开发与实现

三、基于Darknet开发

PC或者开发板都可以,推荐PC瑞芯微 Toybrick RK3399Pro开发 --YOLOV3开发与实现

四、基于RKNN开发

移到开发板
瑞芯微 Toybrick RK3399Pro开发 --YOLOV3开发与实现
瑞芯微 Toybrick RK3399Pro开发 --YOLOV3开发与实现
瑞芯微 Toybrick RK3399Pro开发 --YOLOV3开发与实现
瑞芯微 Toybrick RK3399Pro开发 --YOLOV3开发与实现
瑞芯微 Toybrick RK3399Pro开发 --YOLOV3开发与实现
瑞芯微 Toybrick RK3399Pro开发 --YOLOV3开发与实现
瑞芯微 Toybrick RK3399Pro开发 --YOLOV3开发与实现

五、训练自己的数据

瑞芯微 Toybrick RK3399Pro开发 --YOLOV3开发与实现
标注图片
瑞芯微 Toybrick RK3399Pro开发 --YOLOV3开发与实现
瑞芯微 Toybrick RK3399Pro开发 --YOLOV3开发与实现
瑞芯微 Toybrick RK3399Pro开发 --YOLOV3开发与实现
瑞芯微 Toybrick RK3399Pro开发 --YOLOV3开发与实现

六、展望

14帧左右-单线程
多线程快
瑞芯微 Toybrick RK3399Pro开发 --YOLOV3开发与实现
多线程策略:
前处理开一个线程,NPU开第二个线程,后处理开第三个线程
至少可以提高到30帧