数据缓存到外部存储模块 LPDDR4,之后由处理器进行图像增强处理、运行目标检测算
法、视频流编码压缩等一系列处理工作,将图像实时传输给显示模块,同时打包视频流
转送给传输模块;显示模块使用 HDMI 接口将处理后的数据流转化为视频信号,实时显
示到显示设备上。
2.2 主控处理器
片上系统 (System On Chip , SOC) 是广泛使用预定制模块而得以快速开发的集成电
路。 SOC 包含了微处理器、存储器以及其他专用功能逻辑,可以在较短时间设计出来,
缩短产品的上市周期,同时 SOC 可以降低因信号在多个芯片之间交互带来的延迟而导
致性能不佳,在满足低功耗的前提下保证了信号传输的稳定性。
本文设计的目标检测系统的中央处理器选用瑞芯微 28 纳米制程生产的基于
big.LITTLE 多核异构的旗舰级芯片 RK3399 处理器,可以采集图像、对图像进行增强
和运行目标检测算法。
信迈RK3399开发板
采集模块设计
图像采集部分采用 CAM1320 模组作为视频图像的采集主体。 CAM1320 模组是采用
Omni Vision 公司研发的一款高性能 1300 万像素(
4224x3136 )传感器 OV13850 ,通过
MIPI 接口与 ARM 主板连接,可以支持同类最佳的高光和微光性能和多种图像控制功能,
同时 OV13850 还包括改进的全井容量 (FWC) 和行业领先的高光和微光性能的灵敏度。与
上一代传感器相比,其功耗降低了 40% ,使 OV13850 非常适合功能丰富的移动设备。
最高支持 13.2MP , 30fps 高清流畅录像,实现零快门延迟 [21] 。此外,该图像传感器最高
支持 60 帧 / 秒的高帧率 1080p 高清视频,具有 EIS ,可采集高质量视频,可以达到设计
的目标检测系统的要求。如图 2-8 为 OV13850 传感器的功能框图。
会将采集到的模拟信号经过自带的处理模块进行自动增益等处理,之后模拟信号会由
A/D 转换模块转换为数字信号,便于嵌入式平台进行处理,并由传感器自带的 FIFO 对
高速数据进行缓存,之后由处理器将 FIFO 中的数据读取到 DDR 中进行后续的图像算法
处理。
OV13850 图像传感器采用标准的 Serial Camera Control Bus (
SCCB )协议, SCCB 协 议与 I2C 协议极其相似,由时钟信号线 SIOC 和传输信号线 SIOD 组成,与 I2C 总线 不同的是 SCCB 一次传输 9 位数据,前 8 位为有用数据,第 9 位为无效位。其 OV13850 传感器的 RGB 输出时序如图 2-9 所示:
从图 2-9 中,可以看到 CAM1320 图像数据通过 D [9 : 2] 输出一个字节,前两个字节
形成 16 位 RGB565 数据。在时序图中,当 HREF 为高电平时,数据传输开始,一个 PCLK
传输一个字节,而当最后一个字节传输完成时, HREF 变为低电平。 HREF 周期由 640 tp
和 144 tp 组成。 1 个 t PCLK 发送 1 个字节。 480 个 HREF 周期组成一个帧,在 8t LINE 时
间后, VSYNC 将形成一个上升沿以表示图像传输帧的结束。
3 目标检测算法研究
本章的主要对基于卷积神经网络的典型检测算法代表 YOLOv3 进行了详细分析。与
传统目标检测算法相比,引入卷积神经网络可以使目标检测算法受环境因素的影响较
小,更适用于外界环境。同时将几种基于神经网络的目标检测算法进行性能对比,选择
最符合本课题需求的 YOLOv3 作为本课题系统改进优化的算法基础。
3.1 卷积神经网络相关知识简介
卷积神经网络( Convolutional Neural Network )在多层感知器的基础上增加了卷积
和池化对图像进行处理 [25] ,属于一种前馈神经网络。常见的卷积神经网络结构如图 3-1 ,
卷积神经网络通常包括特征提取器和分类器,其中特征提取器由三个部分组成:输入层
(即待检测图像对应像素矩阵)、卷积层和池化层;分类器包括全连接层和输出层。在
训练学习时,像素矩阵经过卷积和池化处理后提取出图像中物体的特征信息,全连接层
负责把各个物体的特征信息如颜色、轮廓等转化为一维特征向量。网络的最后一层即输
出层通过目标物体的预测值及损失函数计算出物体所属类别的概率,通过进行比较,将
概率最高的结果输出 [26] 。
3.2 YOLO 目标检测算法
YOLO 是由 Joseph Redmon 在 Faster R-CNN 的基础上提出 [38] ,其创新点是在保持
较高检测精度的前提下实现了对整幅图片的实时检测。 YOLO 将目标检测问题转化为回
归问题 [39] ,通过使用神经网络对图像进行遍历,对图像中的目标物体进行预测并分类。
YOLO 算法首先将输入的图片重新调整为适合检测的尺寸,之后使用神经网络对图像进
行处理,将输入图片平均分为若干个网格,待识别物体的中心处于的网格负责对该物体
进行预测识别。
YOLO 为目标检测提供了一个新的解决思路,具有以下优点:
1 )速度快。将检测问题转换为回归问题,减少了计算量,检测速度可达 150FPS [42] 。
2 ) YOLO 在检测时对图片进行整体推理。与 Fast RCNN 不同, YOLO 可以在训练
和检测时提取检测图片的特征信息,包含特征信息和语义信息。 Fast RCNN 有时会把背
景误检测为目标物体 [43] 。 YOLO 的误检率比 Fast RCNN 至少低 50% 。
3 ) YOLO 识别算法拥有较强的鲁棒性。通过神经网络的不断训练学习,使算法对形
状、色彩较大差异的物体进行检测时,其准确率不会有明显的波动。
针对前两个版本 YOLO 存在的问题, YOLOv3 通过采用 Darknet-53 作为基础网络结
构 [44] ,通过不同的卷积层对图像进行降采样,舍弃原本的池化处理,有效减弱了池化处
理带来的梯度消失缺陷。同时 YOLOv3 将原先一层检测层扩展为 13x13 、 26x26 和 52x52
三个不同尺度的特征图,同时沿用了 K-means 聚类出的边界框,增加了边界框数量 [45] ,
根据其大小分别在三个特征图进行预测。
4 目标检测系统软件的原理与设计
通过在第三章介绍了卷积神经网络与目标检测算法 YOLOv3 的算法原理,本章针对
传统目标检测算法存在运行环境需求较高和无法用于复杂环境的缺陷,以 YOLOv3 为
改进基础,提出一种适用于嵌入式平台的目标检测模型。同时,本章对系统地软件部分
如数据集制作和图像增强处理进行了论述。
4.1 目标检测算法软件设计
目标检测系统的图像识别软件运行流程如图 4-1 所示。
最终得到的数据集文件如下所示。
JPEGImages 包含数据集所有的图像信息,包括训练图像和测试图像。 Annotations
中包含标签文件,每个标签文件对应于 JPEGImages 文件夹中的一个图像;
label.txt 用于 保存目标类别(背景类别除外)的文件;train_list.txt , test_list .txt 和 trainval.txt 存储学 习所需的图像和注释文件的相对路径; 这三个文件的区别在于它们包含不同的数据集。
train_list 约为全部数据集的 50 %, trainval 是整个数据集的其余 50 %; test_list 是训练
量的剩余 50 %。
其中, Windows 平台、 Linux 虚拟机 Ubuntu 与嵌入式开发平台通过路由器连接在同
一个局域网内,可以在 Windows 平台对代码进行编写和修改,虚拟机 Ubuntu 则可以将
编写好的代码交叉编译为能够在嵌入式系统中运行的文件,并且通过在虚拟机 Linux 系
统下完成对嵌入式平台运行所需的 Bootloader 、系统内核的裁剪和移植、根文件系统的
搭建以及对检测算法的移植和模型转换,最终通过交叉编译工具链将整体程序编译为可
执行文件。在调试过程中, Ubuntu 虚拟机可以通过串口打印嵌入式平台的系统运行信
息和调试信息,也可以通过局域网实时对系统中的文件进行操作。将 RK3399 目标检测
系统通过 HDMI 线与显示屏相连。系统连接如图 5-3 所示:
本章对目标检测系统的硬件平台和测试环境进行了搭建,包括在开发主机上搭建开
发环境以及 OpenCV 库和 TensorFlow 框架的搭建。本目标检测系统既实现了低功耗、
结构紧凑的特点,又留有足够的接口,可对系统进行进一步的优化。并且对图像增强算
法和目标检测算法的性能指标做出介绍,最后对系统的图像增强、目标检测和视频实时
推流功能进行了测试,对测试结果进行了多方面的分析。通过测试并分析可得出结论,
本系统在测试精确率方面优于传统目标检测算法,可以大范围在实际生活场景中运用。
信迈提供RK3399/3568+YOLO软硬件一体解决方案。