本次实例是使用paddlepaddle实现车辆逆行违章检测。
绪论
对于目前大多数的交通监控而言,依旧是沿用传统的管理模式。对国民经济的日益发展和交通产业的需求日益增长,智能交通视觉系统的发展将趋向用机器视觉下的图像处理技术进行实时监测。基于深度学习的计算机视觉技术的发展,使得智能监控的精度不断提升。近年来提出的许多压缩模型和优化模型的方法,使得模型参数和计算量进一步下降。
简介
本次实例使用paddle框架开发,属于整体项目的一个功能模块(逆行违章检测模块)。该模型使用YOLOv3算法进行车辆的检测
使用ResNet18进行车辆状态识别(包括朝向、颜色和类型):
该项目使用了paddleDetection工具(提供接口和预训练模型,加快车辆检测)和X2Paddle工具(模型权重的转换)进行开发。
最终的效果图:
PaddleDetection简介:
源码地址:https://github.com/PaddlePaddle/PaddleDetection
官方文档:https://paddledetection.readthedocs.io/
PaddleDetection创立的目的是为工业界和学术界提供丰富、易用的目标检测模型。该工具集成了多种图像识别和目标检测模型,并且提供了相应的训练、推理和部署工具。
支持的主流模型包括:
使得开发者只需修改相应的yml格式参数文件,即可一键DIY并训练自己的模型
ResNet简介:
论文地址:《Deep Residual Learning for Image Recognition》
核心思想:将本来回归的目标函数H(x)转化为F(x)+x,即F(x)=H(x)-x,称之为残差。
网络结构:残差单元:ResNet的基本的残差单元如图所示:
基本结构如图,假设每个单元输入的特征层为x,经过两个卷积层获得输出y,将x与y求和即得到了这个单元的输出;在训练时,我们将该单元目标映射(即要趋近的最优解)假设为F(x)+x,而输出为y+x,那么训练的目标就变成了使y趋近于F(x).即去掉映射前后相同的主体部分,从而突出微小的变化(残差)。
用数学表达式表示为:
其中:
1.x是残差单元的输入
2.y是残差单元的输出
3.F(x)是目标映射
4{Wi}是残差单元中的卷积层
5.Ws是一个1*1卷积核大小的卷积,作用是给x降维或升维,从而与输出y大小一致(因为需要求和)
改进单元:同时可以进一步拓展残差结构:
原论文中则以VGG为例:
从VGG的19层拓展到了34层。可见使用了残差单元可以大大加深卷积网络的深度,而且不会影响性能和训练速度。
YOLOv3简介:
论文地址:https://arxiv.org/abs/1804.02767
核心思想: