yolov3识别的类别_车型识别相关技术

Posted 等待破茧

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了yolov3识别的类别_车型识别相关技术相关的知识,希望对你有一定的参考价值。

原文链接:https://blog.csdn.net/weixin_36431018/article/details/112369786

在交通安防中,车型识别是一个重要的技术点,车型识别主要包括车辆检测、型号识别、颜色识别,基于视频的车型识别,还包括跟踪算法的设计。我们在19年开源了一套车型识别模型HyperVID:
https://github.com/zeusees/HyperVID​github.com

2020年7月对该模型进行了进一步更新,目前支持大陆超过4000种车型及年款。感兴趣的技术人员可以关注一下。下面我们将其中涉及的技术进行拆解。

1.数据

我们知道,基于深度学习的识别算法,强烈依赖于数据的规模和质量,首先需要准备大量的车型数据,目前公开的车型数据集主要包括:

1)BIT-Vehicle Dataset(目前网站已不能访问,需要下载可以自行百度查找下载链接)

2)MIT Cars Dataset(https://ai.stanford.edu/~jkrause/cars/car_dataset.html

3)The CompCars dataset(CompCars Dataset)

单纯利用公开的数据,很难获得较高的准确率,一方面开源的数据集样本数量不足,另外样本的角度、场景不够丰富,这些都制约模型的准确率。我们的实习生也下载了一些数据,大家可以在仓库中下载。

2.车辆检测

目前已经有很多较好的检测算法,例如:SSD、YOLOV3、YOLOV4、CenterNet、RetinaNet,还有针对单一物体检测的算法,包括:MTCNN、RetinaFace、LFFD(YonghaoHe/A-Light-and-Fast-Face-Detector-for-Edge-Devices),我们在进行车型识别的时候,主要选择了YOLOV3作为多物体检测框架,RetinaFace作为单一物体检测框架。大家可以根据自己的需求进行选择。

3.跟踪

跟踪算法很多,这里只关注实战中效果好,够快的算法,我们选择KCF及光流。不同的算法实现效率差别很大,我们测试过很多开源的算法,github上这个KCF算法的实现效率比较高(joaofaro/KCFcpp),基于光流的算法大家可以利用opencv实现。

这里 mobilenet-ssd with kcf (apoorvavinod/Real_time_Object_detection_and_tracking)是一个检测加跟踪的例子,大家可以作为参考。

4.车辆颜色识别

关于车辆外观颜色的识别,公安部有相应的标准,需要支持其中主流的9种颜色,目前很多公司都会增加识别颜色的类别,11种、13种的都比较多。在车辆颜色识别这一块,我们选择单独的一个小网络来实现,有些公司采用一个多任务网络,在进行车辆种类识别的同时,完成颜色的识别,这种方式速度很相对快一点,但是升级起来比较麻烦,每次都要进行多任务的训练,并且多任务的网络训练起来也相对复杂。因为市面上车辆的颜色种类相对固定,颜色识别模型只需要训练一次,就可以在后期复用。颜色分类比较简单,大家可以自己选择一个小网络进行训练,其中shufflnet、SqueezeNet、mobilenet-0.25都是比较好的模型。

5.车辆种类识别

车辆种类识别,正常来讲属于fine-grained任务,就是所谓的细分类,目前有很多论文研究细分类的问题,工业界的实现通常有别于学术界,我们通常选择一个高效的网络,直接进行分类,同样可以得到较好的识别效果。我们大多针对移动端和边缘设备,我们选取了mobilenetv3-large作为主干网络,在5600种车型分类中,Top-1可以达到96%的准确率。Top-3能达到99.8%以上。根据我们的经验,利用resnet50基本可以满足车辆识别分类任务,再大的网络意义也不是很大,毕竟要兼顾准确率和速度。

6.后记

可以看到,整个车辆识别系统种,除了跟踪部分,我们都选择了基于深度模型进行识别,一方面深度学习能够取得较好的识别效果,另外目前的边缘设备,服务器,都有基于GPU、TPU的加速模块,能够释放CPU的压力。也是目前技术发展的一个趋势,感兴趣的朋友可以自己尝试开发一下。

7.相关链接

1)在线体验:智云视图-专注移动端高效视觉算法研发

2)SqueezeNet:forresti/SqueezeNet

3)RetinaFace:https://github.com/biubug6/Pytorch_Retinaface

4)QQ群:737677707
相关资源:Python+OpenCv实现车牌检测与识别
 

以上是关于yolov3识别的类别_车型识别相关技术的主要内容,如果未能解决你的问题,请参考以下文章

描述人脸识别的过程

用于图像识别的五大最佳编程语言!

介绍用于图像识别的五大最佳编程语言!

机读证件识别技术

Java 图像识别 数字图像处理 从一张JPG图片中识别出若干黑色小方块

高科技应用之人脸识别人证比对