无人驾驶中的激光雷达(四)Pointpillar+CenterNet实现的3D点云目标检测网络

本文主要是介绍无人驾驶中的激光雷达(四)Pointpillar+CenterNet实现的3D点云目标检测网络,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

简要介绍

  • 引言
    • 基本思路
    • 一一说明
    • 未完成的东西

引言

好久没总结过新东西了,这次就把最近自己通过拼凑代码实现的一个点云目标检测网络现在这做个总结吧。
不过我的网络还没来得及改进,大思想就和别人的撞车了,人家已经发了CVPR,对于自己这个半成品网络也没什么兴趣继续改进了。
CVPR2021的论文是:
Center-based 3D Object Detection and Tracking
代码:https://github.com/tianweiy/CenterPoint
我搭的网络目前叫CenterPillar,当然也就图一乐。。。我是在KITTI数据集上跑的,先把结果放出来吧:
在笔记本的RTX2060mq上可以跑18fps左右。
在这里插入图片描述
代码链接放这:https://github.com/wangx1996/CenterPillarNet

基本思路

其实思路很简单,pointpillar加centernet构成,pointpillar用来作为点云的编码网络,centernet用来做特征提取的backbone和neck以及head部分。整体思路基本与去年地平线的AFdet方法一致,不过我没有将centernet网络的输出再上采样回原有尺寸,而是1/2大小,并且backbone用的也不同,目标角度编码方式也不同。

一一说明

网络头采用pointpillar没啥好说的,编码为pesudo image
在这里插入图片描述
之后将pesudo image输入backbone中,这里不同原有的centernet 的DLA34seg,原有的网络的层数很多,执行效率不是很高,试验了多种组合后最终才确定了一个效率和准确度在这之中算是好的。
具体DLA的结构以及上采样部分可查看Centernet:
在这里插入图片描述
最后的neck和head与AFdet中的基本一致:
在这里插入图片描述

不过角度的编码用的是cos与sin来表示目标的角度值,没有用论文中的方法,因为试了这种方式,发现loss很难下降,仔细查明后这种方法一般多用在二维图像转三维目标的角度编码中,应该不太适用于点云的编码。

未完成的东西

代码的大框架用的是:
second-pytorch
SFA3D
没有像pointpillar一样加入随机真值增减的数据增强部分,这部分也不想再加了,如果谁有兴趣可以试试效果。
后期也想过先找heatmap目标再对目标box尺寸用pointnet进一步做调整,不过CVPR21中的论文以及做了,我就没必要再做下去了。

放一下在测试集上的结果:
Car AP(Average Precision)@0.70, 0.70, 0.70:
bbox AP:78.04, 73.71, 66.88
bev AP:79.25, 73.67, 66.84
3d AP:60.75, 55.75, 51.03
Car AP(Average Precision)@0.70, 0.50, 0.50:
bbox AP:78.04, 73.71, 66.88
bev AP:82.64, 77.12, 69.38
3d AP:82.31, 76.68, 69.07
可以看到在BEV上效果还行,3Dbox不太行,所以我后期想加入pointnet再做一次回归,不过现在不用了。。。

不过如果你有兴趣可以在我的基础上继续改进,说不定能改出什么比较好的检测方法。

这篇关于无人驾驶中的激光雷达(四)Pointpillar+CenterNet实现的3D点云目标检测网络的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/824203

相关文章

无人叉车3d激光slam多房间建图定位异常处理方案-墙体画线地图切分方案

墙体画线地图切分方案 针对问题:墙体两侧特征混淆误匹配,导致建图和定位偏差,表现为过门跳变、外月台走歪等 ·解决思路:预期的根治方案IGICP需要较长时间完成上线,先使用切分地图的工程化方案,即墙体两侧切分为不同地图,在某一侧只使用该侧地图进行定位 方案思路 切分原理:切分地图基于关键帧位置,而非点云。 理论基础:光照是直线的,一帧点云必定只能照射到墙的一侧,无法同时照到两侧实践考虑:关

hdu1043(八数码问题,广搜 + hash(实现状态压缩) )

利用康拓展开将一个排列映射成一个自然数,然后就变成了普通的广搜题。 #include<iostream>#include<algorithm>#include<string>#include<stack>#include<queue>#include<map>#include<stdio.h>#include<stdlib.h>#include<ctype.h>#inclu

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

【Prometheus】PromQL向量匹配实现不同标签的向量数据进行运算

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全栈,前后端开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi

让树莓派智能语音助手实现定时提醒功能

最初的时候是想直接在rasa 的chatbot上实现,因为rasa本身是带有remindschedule模块的。不过经过一番折腾后,忽然发现,chatbot上实现的定时,语音助手不一定会有响应。因为,我目前语音助手的代码设置了长时间无应答会结束对话,这样一来,chatbot定时提醒的触发就不会被语音助手获悉。那怎么让语音助手也具有定时提醒功能呢? 我最后选择的方法是用threading.Time

Linux 网络编程 --- 应用层

一、自定义协议和序列化反序列化 代码: 序列化反序列化实现网络版本计算器 二、HTTP协议 1、谈两个简单的预备知识 https://www.baidu.com/ --- 域名 --- 域名解析 --- IP地址 http的端口号为80端口,https的端口号为443 url为统一资源定位符。CSDNhttps://mp.csdn.net/mp_blog/creation/editor

Android实现任意版本设置默认的锁屏壁纸和桌面壁纸(两张壁纸可不一致)

客户有些需求需要设置默认壁纸和锁屏壁纸  在默认情况下 这两个壁纸是相同的  如果需要默认的锁屏壁纸和桌面壁纸不一样 需要额外修改 Android13实现 替换默认桌面壁纸: 将图片文件替换frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.*  (注意不能是bmp格式) 替换默认锁屏壁纸: 将图片资源放入vendo

C#实战|大乐透选号器[6]:实现实时显示已选择的红蓝球数量

哈喽,你好啊,我是雷工。 关于大乐透选号器在前面已经记录了5篇笔记,这是第6篇; 接下来实现实时显示当前选中红球数量,蓝球数量; 以下为练习笔记。 01 效果演示 当选择和取消选择红球或蓝球时,在对应的位置显示实时已选择的红球、蓝球的数量; 02 标签名称 分别设置Label标签名称为:lblRedCount、lblBlueCount

烟火目标检测数据集 7800张 烟火检测 带标注 voc yolo

一个包含7800张带标注图像的数据集,专门用于烟火目标检测,是一个非常有价值的资源,尤其对于那些致力于公共安全、事件管理和烟花表演监控等领域的人士而言。下面是对此数据集的一个详细介绍: 数据集名称:烟火目标检测数据集 数据集规模: 图片数量:7800张类别:主要包含烟火类目标,可能还包括其他相关类别,如烟火发射装置、背景等。格式:图像文件通常为JPEG或PNG格式;标注文件可能为X