【GiantPandaCV导语】修改开源的 3D 检测算法,使用了 pytorch 自带的 DConv,省去 linux 下编译 DConv 的 cuda 代码,可以直接在 window 下训练和测试。在源码基础上增加了 finetune 和 resume 等功能,并提供了重新训练的模型。
代码:https://github.com/Huangdebo/SMOKE-window
- [x] 模型效果
1 网络结构
smoke 的网络机构比较简单粗暴,一个 DLA 直接出 w/4, h/4 的特征图,然后分成两路:(1) 关键点检测,用以得出每个类别的目标的 3D 中心点在 2D 图像中的投影 (2) 3D 信息的回归, depth_offset(1), keypoint_offset(2), dimension_offset(3), orientation(2),共 8 个channel。
2 3D 检测
2.1 关键点分支
类似 centernet,把目标看成点来检测,但不同的是,smoke 利用的是 3D box 的中心投影点,而不是 2D box 的中心点。
2.2 回归分支
3 loss 计算
3.1 关键点分类 loss
3.2 回归 loss
结论:
SMOKE 的backbone 使用了 DLA,而且依赖 Dcnv,所以模型比较大,对落地部署不是很友好。而且是依赖镜头的内参的,不清楚多种数据训和训练效果如何。3D框的回归比较稳定,但存在漏检,尤其是小目标和只出现一部分的目标。如果能参考主流 2D 检测的多层检测,和优化关键点分支的策略,也许能缓解这些问题。
作者: Wonderful
文章来源:GiantPandaCV
推荐阅读
- 回顾2022年计算机视觉领域最激动人心的进展
- 量化部署篇 | Vision Transformer应该如何进行PTQ量化?这个方法或许可以参考!
- 自制深度学习推理框架-前言-第一课
- YOLOv6精度提升的又一根稻草,感知量化的重参再设计,QARep值得内卷
- xNN:支付宝端侧深度学习框架
更多嵌入式AI干货请关注嵌入式AI专栏。欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。