一种基于二值化Yolov3网络的红绿灯检测方法与流程

文档序号:20755308发布日期:2020-05-15 17:22阅读:1732来源:国知局
一种基于二值化Yolov3网络的红绿灯检测方法与流程

本发明涉及图像识别技术领域,尤其是一种基于二值化yolov3网络的红绿灯检测方法。



背景技术:

无论是在高级辅助驾驶或、无人驾驶,还是在智能交通中,交通信号灯的识别都是重要检测项目之一。运动模糊和光照变化效应一直是信号灯检测技术在实际城市驾驶环境中面临的主要问题。传统数字图像处理技术对于红绿灯检测主要采用边缘分割、直方图变换等方式,在光照环境复杂、强光或逆光等情况下,识别率较低。

随着人工智能的快速发展,深度学习技术广泛应用于计算机视觉的诸多方面,在图片分类、目标定位、图像分割、图像增强等领域发展迅速。基于深度学习的目标识别算法主要分为两阶段网络算法和单阶段网络算法。两阶段网络首先从一张图像中生成稀疏的候选区域,并对候选区域进行二分类和初步定位,再将稀疏的候选区域送入分类和回归网络中进一步分类和定位得到最后的检测结果。单阶段网络不生成候选区域,直接对图片上固定位置的锚点框进行分类和定位。yolov3目标识别网络作为单阶段网络,速度上比两阶段网络更快,精度也更高。然而,传统yolov3网络层数多,计算量大,不适用于计算资源有限的小型嵌入式平台。



技术实现要素:

本发明提供一种基于二值化yolov3网络的红绿灯检测方法,将yolov3网络二值化,以解决现有yolov3目标识别网络难以运行在嵌入式终端上的问题。

一种基于二值化yolov3网络的红绿灯检测方法,先构建并训练网络模型,然后通过训练好的网络模型对公路车道进行检测,主要包括以下步骤:

1、收集大量汽车行驶过程中行车记录仪拍摄到的包含红绿灯的图片,方框标记出图片中红绿灯部分并按照颜色和指示方向对图片进行分类标注作为数据集,将数据集从数量上分为训练集、验证集和测试集三部分;

2、构建yolov3网络,并对其进行二值化,形成二值化yolov3网络;二值化操作具体为,将输入图像利用符号函数二值化,将权重利用符号函数二值化,激活函数采用hardsigmoid函数,卷积操作为其中i表示输入矩阵,w表示未二值化的权重,k和α为调整参数;层叠模式改为批标准化→二值化激活→二值化卷积→池化;

3、利用训练集对二值化yolov3网络进行训练,并更新权重,具体包为,权重初始化为浮点,前向传播过程中利用通过符号函数将权重量化为+1/-1,由二值权重与二值输入进行卷积运算,获得卷积层输出;在反向传播过程中,放松符号函数,计算相应梯度值,并根据梯度值对权重进行参数更新,参数更新完成后再权重量化为+1/-1,以便后期推断使用;

4、将测试集输入训练好的二值化yolov3网络,输出三路大小分别为13*13、26*26和52*52的特征图,每张特征图的每个特征点上都带有3种不同尺寸的候选框,对每个候选框进行回归和分类并计算总损失,获取最优预测框位置输出及其对应的类别输出。

进一步的,所述前向传播过程为,将训练集每个标记方框的宽和高相对整张图片的比例进行k-means聚类,设置簇数为3,生成3种不同尺寸的候选框,将构建好的二值化yolov3网络在imagenet数据集上进行预训练,再将预训练完成的二值化yolov3网络的基础上利用训练集进行迁移训练。

进一步的,所述步骤4中获取最优预测框位置输出具体为,将测试集输入训练好的二值化yolov3网络,获取相对于候选区域的预测框偏移量和预测类别,利用预设的预测框置信度阈值对输出的预测框进行初步筛选,去除置信度小于阈值的预测框,再对预测框进行nms筛选去除重叠度高的预测框,得到最优预测框位置输出及其对应的类别输出;所述类别输出按照颜色和指示方向分别为绿灯前进、绿灯左转、绿灯右转、绿灯掉头、红灯前进、红灯左转、红灯右转、红灯掉头。

本发明通过将yolov3网络二值化,缩减了网络运算量和权重存储空间,在保证精度的同时提高了网络检测速度,更适合在嵌入式平台上;与此同时,在光线复杂的场景中也具有良好的检测,增强了系统的鲁棒性,解决了传统红绿灯检测中存在的容易受干扰识别率较低等问题。

附图说明

图1为yolov3网络结构图。

具体实施方式

下面结合附图和具体实施方式对本发明作进一步详细的说明。本发明的实施例是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显而易见的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。

实施例1

一种基于二值化yolov3网络的红绿灯检测方法,先构建并训练网络模型,然后通过训练好的网络模型对公路车道进行检测,主要包括以下步骤:

1、收集集3万张汽车行驶过程中行车记录仪拍摄到的包含红绿灯的图片,根据yolov3网络入口要求将图片缩放至416*416大小。由于车辆行驶过程中通常是通过行车记录仪实时拍摄红绿灯情况的,因此,收集图片的来源也最好来源于行车记录仪的视频截图,将行车记录仪拍摄视频按照固定频率进行分帧处理并保留包含行人的图片进行处理分析。

采用labelimage软件进行图片标注,方框标记出图片中红绿灯部分并按照颜色和指示方向对图片进行分类标注为绿灯前进、绿灯左转、绿灯右转、绿灯掉头、红灯前进、红灯左转、红灯右转、红灯掉头,标注会生成xml格式的标注文件。方框标记后的图片和xml文件作为数据集,将数据集按照6:2:2的比例分为训练集、测试集和验证集三部分。

2、构建图1所示的yolov3网络,并对其进行二值化,形成二值化yolov3网络;二值化操作具体为,将输入图像利用符号函数二值化,将权重利用符号函数二值化,激活函数采用hardsigmoid函数,卷积操作为其中i表示输入矩阵,w表示未二值化的权重,k和α为调整参数,其中其中w、c、h分别表示卷积权重矩阵的宽、高和通道数;层叠模式改为批标准化→二值化激活→二值化卷积→池化。

3、利用训练集对二值化yolov3网络进行训练,并更新权重,具体包括:

⑴权重初始化为浮点,将训练集每个标记方框的宽和高相对整张图片的比例进行k-means聚类,设置簇数为3,生成3种不同尺寸的候选框;

⑵前向传播,利用通过符号函数将权重量化为+1/-1,由二值权重与二值输入进行卷积运算,获得卷积层输出;

将构建好的二值化yolov3网络在imagenet数据集上进行预训练,再将预训练完成的二值化yolov3网络的基础上利用训练集进行迁移训练,迁移训练时采用大小为64的batch,最大迭代次数为500200,学习率变动步长为400000;

⑶反向传播,放松符号函数,计算相应梯度值,并根据梯度值对权重进行参数更新,训练时采用adma策略进行梯度更新,初始学习率为0.001,冲量系数为0.9,学习率衰减为0.0005;

⑷参数更新完成后再权重量化为+1/-1,以便后期推断使用。

⑸每隔5-9次epoch迭代对输入图片尺寸进行调整,保证416*416大小。

4、将测试集输入训练好的二值化yolov3网络,输出三路大小分别为13*13、26*26和52*52的特征图,每张特征图的每个特征点上都带有3种不同尺寸的候选框,对每个候选框进行回归和分类并计算总损失,获取最优预测框位置输出及其对应的类别输出,具体包括:

⑴去除原darknet-53网络最后的convolutional层、avgpool层和softmax层并取网络第三个残差连接块的52*52输出特征图,第四个残差块的26*26输出特征图和第五个残差块的13*13输出特征图作为三路并行输出,对三路并行输出的特征图从小到大进行上采样连接(双线性插值法),上采样后对相同大小的特征图进行通道相加,最终输出三路大小分别为13*13、26*26和52*52的特征图,每张特征图的每个特征点上都带有3种不同尺寸的候选框,对每个候选框进行回归和分类并计算总损失;

⑵获取相对于候选区域的预测框偏移量,利用预设的预测框置信度阈值对输出的预测框进行初步筛选,去除置信度小于阈值的预测框,其中预测框置信度是根据预测框偏移量计算而来,预测框偏移量越大,其置信度越低;

⑶对预测框进行nms筛选去除重叠度高的预测框,得到最优预测框位置输出及其对应的类别输出,最优预测框进一步筛选方法具体是对预测框检测到的目标概率按照从大到小的顺序进行排列,删除与检测到目标的概率最大的预测框的交叠率大于50%的预测框,再删除与检测到目标的概率次大的预测框的交叠率大于50%的预测框,以此类推,最后留下的预测框即为非极大值抑制方法进一步筛选得到的预测框。

这里需要说明的是,本发明未特殊强调部分,均属于本领域技术人员根据现有目标识别技术可以或容易知晓如何实现的。

显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域及相关领域的普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1