团队简介

AI0000032 团队成员均为从事计算机视觉领域的企业员工,热爱技术,勇于挑战,致力于更通用目标检测算法的研究与落地。团队由三人组成,队长何正海 主要负责整体方案设计与模型的量化工作,余洋主要负责模型训练与调优,段富 治主要负责数据分析与处理。

摘要

基于 TPU 平台对真实场景下采集的行人和车辆图片进行目标检测与识别。人机非目标检测是计算机视觉技术在智能交通领域的一项重要落地应用,同时也 是交通实时监控、车流量管理和车辆辅助控制的基础。实际的应用场景通常面临 算法精度和性能的权衡,因此基于 TPU 平台实现人机非目标检测题目要求使用 算能提供的低功耗的 TPU 算力实现精度更高、速度更快的人机非检测算法。

为实现人机非检测算法在 TPU 平台的部署,我们的实施方案主要包括以下 4 个步骤:

  1. 方案选择。通过对赛题分析,模型在TPU平台上的推理性能分占较大部分,因此我们选择了侧重于实时目标检测的 YOLO[1]系列算法作为最终 部署的模型。

  1. 模型优化。为了弥补YOLO算法在精度上的差距,我们使用了基于CNN 与基于 Transformer 架构的两个大网络,以半监督的方式在不影响模型复 杂度的情况下提升小网络的精度。

  1. 模型量化。使用自动量化工具[2]对训练完成的模型进行int8量化,并以特征相似度为指标进行多次迭代优化,得到混合精度的 bmodel。

  1. 部署测试。将量化后的bmodel移植到BM1684平台,测试模型性能并优化,最终的方案在复赛 mAP 为 73.71,推理耗时 50.3ms,获取了第三名 的成绩。

关键词

人机非目标检测,TPU,模型量化

1.赛题介绍

本次赛题 A 榜提供的数据集中包含 3018 张真实场景下的行人和车辆图片,其中训练集包含 2885 张带有标签的图片,测试集包含 133 张不带有标签的图片, 用于初赛前期提交测试。B榜另外提供了 102 张不带有标签的图片,用于初赛最 终提交和复赛提交测试。参赛者需要在训练集上自行训练网络,检测并识别测试 集中三类目标:行人、机动车和非机动车。初赛最终得分计算公式为:score = mAP ∗ 100,分数高者为优;复赛最终得分计算公式为score = mAP ∗ 100 + (1000 − i_time) ∗ 0.1。其中 mAP(mean Average Precison)即各类别APIoU = 0.5 的平均值,APIoU = 0.5为 IoU 阈值为 0.5 的平均精度;i_time 为测试集图片推理 的平均时间,单位为 ms。

2.解题思路

由复赛得分计算公式可知,精度分(mAP 得分)和性能分上限均为 100。根据初赛经验,大网络精度分在 80+,而 TPU 上的推理时间只要在 200ms 以内即可达到 80+的性能分。且最终得分提高 1 分需要 mAP 提高一个点或者推理时间减少 10ms,后者实现难度更低。因此我们的方案主要侧重于性能分,在低耗时的条件下寻找其他提高精度分的途径。

2.1.方案选择

复赛初期,我们选择了较为熟悉的 YOLOv5 作为训练框架,分别使用 YOLOv5s、YOLOv5m、YOLOv5l,选取 640、960 和 1280 分辨率,不同超参数训练策略进行实现,训练精度如下表,根据本地验证集 mAP 和 int8 耗时进行取舍,最后确定 YOLOv5m 以 960x960 分辨率(后文记为 YOLOv5m_960)训练 300epoch 得到的模型为最终部署模型。不同网络的验证集精度如表 1 所示:

2.2.模型优化

沿用初赛时的数据集划分,我们将 2885 张训练集按 9:1 划分为训练集 2596 张和验证集 289 张,因为初赛在 2596 张训练集上的模型精度高于全量数据,因此后续我们仍采用相同策略。

由于 YOLO 更侧重于实时性,精度要低于偏向于高精度的大网络,所以我们选择了初赛训练过的两个大网络 Cascade_RCNN_SwinB_p4_w7[3](记为 M1) 和 DINO_5Scale_SwinB_p4_w7[4](记为 M2),用半监督的方式提高YOLOv5m_960(记为 M3)的精度。前者是以 SwinB[5]为 backbone的 Cascade R-CNN 检测器,后者是一种完全基于 Transformer 的检测算法,并加入了去噪训 练策略优化训练流程。M1 和 M2 与 YOLO 检测算法的精度、计算量和参数量如 表2所示。

这里选择多个网络主要有两点想法:一是初赛虽然两者的 mAP 都比较高,但由于结构不同,最后预测框的分布存在较大差异,希望能起到模型融合的效果; 二是考虑到数据集图片数量较少,通过这种与数据增广正交的方式增加训练数据。 半监督策略实施步骤如下,详见表 3:

1. 首先在A榜训练集上训练得到M1、M2和M3;

2. 利用M1和M2分别在A榜训练集、A榜测试集以及B榜测试集共2831

张图片上进行推理,得到两份伪标签数据;

3. 将两份伪标签数据与 A 榜训练集加在一起得到 8258 张数据集,重新训 练M3得到M4;

4. M4 在 A 榜训练集上微调得到最终模型 M5,并比较 M3、M4 和 M5 的 精度。

值得注意的是,推理时并没有为了保证高 precision 选取高置信度,而是尽量使模型的推理结果与训练集的标注分布保持一致。这里我们分别测试了 [0.1:1.0:0.1]共 9个阈值,最后选取检测框个数和训练集标注框个数最接近的阈值,实验效果较好,其中 M1 阈值为 0.5,M2 阈值为0.3。如表 1 所示,M4 相比 M3 mAP 有 2.9 个点的大幅提升,而 M4 和 M5 精度相同,最终选择 M5 作为部署模型。

2.3.模型量化

为与测试时的数据分布保持一致,从训练集中挑选 200 张图片作为量化数据集。我们实验对比了 YOLOv5m_640 模型自动量化和直接转为 fp32 的 bmodel 两 种方式并提交测试,结果如图 1 所示。自动量化后的模型在耗时从 53.99ms 降到 35.88ms 的情况下 mAP 反增 0.19 个点(因为前几次提交并未给出得分明细,图 中耗时为所有测试集图片在本地推理的平均时间),因此后续均采用自动量化策略。

以 feature_similarity 为量化评价指标,使用 bmnnsdk2-bm1684_v2.7.0 SDK 中 的自动量化工具迭代 200 次,得到 M5 的 bmodel。模型除了后处理部分使用 fp32, 其他部分均使用 int8 推理,feature_similarity 为 0.9908。

2.4.部署测试

在 YOLOv5m 640 分辨率的 baseline 基础上,依次增加半监督训练、分辨率 调整至960、iou和obj阈值从0.001调整至0.0001的策略进行改进。使用BMCV 库对图像处理过程加速,修改 YOLOv5 CPP demo,进行推理测试,得到最后的 提交结果。上述几次提交得分如图 2 所示,因为第一次提交结果时没有加上前后处理时间,除去该因素,半监督策略提高 2 个多点,与本地验证集实验结果一致。

3.比赛总结

感谢北京算能科技有限公司这次举办的 AI 算法创新赛,给我们提供了学习和实践的机会。同时感谢算能提供的云平台,让我们能亲身体会从训练模型到 TPU 落地部署的整个流程。此次比赛留下最深印象的是算能的自动量化工具,能 根据不同的评价标准搜寻最优量化策略并自动迭代优化,使得模型在无损的情况 下推理效率成倍的增长。但是自动量化的耗时比较久,没有进度条显示,希望能 进一步完善。同样还有大网络利用伪标签的方式提升小网络的策略也带来了可观 的分数涨幅。但由于各种因素限制,本次比赛没有探索更多策略和尝试新的想法, 希望能有机会学习其他团队的方案。

参考文献

[1] Jocher, G. (2020). YOLOv5 by Ultralytics (Version 7.0) [Computer software]. https://doi.org/10.5281/zenodo.3908559

[2] https://sophgo-doc.gitbook.io/bmnnsdk2-bm1684/

[3] Cai, Z., & Vasconcelos, N. (2018). Cascade r-cnn: Delving into high quality object detection. In Proceedings of the IEEE conference on computer vision and pattern recognition (pp. 6154-6162).

[4] Zhang, H., Li, F., Liu, S., Zhang, L., Su, H., Zhu, J., ... & Shum, H. Y. (2022). Dino: Detr with improved denoising anchor boxes for end- to-end object detection. arXiv preprint arXiv:2203.03605.

[5] Liu, Z., Lin, Y., Cao, Y., Hu, H., Wei, Y., Zhang, Z., ... & Guo, B. (2021). Swin transformer: Hierarchical vision transformer using shifted windows. In Proceedings of the IEEE/CVF International Conference on Computer Vision (pp. 10012-10022).

AI算法创新赛-人车目标检测竞赛总结03相关推荐

  1. AI算法创新赛-人车目标检测竞赛总结01

    AI0000020 摘要:人车目标检测竞赛主要考察目标检测算法与 TPU 部署推理,主要考察算法选型与调 优,面向算能 TPU 迁移部署与推理加速两项能力;主要考核目标是算法效果(mAP)与推 理性能 ...

  2. AI算法创新赛-人车目标检测竞赛总结04

    队伍:AI000038 小组成员:杨志强,林松 1. 算法介绍 1.1 相关工作 当前流行的目标检测算法主要分为三种,一阶段算法:SSD,FCOS,Scaled,YOLO系列等:二阶段算法:Faste ...

  3. TPU编程竞赛系列|基于TPU平台的人车目标检测初赛收官!

    近日,AI算法创新赛-"基于TPU平台的人车目标检测"初赛正式结束,经过激烈地角逐,最终排名TOP20的队伍成功进入复赛,开启新的赛程! 目标检测是计算机视觉的热门方向,广泛应用于 ...

  4. 2020年AI竞赛获奖方案复盘系列(三) 目标检测竞赛trick-kaggle小麦检测1st2nd Place solution

    前言 这是2020年博主参加的第一个竞赛,kaggle上面的小麦检测.这场比赛是对小麦头进行目标识别,kaggle大赛官方说是意义重大,可以更好的评估粮食产量,为全人类做贡献,简直是厉害了.这个比赛结 ...

  5. 参赛指南 | 教育部白名单竞赛少年硅谷 AI算法竞技赛

    竞赛含金量 竞赛名称:第二届少年硅谷-全国青少年人工智能教育成果展示大赛 AI算法竞技赛 竞赛官网:shaonianguigu.org.cn 批准单位:中华人民共和国教育部 (教监管厅(2021)7号 ...

  6. 基于大尺寸图像的小目标检测竞赛经验总结

    点击上方"计算机视觉工坊",选择"星标" 干货第一时间送达 作者丨清风明月@知乎(已授权) 来源丨https://zhuanlan.zhihu.com/p/34 ...

  7. 人车目标检测、交通标志识别…云测数据喊你参加第九届CCF大数据与计算智能大赛啦

    2021年大数据与AI领域年度盛事--第九届CCF大数据与计算智能大赛已全面开赛! 云测数据携手OneFlow一流科技,发布基于自动驾驶场景下的"人车目标检测.交通标志分类识别.交通灯识别. ...

  8. 最全技术剖析:百度视觉团队获世界最大规模目标检测竞赛冠军

    眼睛是人类接触外部世界的第一感官,对于机器而言,计算机视觉技术就是它们的"眼睛".近日,百度视觉团队在全球最大规模目标检测竞赛Google AI Open Images-Objec ...

  9. 计算机视觉算法——基于Transformer的目标检测(DETR / Deformable DETR / DETR 3D)

    计算机视觉算法--基于Transformer的目标检测(DETR / Deformable DETR / DETR 3D) 计算机视觉算法--基于Transformer的目标检测(DETR / Def ...

最新文章

  1. 多个表关联的查询语句
  2. ps人像精修照片步骤_ps修图教程:人像精修
  3. 【信息抽取】介绍一种端到端的关系抽取方法
  4. Python中字符串常用处理函数
  5. 解决 /usr/share/git-cola/bin/ssh-askpass: 3: exec: wish: not found
  6. ITK:从体积生成切片
  7. 海啸(二维前缀和/二维树状数组)
  8. 在自己的linux服务器上面部署ShowDoc
  9. 洛谷P3296 刺客信条
  10. qr分解求线性方程组_计算方法/数值分析第三章 线性方程组的数值解法
  11. C语言基础知识----注意事项
  12. SolrClient或SolrTemplate写入时连接solr服务器超时问题的一种解决方案
  13. Linux命令解释之find
  14. MySQL联合主键保存_mysql联合主键
  15. 信息技术基础2(课程笔记)
  16. 霍尼韦尔和陕西西咸新区签订投资战略协议;雀巢专业餐饮成都客户交流体验中心落成 | 美通企业日报...
  17. Tap4fun杨祥吉:手游大佬最怕员工知道的那些事儿
  18. 记一次confluence邮件服务器配置的坑(阿里企业邮箱)
  19. 注册公众号(企业类型的订阅号)参考步骤
  20. 探花交友06-即时通信

热门文章

  1. No.20 不深入而浅出 Roaring Bitmaps 的基本原理
  2. 华为云账号注册登录快捷入口
  3. java迪杰斯特拉算法实例,Java 图的最短路径dijstra(迪杰斯特拉)算法和拓扑排序
  4. 【行研报告】2021互联网行业挑战与机遇白皮书—附下载
  5. 酷开系统坚持精细化运营,引领行业变革
  6. calendar读音_calendar是什么意思(calendar发音)
  7. 基于springboot的食品二维码溯源系统
  8. 文本主题分类(TFIDF-朴素贝叶斯分类)
  9. Zookeeper+Hadoop+Hbase+Hive+Kylin+Nginx集群搭建
  10. PCB走线线宽电流对照表