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

news/2024/4/20 8:00:58/文章来源:https://blog.csdn.net/lily_19861986/article/details/129196888

队伍:AI0000043

1. 算法方案

由于赛题同时要求速度和精度,所以我们优先考虑小模型,在保证模型速度的同时通过模型调优稳 定提升模型精度。此外,由于图片分辨率比较大,且数据集中小目标占比高,我们计划使用更大的图片 尺寸输入,这就要求网络具有更大的感受野,所以我们使用yolov5s6而不是yolov5s作为我们的 baseline。

同时,为了稳步提升模型性能,我们在使用一些通用tricks的同时,例如coco数据集的预训练权 重,多尺度训练,模型平均以及同步BN,还使用了大量的数据增强来进一步增强网络的泛化性,使用的 数据增强包括RandomFlip、Mosaic、Mixup、Cutout、Blur和ToGray,整体方案如下:

  • Yolov5 s6 + 4head 
  • 大量数据增强(randomflip、mosaic、mixup、cutout、albu库等) img size896 + multi-scale training
  • 300epochs训练周期
  • int8模型量化

2. 模型移植

我们在模型移植方面进行了大量的尝试以及实验,整体思路是在保持或是较小影响模型性能的同时,尽 可能提升模型推理速度,技术路线分为Pytorch2Fp32bmodel和Pytorch2Int8bmodel

Pytorch→FP32bmodel

由于我们使用的是s6模型,输出个数、锚框尺寸以及下采样倍数与主办方提供的s模型不同,所以我们需 要修改推理脚本中的anchor generator来适配,最终模型的输出结果与pt输出结果基本一致,且速度相 较于jit模型推理有显著提升。

Pytorch→Int8bmodel

我们通过模型量化来进一步提升模型的推理速度。在量化过程中,我们也碰到了一些问题。首先是量化 时间过长。通常来说,量化数据集图片数量多的话,量化的精度损失也会下降,我们在实验中发现,使 用所有数据集(训练集+val_a+val_b)需要超过20h的量化耗时,使用验证集(val_a+val_b)需要大概 10~20h的量化耗时,使用val_b能够将量化用时控制在10h以内。为了解决量化时间过长的问题,我们最 终只将b榜验证集作为我们的量化数据集,专注于降低模型在b榜数据集上的量化误差。第二个问题是量 化后模型精度下降过大,考虑到网络某些层由于作用明显,不适合int8量化,所以在实际量化过程中, 由于网络检测头的卷积输出坐标以及得分等关键信息,我们对其使用fp32单独量化。此外,由于一键量 化工具会自动进行量化策略搜索,但对同一模型搜索路线是相同的,所以我们通过使用一键量化工具量 化多个模型取最优来保证量化后的模型性能。最后,我们还进行了其它尝试,比如将模型量化的误差指 标由feature_similarity更换为detect_accuracy,在分步量化时通过calibration_use_pb命令行添加- th_method指定计算各个层量化阈值的方法。最终我们量化后的模型在推理速度上相较于fp32的模型能 够提升22ms,虽然AP50有所下降,但是最终得分还是得到了显著提高。

3. 模型推理

在模型推理的优化上,我们的策略如下:

  • 改进NMS
  • 优化后处理,裁剪越界框
  • 进行尺度实验,权衡模型的速度和精度

在具体实验中,我们观察到原有的nms实现太耗时,我们尝试使用nms变种进行替换,在尝试过 fast_nms等nms变种后,我们最终引入torchvision.ops.nms来替换原本的nms,改进的nms能在保持 模型精度的同时,提升模型推理速度10ms。此外,原有的推理脚本未对越界框进行处理,使得模型的输 出结果中包含许多跨出边界的检测框,我们将这些跨出边界的检测框限制在图像尺寸内,这个操作能够 在不影响推理速度的同时,提升AP50大约0.5个点。最后,我们还进行了大量的尺度实验来权衡速度和 精度,包括960尺度训练(960尺度推理)、960尺度训练(896尺度推理)、896尺度训练(896尺度推 理)等,最终使用方案896尺度训练(896尺度推理)

4. 参赛感悟与建议

由于时间原因,模型还有更多的优化空间,我们未来考虑从以下三方面来进行优化:

  • 模型训练优化:在同等模型大小下,通过一些训练技巧,模型精度还能得到进一步的提升
  • 模型量化优化:Int8量化后的模型精度有所下降,可以尝试更多的优化策略来减少精度的损失,从 而进一步提升模型的性能
  • 推理过程优化:多batch size推理,多卡多线程推理

在这里,也感谢算能平台提供的机会以及资源,让我们对TPU有了进一步的了解。在有限的比赛时间 内,我们也发现了一些问题,比如说明文档的不完善,在比赛过程中,我们有考虑使用多卡多线程推 理,但是在阅读过平台相关的说明文档后,发现这方面的资料稀少且表述不清晰,所以最终也没有成功 实现,另外就是推理脚本的不完善,在比赛过程中,我们通过优化推理脚本就显著提高了模型的推理速 度,模型的推理脚本仍有很大的优化空间。最终衷心祝愿算能平台能发挥自身优势,越来越好。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_73487.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WAF:ModSecurity on Nginx(15)

预备知识 Nginx概述 Nginx ("engine x") 是一个高性能的HTTP和 反向代理 服务器,也是一个 IMAP/POP3/SMTP服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代…

指针的进阶【上篇】

文章目录📀1.字符指针📀2.指针数组📀3.数组指针💿3.1.数组指针的定义💿3.2. &数组名VS数组名💿3.3.数组指针的使用📀1.字符指针 int main() {char ch w;char* pc &ch;// pc就是字符指…

智慧物联网系统源码:一个用于数据的收集、处理、可视化、设备管理、设备预警、报警的平台

项目简介: 一个用于数据的收集、处理、可视化、设备管理、设备预警、报警的平台,通过平台将所有设备连接起来,为上层应用提供设备的管理、数据收集、远程控制等核心物联网功能。 支持支持远程对设备进行实时监控、故障排查、远程控制&#…

PPP点到点协议认证之PAP认证

PPP点到点协议认证之PAP认证 需求 如图配置接口的IP地址将R1配置为认证端,用户名和密码是 huawei/hcie ,使用的认证方式是pap确保R1和R2之间可以互相ping通 拓扑图 配置思路 确保接口使用协议是PPP确保接口的IP地址配置正确在R1 的端口上&#xff0c…

Pycharm远程服务器常见问题

2023年02月23日 问题描述&#xff1a;Pycharm远程服务器跑代码时&#xff0c;不小心把Pycharm关掉了&#xff0c;但服务器代码还在运行&#xff1f; 解决办法&#xff1a;kill进程 先用watch -n 0.5 nvidia_smi查看进程&#xff0c;然后kill -9 <进程> 1、nvidia-smi…

ip公司和soc公司是什么?

IP 公司和 SoC 公司都是半导体行业的重要组成部分&#xff0c;但它们的角色和职责略有不同。IP&#xff08;Intellectual Property&#xff09;公司主要提供可重用的知识产权组件&#xff0c;也称为 IP 核或 IP 模块&#xff0c;这些组件可以在设计芯片的过程中被集成到芯片中。…

Unity 对接 ML-Agents 初探

一、ML-Agents 是什么 The Unity Machine Learning Agents Toolkit (ML-Agents) is an open-source project that enables games and simulations to serve as environments for training intelligent agents. We provide implementations (based on PyTorch) of state-of-the…

回归预测 | MATLAB实现BO-CNN-GRU贝叶斯优化卷积门控循环单元多输入单输出回归预测

回归预测 | MATLAB实现BO-CNN-GRU贝叶斯优化卷积门控循环单元多输入单输出回归预测 目录回归预测 | MATLAB实现BO-CNN-GRU贝叶斯优化卷积门控循环单元多输入单输出回归预测效果一览基本介绍模型描述程序设计参考资料效果一览 基本介绍 基于贝叶斯(bayes)优化卷积神经网络-门控循…

Unity(三)--导入3d模型并实现UGUI界面上嵌入3d模型

Unity支持的常用模型格式及建模软件: 格式建模软件网格动画材质骨骼FBX3DMax,C4D,Blender,Maya等√√√√OBJ3DMax,C4D,Blender,Maya等√目录 导入模型并调整好位置创建2D场景(UGUI)使3d模型显示在图片前面方法一:使用Render Texture注意点导入模型并调整好位置 以FBX为例,…

百万数据excel导出功能如何实现?

最近我做过一个MySQL百万级别数据的excel导出功能&#xff0c;已经正常上线使用了。 这个功能挺有意思的&#xff0c;里面需要注意的细节还真不少&#xff0c;现在拿出来跟大家分享一下&#xff0c;希望对你会有所帮助。 原始需求&#xff1a;用户在UI界面上点击全部导出按钮…

如果不使用时钟同步工具,linux如何解决时钟同步问题?仅需要一行命令即可。

这是一篇日记&#xff0c;记录了上帝下凡出手&#xff0c;解救苍生与水火之中的神奇文章&#xff0c;如果你也有过类似的经历&#xff0c;留言关注&#xff0c;咱们交流一下~ 目录 背景&#xff08;如果不想知道可以跳过&#xff09; 一行神奇的命令 一段一段的研究 总结 背…

go atomic 原子操作

在 go 语言 string 类型思考 中有说到 -race 竞态检测&#xff0c;多个 goroutine 并发读写同一个变量是会触发。竞态竞争导致的问题是&#xff1a;结果不可控&#xff0c;你也无法预料最终的结果是什么。 比较棘手的竞态竞争会发生在一些切片类型上&#xff0c;在遍历读取切片…

221 最大正方形

#221 最大正方形 题目描述 在一个由 0 和 1 组成的二维矩阵内&#xff0c;找到只包含 1 的最大正方形&#xff0c;并返回其面积。 示例 1&#xff1a; 输入&#xff1a;matrix [["1","0","1","0","0"],["1",&…

【LeetCode】2357. 使数组中所有元素都等于零

2357. 使数组中所有元素都等于零 题目描述 给你一个非负整数数组 nums 。在一步操作中&#xff0c;你必须&#xff1a; 选出一个正整数 x &#xff0c;x 需要小于或等于 nums 中 最小 的 非零 元素。nums 中的每个正整数都减去 x。 返回使 nums 中所有元素都等于 0 需要的 …

经典设计模式MVC理解

MVC是模型(Model)、视图(View)、控制器(Controller)的简写&#xff0c;将业务逻辑、数据、显示分离的方法来组织代码。今天简单回顾一下。 mvc释义理解 M代表模型(Model)&#xff0c;表示业务规则封装。在MVC的三个部件中&#xff0c;模型拥有最多的处理任务。被模型返回的数据…

图表类可视化开发采坑记录之旅3

如图所示的扇形图样式改造&#xff1a; 开发框架&#xff1a; 基于vue2&#xff0c;echarts5.0.0 基于组件&#xff1a; html代码&#xff1a; <div class"showCanvas"><div id"midError"></div> </div> css代码&#xff1a; …

【华为OD机试模拟题】用 C++ 实现 - 去除多余空格(2023.Q1)

最近更新的博客 华为OD机试 - 入栈出栈(C++) | 附带编码思路 【2023】 华为OD机试 - 箱子之形摆放(C++) | 附带编码思路 【2023】 华为OD机试 - 简易内存池 2(C++) | 附带编码思路 【2023】 华为OD机试 - 第 N 个排列(C++) | 附带编码思路 【2023】 华为OD机试 - 考古…

运动蓝牙耳机什么牌子好,运动蓝牙耳机品牌推荐

现在市面上运动耳机的品牌越来越多&#xff0c;还不知道选择哪一些运动耳机品牌&#xff0c;可以看看下面的一些耳机分享&#xff0c;运动耳机需要注意耳机的参数配置以及佩戴舒适度&#xff0c;根据自己最根本的使用需求来选择运动耳机。 1、南卡Runner Pro4骨传导蓝牙运动耳…

C/C++开发,无可避免的内存管理(篇一)-内存那些事

一、内存管理机制 任何编程语言在访问和操作内存时都会涉及大量的计算工作。但相对其他语言&#xff0c;c/c开发者必须自行采取措施确保所访问的内存是有效的&#xff0c;并且与实际物理存储相对应&#xff0c;以确保正在执行的任务不会访问不应该访问的内存位置。C/C语言及编译…

mongoDB的安装与使用

MongoDB安装MongoDB官方网站&#xff1a;https://www.mongodb.com/try/download/community-kubernetes-operator2软件安装权限不足&#xff1a;https://www.javaclub.cn/database/56541.htmlstep1:打开安装包直接点击Nextstep2&#xff1a;继续点击Nextstep3&#xff1a;点击自…