爱笑的小姐姐 · 2022年12月23日 · 北京市

Windows 版的3D目标检测框架 smoke PyTorch 实现

【GiantPandaCV导语】修改开源的 3D 检测算法,使用了 pytorch 自带的 DConv,省去 linux 下编译 DConv 的 cuda 代码,可以直接在 window 下训练和测试。在源码基础上增加了 finetune 和 resume 等功能,并提供了重新训练的模型。

代码:https://github.com/Huangdebo/SMOKE-window

  • [x] 模型效果
    640.gif

1 网络结构

image.png
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 的中心点。
image.png

2.2 回归分支

image.png
image.png
image.png

3 loss 计算

3.1 关键点分类 loss

image.png

3.2 回归 loss

image.png

结论:

SMOKE 的backbone 使用了 DLA,而且依赖 Dcnv,所以模型比较大,对落地部署不是很友好。而且是依赖镜头的内参的,不清楚多种数据训和训练效果如何。3D框的回归比较稳定,但存在漏检,尤其是小目标和只出现一部分的目标。如果能参考主流 2D 检测的多层检测,和优化关键点分支的策略,也许能缓解这些问题。

作者: Wonderful
文章来源:GiantPandaCV

推荐阅读

更多嵌入式AI干货请关注嵌入式AI专栏。欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。
推荐阅读
关注数
18808
内容数
1352
嵌入式端AI,包括AI算法在推理框架Tengine,MNN,NCNN,PaddlePaddle及相关芯片上的实现。欢迎加入微信交流群,微信号:aijishu20(备注:嵌入式)
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息