极市导读
本文为获得渣土车识别冠军的胡可飞团队方案解读,团队选用了yolov5s网络来作为此次比赛任务的检测模型,最后优化的模型推理速度从9FPS最高到52FPS,已具备CPU上实时推理的能力。>>加入极市CV技术交流群,走在计算机视觉的最前沿
本赛题希望基于计算机视觉技术可以实时监测到“黑车”,能及时、安全地管理渣土车,实现智能化管理,保证无“黑车”上岗,为创造智慧工地提供大力保障。 赛题目标是使用计算机视觉算法对图片中的渣土车的车牌进行识别,并且输出车牌的文字内容。观察样例数据推测图片主要采集自交通监控摄像头。
比赛的评价指标由F1 score和性能分FPS组成,这要求算法设计要兼顾精度和速度,算法的推理性能要具备实时性(>30FPS)。本赛题主要难点如下:
主要算法设计如下图所示:
其中检测模型我们选用了yolov5s网络,该网络具有较好的精度和速度的trade-off,常用于落地部署项目中。该检测网络直接使用数据标注的渣土车和车牌类进行训练,同时检出两类目标。最终输出中并不需要输出车牌框bbox,所以此处输出的车牌bbox仅用于提取车牌内容。
由于最终推理设备是cpu,所以对模型的轻量化要求较高,未经优化的yolov5s的推理速度越10FPS+,很难达到实时推理,所以我们对yolov5s网络进行剪枝,方法参考了slim-yolov3,通过bn层缩放系数,对模型各层的通道数进行结构化剪枝。剪枝的原理和操作流程如下:
由于检测网络同时输出渣土车和车牌的bbox,丢失了两者的关联关系,所以我们使用匈牙利算法对两者进行匹配,获得每个渣土车目标对应的车牌bbox。匹配的cost使用的是IoF,即Intersection over foreground,车牌即为foreground。理论上,车牌对于其所在的渣土车的IoF应该为1,实际匹配中我们设置了一个更宽松的阈值0.8。主要处理流程如下:
OCR部分我们使用了经典的CRNN网络,backbone等组成部分都选用了轻量化网络结构:
因为检测网络已经输出了车牌bbox,且车牌bbox基本等于车牌的文字区域,考虑到算法整体的实时性要求,我们未使用专门的文字区域检测网络,而是将检测网络输出的车牌bbox直接抠图送入OCR网络进行推理。OCR的训练数据来自于原数据中使用车牌bbox抠图得到的车牌图片patch,数据的准备流程如下:
整体算法流程即上文所述方法,为了提高推理速度,我们的轻量化策略主要如下:
优化后模型的推理速度从9FPS最高到52FPS,已具备CPU上实时推理的能力。
消融实验的结果如下表:
极市平台的比赛提供了免费算力,并对数据进行了加密,使比赛更加公平,选手可以将更多注意力放在算法设计和优化上。为了提高开发效率,减少bug的发生。在比赛初期,大家可以将样例数据下载下来,在本地的设备上完成主要流程的开发后,再复制到平台的开发环境中。
由于线上运行时触发代码bug,需要选手重新debug和排队,会严重影响开发效率,所以代码的debug十分重要,可以利用好logger功能,将主要信息写入日志。
由于比赛需要兼顾性能分,算法的轻量化工作十分重要,可以通过模型选型,剪枝,量化,模型复用等方法提高推理性能。
我们设计的算法兼顾了精度和速度,可以部署落地在边缘段设备中,但精度仍存在提升空间。
如果觉得有用,就请分享到朋友圈吧!
公众号后台回复“88”获取严彬:STARK-
基于时空Transformer的视觉目标跟踪PPT下载
# CV技术社群邀请函 #
备注:姓名-学校/公司-研究方向-城市(如:小极-北大-目标检测-深圳)
即可申请加入极市目标检测/图像分割/工业检测/人脸/医学影像/3D/SLAM/自动驾驶/超分辨率/姿态估计/ReID/GAN/图像增强/OCR/视频理解等技术交流群
每月大咖直播分享、真实项目需求对接、求职内推、算法竞赛、干货资讯汇总、与 10000+来自港科大、北大、清华、中科院、CMU、腾讯、百度等名校名企视觉开发者互动交流~