编程 [34]
”我要学CUDA编程!“ —— 来自一个废物的自白
写在前面(废话,请跳过) 本来自己的脑子里是不存在 CUDA 编程这个东西的,没错,就是压根儿没听说过。 之所以了解到这个东西,是因为最近开始做 AVM(Around View Monitor),或者说 SVS(Surrounding View System),利用 4 个广角相机,实现车辆周围的
车道线的多项式曲线拟合
离散点平滑 基于优化的离散点平滑 模型检测到的车道线,最终输出的是车道线的点坐标 \textstyle (x,y),这些点能够大致描述车道线在画面中的位置。但如果想要拟合出车道线的高阶方程,可能还是不够平滑,一些离散点会影响拟合的效果。 优化变量:车道线点坐标 \textstyle (x_i,y_i
mmyolo目标检测之边用边学(笨鸟快飞边学边更版)
写在前面 为什么不直接输出一堆内容,主要是因为自己太菜了。上学时的那些深度学习知识,已经差不多都还给老师了,而且工程应用又是另一码事。所以我就一边用 MMYOLO 框架训模型,一边从头学起。 快成炼丹师了,不过对如何调整 hyperparameters 还是一点头绪都没。以下提到的功能使用方式,都可
YOLOv8的训练和C++部署
相比之前的模型,YOLOv8 引入了新的 backbone、新的 Anchor-Free 检测头和新的损失函数,可以在从 CPU 到 GPU 的多种硬件平台上运行。 模型的训练 - Ultralytics 最开始我是使用 Ultralytics 框架训练,因为这个框架非常简单。不过它导出的 bind
OpenCV后续的踩坑实录和解决办法
GLIBCXX_3.4.x not found 解决方案 这个问题通常和 libstdc++ 版本有关。我的情况最开始出现在 Python 版 OpenCV 上,因此可以先尝试重新安装 Python 版 OpenCV: pip install opencv-python
需要注意,pip inst
单目视觉的3D目标方向 - Orientation of 3D Object in Monocular
方向的概念 单目相机的 3D 目标检测,是从 2D 图像中估计目标的 3D BBox,包括位置、尺寸和方向。其中,目标方向估计是很重要的一环。 在单目相机 3D 视觉检测中,需要先理解一组重要概念:Egocentric 自我中心和Allocentric 客体中心。 这两个概念来自空间认知领域。Ego
单目相机的3D目标检测 - 3D Object Detection using Monocular
写在前面 即便 CNN 检测出的 2D bbox 能为目标深度提供一些线索,后续的预测、规划和运动控制仍然需要更完整的 3D 信息,包括目标的位置、尺寸、方向和速度等。更何况,如果能够恢复目标的 3D 信息,对测距精度的提升也会有很大帮助。 激光雷达和深度相机固然精度很高,但是贵。而且在 Lidar
单目相机的测距 - The Distance Estimation of Monocular Camera
正文 在 ADAS 中,测距这项需求一般源于自适应巡航控制(ACC)。ACC 是纵向距离控制,需要能够发现目标,测量相对速度和相对距离,并预测目标的运动轨迹。 对于测距而言,最直接的方法是采用毫米波雷达、激光雷达和双目相机。那为什么还要用单目呢?核心原因还是成本。单目相机便宜、部署简单,但也带来两个
CMakeList.txt 学习笔记
编写 CMakeLists.txt 最常用的功能,就是调用其他 .h 头文件和 .so / .a 库文件,将 .cpp、.c、.cc 文件编译成可执行文件,或者编译成新的库文件。 CMakeLists.txt 内容 set # CMake 最低版本要求
cmake_minimum_required(
ROS入门 - 如何订阅数组型消息
为什么要订阅数组型消息 比如在这个场景下:YOLO 在场景中检测到多个目标,并通过其他算法得到了目标的 ID、class、位置、速度等信息。这些信息会作为避障或局部路径规划的依据。一台自动驾驶汽车或机器人上的其他算法模块也可能需要这些信息,这种时候会用 ROS 来进行通讯。 假设这是需要发布的 ms
ROS入门 - 如何新建功能包 & 如何将现有程序作为功能包加入ROS
写在前面:Ubuntu 20.04 对应 ROS 版本为 Noetic。 新建 ROS 工作空间和功能包 创建新的工作空间 # home目录递归创建工作空间,也可以是任何你想创建ws的地方
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
# 注:std_ms
C++函数的参数列表中 & 和 * 的使用
主要区别是函数中形参的三种传递方式,值传递、指针传递和引用传递。
libstdc++.so.6: version `GLIBCXX_3.4.30' not found 的几个解决思路
写在前面 目前在学习 Paddle。在 conda 环境中使用 pip 安装好支持CUDA12.0的Paddle后,import paddle 时出现** libstdc++.so.6: version `GLIBCXX_3.4.30' not found** 这个问题。 根据网上的资料,Paddl
MATLAB对点云数据(.ply)的处理
前言 有人会好奇,同样是点云,.pcd和 .ply 的处理能有啥大区别吗? 其实是有的,.pcd 文件的数据,是基于点的,也就是里面存储的内容全部都是和点相关的信息。 而 .ply 增加了关于面的信息,也就是有了 mesh。在介绍使用 MeshLab 进行点云表面重建的那篇 文章 中,已经提到过这点