- 博客(39)
- 收藏
- 关注
原创 激光点云3D目标检测算法之CenterPoint
是CVPR 2021的论文《》中提出的一个激光点云3D目标检测与跟踪算法框架,与以往算法不同的是,该算法不用边界框而是提出用关键点来表示、检测和跟踪3D目标:在检测流程中,第一阶段先用一个关键点检测器去检测目标的中心点,然后再用中心点特征回归出目标的3D尺寸、朝向和速度等属性,第二阶段再基于该目标额外的点特征去对这些属性进行优化;目标跟踪则被简化为一个简单的最近点匹配过程。提出的3D目标检测与跟踪算法非常简单而高效,在nuScenes和Waymo数据集上都取得了SOTA的性能表现。论文链接代码链接本文将对。
2023-05-19 17:19:38
121
2
原创 CUDA教程-如何用CMake编译CUDA代码
编译CUDA代码可以使用NVCC但是这种方法只适合用来编译只有几个文件的CUDA代码,大规模的工程代码一般都使用CMake工具进行管理。本文介绍2种使用CMake编译CUDA代码的方法。之前写了几篇介绍CUDA编程的文章,后续有时间再继续写。
2023-04-07 17:29:13
245
原创 多目标跟踪算法之DeepSORT
上篇文章介绍了多目标跟踪算法SORT,该算法虽然速度很快,但是也存在ID切换频繁等问题。针对这些问题,作者时隔一年后又在文章《》中提出了DeepSORT算法。与SORT仅仅采用边界框的IOU作为匹配时的距离度量不同的是,DeepSORT采用一种更可靠的距离度量方法,该方法结合了物体的运动和外观信息,其中外观信息是通过一个在大规模行人重识别数据集上离线训练的CNN网络提取的。基于这些改进,DeepSORT提升了跟踪算法的鲁棒性,将ID切换率减少了45%,并同时保持容易部署、高效运行的优点。DeepSORT。
2023-03-31 09:00:00
143
原创 多目标跟踪算法之SORT
SORT是2016年发表的一篇文章《》中提出的一个经典的多目标跟踪算法,该算法结合常用的卡尔曼滤波器和匈牙利匹配算法实现了一个简单的在线多目标跟踪框架。由于其超简单的设计,SORT可以以260 Hz的更新速率实现多目标跟踪,远超当时其它的目标跟踪算法。SORT目标跟踪算法仅使用卡尔曼滤波器和匈牙利算法解决帧与帧之间的状态预测和数据关联问题,跟踪的效果高度依赖于目标检测结果的好坏,算法整体设计非常简单,在速度和精度上取得较好的平衡,主要体现一个“快”字。当然,速度提升必然导致精度损失,SORT。
2023-03-29 08:52:23
161
2
原创 基于最小二乘法的多项式曲线拟合:从原理到c++实现
本文首先介绍两种基于最小二乘法的多项式拟合方法的原理,然后基于`OpenCV`用`c++`编写了这两种拟合方法的代码,最后通过一个完整的示例来展示如何通过一个离散点集拟合出一条多项式曲线。
2023-03-17 08:15:00
432
2
原创 windows11远程连接Ubuntu桌面
在日常开发过程中,很多时候是这样一种情形:一台装了Ubuntu系统的计算机作为远程服务器,开发人员则使用带Windows系统的计算机去连服务器进行开发。连接服务器的方式有很多种,最简单的就是使用ssh登录,这种方式基本上是命令行模式,有的时候还是不太方便。如果想要远程连接Ubuntu桌面直接使用图像界面该怎么操作呢?本文将介绍一种简单的方法。
2023-01-19 15:34:41
5144
12
原创 如何用TensorRT部署YOLOv7
本文将介绍如何用TensorRT的C++接口部署YOLOv7目标检测模型,并在两种显卡上测试了各个模型的性能。
2022-12-07 09:32:37
845
8
原创 如何通过球面投影(Spherical Projection)将点云转换为距离图像(Range Images)
以图文和代码的方式介绍如何通过球面投影(Spherical Projection)将点云转换为距离图像(Range Images)
2022-08-17 10:44:17
1559
15
原创 一文读懂目标检测中的各种IoU损失函数
本文介绍了在目标检测领域常用的几种IoU损失函数。边界框回归是目标检测中的一种主流技术方法,该方法使用矩形边界框去预测目标对象在图像中的位置,旨在细化预测边界框的位置。边界框回归使用预测边界框和真实边界框之间的重叠区域作为损失函数,称为基于交并比的损失函数。......
2022-06-10 21:51:18
938
原创 目标检测中的非极大值抑制(NMS)算法
目标检测中的非极大值一致算法本文首发于微信公众号【DeepDriving】,欢迎关注。导读经典的Anchor-Based目标检测算法(YOLO、SSD、Faster-RCNN)中都包含一个生成候选边界框的过程,出于提高目标检测召回率的目的,通常会生成数量众多的候选边界框,这些候选边界框有不同的长宽比,同时每个候选边界框都会被分配一个置信度分数。在目标检测的后处理阶段,可以先通过阈值过滤掉大部分置信度低于阈值的候选边界框,但是对于同一个目标,还是有可能会有好几个置信度高于阈值的边界框会留下来,这时候
2022-05-21 19:30:56
1088
原创 如何用NumPy读取和保存点云数据
如何用NumPy读取和保存点云数据本文首发于微信公众号【DeepDriving】,欢迎关注。前言最近在学习点云处理的时候用到了Modelnet40数据集,该数据集总共有40个类别,每个样本的点云数据存放在一个TXT文件中,每行的前3个数据代表一个点的xyz坐标。我需要把TXT文件中的每个点读取出来,然后用Open3D进行显示。怎么把数据从TXT文件中读取出来呢?NumPy提供了一个功能非常强大的函数loadtxt可以非常简单地实现这个功能。来看一下代码:import open3d as o3d
2022-05-15 21:34:49
975
原创 [附代码] 如何用HOG+SVM实现手写数字识别
手写数字识别是机器学习和深度学习中一个非常著名的入门级图像识别项目,很多人都是从这个项目开始进入图像识别领域的。虽然现在深度学习在图像识别领域已经风靡一时,取得了令人瞩目的成就,但是不可否认的是经典的机器学习方法依然是不过时并且有用武之地的。本文将带大家用经典的提取HOG特征+SVM分类方法来实现手写数字识别。...
2022-05-13 22:30:32
1017
3
原创 [教程] Ubuntu16.04系统安装Open3D
本文首发于微信公众号【DeepDriving】,欢迎关注。Ubuntu16.04系统安装Open3DOpen3D是Intel开源的一个支持快速开发处理3D数据的软件库,提供C++和Python接口,目前已经应用到越来越多的项目中。本文将介绍如何在Ubuntu16.04系统上安装Open3D。安装过程如果是Ubuntu18.04及以上版本的系统,那么可以直接通过pip命令就可以安装Open3D。在Ubuntu16.04的系统上,虽然可以通过pip命令安装成功,但是运行的时候会报下面的错误:Er.
2022-05-10 21:10:29
2444
原创 如何将进程线程与CPU核进行绑定
如何将进程、线程与CPU核进行绑定CPU绑定指的是在多核CPU的系统中将进程或线程绑定到指定的CPU核上去执行。在Linux中,我们可以利用CPU affinity属性把进程绑定到一个或多个CPU核上。CPU Affinity是进程的一个属性,这个属性指明了进程调度器能够把这个进程调度到哪些CPU上。该属性要求进程在某个指定的CPU上尽量长时间地运行而不被迁移到其他处理器。...
2022-05-08 12:23:39
3287
6
原创 Darknet中的学习率调整策略
由于Darknet框架没有学习率调整策略的相关文档,要想知道具体细节只能通过剖析源代码才能了解每个参数的含义。本文详细介绍了Darknet框架中的学习率调整策略,通过公式和图形的方式阐述每种调整策略各个参数的意义和调整的过程,同时也介绍了添加新的调整策略的方法,希望对本文的读者有所帮助。...
2022-05-08 11:54:11
368
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人