CN109816097B - 一种基于YOLO的Compress-YOLO模型压缩方法 - Google Patents
一种基于YOLO的Compress-YOLO模型压缩方法 Download PDFInfo
- Publication number
- CN109816097B CN109816097B CN201910062805.1A CN201910062805A CN109816097B CN 109816097 B CN109816097 B CN 109816097B CN 201910062805 A CN201910062805 A CN 201910062805A CN 109816097 B CN109816097 B CN 109816097B
- Authority
- CN
- China
- Prior art keywords
- yolo
- layer
- compress
- model
- neural network
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Image Analysis (AREA)
Abstract
本发明提供了一种基于YOLO的Compress‑YOLO模型压缩方法,包括设计Compress‑YOLO神经网络特征提取部分、使用GoogLeNet的特征提取部分对输入图像进行特征提取、使用Compress‑YOLO模型中的两层全卷积层取代YOLO中的两层全连接层、使用一层卷积层对bounding box进行回归、通过reshape层对输出维度进行调整,使得输出维度和YOLO的输出维度相同以及选择PASCAL VOC 2012数据集对设计的Compress‑YOLO神经网络模型进行训练;针对训练中出现的过拟合现象,采用Batch Normaliztion层和Scale层组合的方法。本发明提供的基于YOLO的Compress‑YOLO模型压缩方法,可以在尽量保证模型性能的同时可以将深度学习部署到嵌入式设备上,且更加密集、计算量更小,提高了网络的性能。
Description
技术领域
本发明涉及神经网络模型压缩技术领域,尤其涉及一种基于YOLO的Compress-YOLO的模型压缩方法。
背景技术
深度学习神经网络具有识别种类多,准确率高,鲁棒性好等优点。在同样的识别场景下,使用深度学习神经网络进行目标识别可以有效抵抗颜色、纹理、光照等干扰条件。因此,基于深度学习神经网络的目标识别方法更多的应用于对多种目标的识别过程中。
虽然深度学习神经网络有着诸多的优点,但其计算量非常大,因此对硬件的要求非常高,这也极大的限制了深度学习神经网络在性能有限的硬件上的部署,因此对深度学习神经网络模型进行压缩是解决该问题的有效途径。
现有的深度学习神经网络模型压缩方法更多的集中于对网络进行剪枝,但该方法在非特制硬件上的加速效果十分有限。
综上,需要设计一个更加紧凑的模型,使得在保证深度学习神经网络准确率的基础上对YOLO进行压缩,使得Compress-YOLO可以在计算性能有限的嵌入式设备上运行。
发明内容
为了克服现有技术的不足,本发明提供为了一种基于YOLO的Compress-YOLO模型压缩方法,包括:
步骤1、设计Compress-YOLO神经网络特征提取部分,YOLO(YouOnlyLookOnce深度学习模型)的输入尺寸固定为448×448,当识别种类为A种,每个网格预测两个种类时,输出维度为B;
1.1安装和配置Caffe框架(深度学习框架),添加Caffe路径到系统环境。
1.2对Caffe框架的数据层进行修改,添加YOLO-Data层(数据层),在该层中添加side成员,将输入的图片划分为7×7的网格。
1.3将输入图片尺寸调整到448×448大小,获得列表、标签数据,并将图片数据转化为LMDB格式,输出维度即为B。
步骤2、使用GoogLeNet(深度学习结构)的特征提取部分对输入图像进行特征提取,使用GoogLeNet将提取出特征的第一个卷积层到inception(5b)(GoogleNet网络结构中的一个网络层)部分取代原始YOLO中的12组3×3和1×1的卷积层,每组包括一个3×3和一个1×1的卷积层;
步骤3、成对使用卷积神经网络中补充使用的实用化层:Batch Normalization层和Scale层,并添加池化层。
步骤4、使用Compress-YOLO模型中的两层全卷积层取代YOLO中的两层全连接层,一层预测目标的种类,一层预测boundingbox(目标边框)的坐标;
步骤5、使用一层卷积层对boundingbox进行回归;
步骤6、通过reshape层(深度学习框架Caffe中的reshape层)使得输出维度和YOLO的输出维度B相同;
步骤7、选择PASCALVOC 2012数据集对设计的Compress-YOLO神经网络模型进行训练;
7.1对Caffe框架的数据层进行修改,添加YOLO-Data层,计算训练过程中的Compress-YOLO模型随迭代次数增加的损失。
7.2在正式训练时,采用分段设置学习率的方式,分别在迭代次数为540、16020和24020时改变训练学习率。
作为一种优选的技术方案,采用NVIDIA Jetson TX1嵌入式开发板上进行识别测试,检验实际的效果。
有益技术效果:
1)本发明以GoogLeNet的特征层取代YOLO本身中的24个3×3和1×1的卷积层。由于inception模块的引入,Compress-YOLO的深度大大增加,同时计算量相较于YOLO却大幅减少,使得机器人在不影响功能的情况下从繁杂的数据计算中解脱出来。
2)本发明中Batch Normalization层和Scale层成对使用,在性能和灵活性上都有不同程度的提高,提升了模型的最终性能。
3)本发明取消了2层全连接层,转而采用全卷积层。通过这种方法去除了全连接层中大量的参数对模型尺寸的影响,同时提高了网络的性能。
附图说明
图1为现有的YOLO深度学习网络模型结构图;
图2位本发明实施例的流程图;
图3为本发明具体实施方式中基于YOLO的深度学习网络模型Compress-YOLO的结构图;
图4为本发明具体实施例部署到计算机上的Compress-YOLO多目标识别效果图;
图5为本发明具体实施例部署到NVIDIA Jetson TX1上的Compress-YOLO单目标识别效果图;
图6为本发明具体实施例部署到NVIDIA Jetson TX1上的Compress-YOLO多目标识别效果图;
具体实施方式
下面结合附图和具体实施实例对发明做进一步说明:
如图1所示为现有的YOLO深度学习网络模型结构图;
如图2所示,步骤1、设计Compress-YOLO神经网络特征提取部分,YOLO的输入尺寸固定为448×448,当识别种类为20类,每个网格预测两个种类时,输出维度为1470维;
1.1安装和配置Caffe框架,添加Caffe路径到系统环境。
1.2对Caffe框架的数据层进行修改,添加YOLO-Data层(数据层),在该层中添加side成员,将输入的图片划分为7×7的网格。
1.3将输入图片尺寸调整到448×448大小,获得列表、标签数据,并将图片数据转化为LMDB格式,输出维度即为1470维。
步骤2、使用GoogLeNet的特征提取部分对输入图像进行特征提取。本设计中使用了GoogLeNet从第一个卷积层到inception(5b)部分取代了原始YOLO中的12组3×3和1×1的卷积层,每组包括一个3×3和一个1×1的卷积层;通过这种方式,Compress-YOLO有效的增加了神经网络模型的深度,同时通过使用inception模块的特殊结构,在增加深度的同时抑制了模型的参数量,达到了减少模型尺寸的效果;
如图3所示,步骤3、成对使用卷积神经网络中补充使用的实用化层:BatchNormalization层和Scale层,使用这种正规则方法,可减少训练时间,并添加池化层。池化层为卷积神经网络的一层结构,用于抑制过拟合,并可以在后续训练中加快模型的收敛速度。
步骤4、使用两层全卷积层取代YOLO中的两层全连接层。全连接层占据了网络超过90%的参数量,而全卷积层的参数量则极大的减少,同时性能比全连接层要更好。因此Compress-YOLO使用两层全卷积层,一层预测目标的种类,一层预测bounding box的坐标;
步骤5、使用一层卷积层对boundingbox进行回归,提高识别的精度。上述卷积层中得到的bounding box只是对目标所在范围的初步预测,因此在两层卷积层之后,Compress-YOLO使用一层回归层对boundingbox的坐标进行调整,使得模型预测的精度更高;
步骤6、通过reshape层对输出维度进行调整,使得输出维度和YOLO的输出维度相同。由于模型最终输出的维度为1470维,而Compress-YOLO经过上述一系列的操作之后,将维度调整到为7×7×30的特征图。因此该层将上述得到的特征图调整为一维张量,使得最终输出的维度为1470维;
步骤7、对设计的Compress-YOLO神经网络模型进行训练,对Caffe框架数据层进行修改,添加YOLO-Loss层,可得计算损失为1.50736。在正式训练时,采用分段设置学习率的方式,分别在迭代次数为540、16020和24020时改变训练学习率。
针对训练后的模型和YOLO系列模型进行分析对比,如表1所示;
表1模型参数对比表
模型 | 尺寸 | 准确率(%) | 视频检测(FPS) |
YOLO | 753M | 57.9 | 13 |
TinyYOLO | 42.9 | 23.7 | 50 |
Fast-YOLO | — | 52.7 | 45 |
Compress-YOLO(TX1) | 100.5M | 56.7 | 8 |
Compress-YOLO | 100.5M | 56.7 | 35 |
配置机器人操作系统,标定相机,在NVIDIA Jetson TX1嵌入式开发板上进行识别测试,检验实际的效果。
在Ubuntu系统上配置和测试机器人操作系统;
初始化rosdep,在终端执行如下命令:
$sudo rosdep init&&rosdep update
对机器人操作系统环境配置,在每次启动一个新的终端时都会自动加载机器人操作系统环境配置,在终端执行如下命令:
$echo"source/opt/ros/indigo/setup.bash">>~/.bashrc
对机器人操作系统环境配置进行测试。打开一个新的终端,运行如下命令:
$rosxore
接着在新终端中执行如下命令:
$rosrun turtlesim turtlesim_node
然后重新打开一个新的终端,输入:
$rosrun turtlesim turtle_teleop_key
操作键盘上的方向键,对海龟进行操作,如果操控正常,表明机器人操作系统安装配置成功。
配置完成后,在home目录下创建一个catkin工作空间,编译后的catkin工作空间结构包括src、build和devel文件夹,主要用到的是src文件夹,它是源码的存放处;
打开一个新的终端,分别输入如下命令:
$mkdir-p~/catkin_ws/src
$cd~/catkin_ws/
$catkin_make
选择25个不同角度对相机进行标定,相机距离标定板距离为400mm,由相机对标定板上的点进行识别;
接着建立目标识别工程,在空间中识别出多个符合条件的多个目标,则会对目标进行标号,然后由控制者选择哪一个为所需要的目标,进而展开后续的跟踪和识别。
打开一个新的终端,输入以下命令:
$cd catkin_ws/src
$catkin_create_pkg target_recognize roscpp rospy std_msgs message_generation
进入target_recognize文件夹,建立scripts、msg、srv、models和launch几个文件夹,分别用来存储可执行脚本、自定义消息、自定义服务、模型文件和launch文件。在msg文件夹中自定义消息文件recognized_target.msg,srv文件夹中定义recognize.srv用于消息的传递,然后修改package的CmakeLists.txt和package.xml文件,添加相应的编译和执行的依赖。完成之后进行编译,生成相应的编译文件。最后将训练后的模型及模型文件放到models文件夹,即可在src文件夹下编写开发代码。
最后将压缩模型部署到NVIDIAJetson TX1嵌入式开发板上展开实验,测试实际性能。
如图4所示,为Compress-YOLO模型在计算机上的识别效果图;
本实施例中,分别针对单目标和多目标环境进行识别。Compress-YOLO模型对单目标的识别如图5所示。从结果可以看出,模型不仅能够准确将图中的人识别出来,而且在目标特征不明显的情况下仍然能够进行准确的识别,模型对遮挡的鲁棒性很好。
Compress-YOLO的多目标识别结果如图6所示。从识别结果可以看出,尽管场景比较复杂,但模型仍然将场景中的显示器、人和瓶子准确的识别出来,而且没有出现误检的情况。通过对比两种模型下对复杂背景下多目标目标的识别结果可以看出,压缩后的模型能够在复杂背景情况下能够对图中的多个目标进行准确的识别,压缩前后识别性能有所提高。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,应当理解,本发明并不限于这里所描述的实现方案,这些实现方案描述的目的在于帮助本领域中的技术人员实践本发明。任何本领域中的技术人员很容易在不脱离本发明精神和范围的情况下进行进一步的改进和完善,因此本发明只受到本发明权利要求的内容和范围的限制,其意图涵盖所有包括在由所附权利要求所限定的本发明精神和范围内的备选方案和等同方案。
Claims (2)
1.一种基于YOLO的Compress-YOLO模型压缩方法,其特征在于,包括以下步骤:
步骤1、设计Compress-YOLO神经网络特征提取部分,YOLO的输入尺寸固定为448×448,当识别种类为A种,每个网格预测两个种类时,输出维度为B;
1.1安装和配置Caffe框架,添加Caffe路径到系统环境;
1.2对Caffe框架的数据层进行修改,添加YOLO-Data层,在该层中添加side成员,将输入的图片划分为7×7的网格;
1.3将输入图片尺寸调整到448×448大小,获得列表、标签数据,并将图片数据转化为LMDB格式,输出维度即为B;
步骤2、使用GoogLeNet的特征提取部分对输入图像进行特征提取,使用GoogLeNet将提取出特征的第一个卷积层到inception(5b)部分取代原始YOLO中的12组3×3和1×1的卷积层,每组包括一个3×3和一个1×1的卷积层;
步骤3、成对使用卷积神经网络中补充使用的实用化层:Batch Normalization层和Scale层,并添加池化层;
步骤4、使用Compress-YOLO模型中的两层全卷积层取代YOLO中的两层全连接层,一层预测目标的种类,一层预测bounding box的坐标;
步骤5、使用一层卷积层对bounding box进行回归;
步骤6、通过reshape层使得输出维度和YOLO的输出维度B相同;
步骤7、选择PASCAL VOC 2012数据集对设计的Compress-YOLO神经网络模型进行训练;
7.1对Caffe框架的数据层进行修改,添加YOLO-Data层,计算训练过程中的Compress-YOLO模型随迭代次数增加的损失;
7.2在正式训练时,采用分段设置学习率的方式,分别在迭代次数为540、16020和24020时改变训练学习率。
2.根据权利要求1所述的一种基于YOLO的Compress-YOLO模型压缩方法,其特征在于:采用NVIDIA Jetson TX1嵌入式开发板上进行识别测试,检验实际的效果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910062805.1A CN109816097B (zh) | 2019-01-23 | 2019-01-23 | 一种基于YOLO的Compress-YOLO模型压缩方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910062805.1A CN109816097B (zh) | 2019-01-23 | 2019-01-23 | 一种基于YOLO的Compress-YOLO模型压缩方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109816097A CN109816097A (zh) | 2019-05-28 |
CN109816097B true CN109816097B (zh) | 2022-12-09 |
Family
ID=66603123
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910062805.1A Active CN109816097B (zh) | 2019-01-23 | 2019-01-23 | 一种基于YOLO的Compress-YOLO模型压缩方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109816097B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112989992B (zh) * | 2021-03-09 | 2023-12-15 | 阿波罗智联(北京)科技有限公司 | 目标检测方法、装置、路侧设备和云控平台 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107229904A (zh) * | 2017-04-24 | 2017-10-03 | 东北大学 | 一种基于深度学习的目标检测与识别方法 |
CN107316035A (zh) * | 2017-08-07 | 2017-11-03 | 北京中星微电子有限公司 | 基于深度学习神经网络的对象识别方法及装置 |
CN109214250A (zh) * | 2017-07-05 | 2019-01-15 | 中南大学 | 一种基于多尺度卷积神经网络的静态手势识别方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3622438A4 (en) * | 2017-05-09 | 2021-03-10 | Neurala, Inc. | SYSTEMS AND METHODS FOR CONTINUOUS LEARNING LIMITED IN MEMORY IN CONTINUING APPLICATIONS OF ARTIFICIAL INTELLIGENCE AND DEEP LEARNING THROUGH NETWORKED COMPUTING EDGES |
-
2019
- 2019-01-23 CN CN201910062805.1A patent/CN109816097B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107229904A (zh) * | 2017-04-24 | 2017-10-03 | 东北大学 | 一种基于深度学习的目标检测与识别方法 |
CN109214250A (zh) * | 2017-07-05 | 2019-01-15 | 中南大学 | 一种基于多尺度卷积神经网络的静态手势识别方法 |
CN107316035A (zh) * | 2017-08-07 | 2017-11-03 | 北京中星微电子有限公司 | 基于深度学习神经网络的对象识别方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109816097A (zh) | 2019-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111210024A (zh) | 模型训练方法、装置、计算机设备和存储介质 | |
CN111414987B (zh) | 神经网络的训练方法、训练装置和电子设备 | |
CN114399019A (zh) | 神经网络编译方法、系统、计算机设备及存储介质 | |
US11321777B1 (en) | Business data processing method and computer device | |
CN109934227A (zh) | 图像文字识别系统和方法 | |
CN109933515B (zh) | 一种回归测试用例集的优化方法和自动优化装置 | |
CN111178512A (zh) | 器件运行神经网络的测试方法及装置 | |
CN109361628A (zh) | 报文组装方法、装置、计算机设备和存储介质 | |
CN113868120A (zh) | 工业软件调试方法、装置、计算机设备和存储介质 | |
CN109816097B (zh) | 一种基于YOLO的Compress-YOLO模型压缩方法 | |
CN110750298A (zh) | 一种ai模型编译方法、设备及存储介质 | |
CN114067211A (zh) | 一种用于移动终端的轻量化安全帽检测方法及系统 | |
CN112580627A (zh) | 基于国产智能芯片K210的yolov3目标检测方法及电子装置 | |
CN112364974A (zh) | 一种基于激活函数改进的YOLOv3算法 | |
CN110807428A (zh) | 煤类样品的识别方法、装置、服务器及存储介质 | |
CN116522565B (zh) | 一种基于bim的电力工程设计配电网规划方法及计算机设备 | |
CN104680549A (zh) | 基于高阶邻域tmf模型的sar图像变化检测方法 | |
CN113902112A (zh) | 硬件计算模拟方法、系统及计算机可读存储介质 | |
EP1939796A2 (en) | Data processing apparatus, data processing method data processing program and computer readable medium | |
KR101291817B1 (ko) | 요구사항 모델 기반 테스트 케이스 자동 생성 시스템 및 방법 | |
CN114780967B (zh) | 基于大数据漏洞挖掘的挖掘评估方法及ai漏洞挖掘系统 | |
CN113627755B (zh) | 智能终端工厂的测试方法、装置、设备及存储介质 | |
US20220100640A1 (en) | Generating test input values for functional components based on test coverage analysis | |
CN114330173A (zh) | 边界节点连接关系获取方法、装置、设备和存储介质 | |
CN112766365A (zh) | 用于智能光影弯折检测的神经网络的训练方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |