YOLOv8的训练和C++部署
相比之前的模型,YOLOv8 引入了新的 backbone、新的 Anchor-Free 检测头和新的损失函数,可以在从 CPU 到 GPU 的多种硬件平台上运行。 模型的训练 - Ultralytics 最开始我是使用 Ultralytics 框架训练,因为这个框架非常简单。不过它导出的 bind
Jetson - ARM架构下的 torch 和 torchvision 的安装 (支持CUDA)
This post is outdated and may no longer reflect current best practices. 写在前面 ARM 架构下的 torch 安装比较烦人,不是麻烦,而是烦人。 网络上很多教程虽然写着 Jetson 的 torch 安装,但基本都是用 PyP
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++函数的参数列表中 & 和 * 的使用
主要区别是函数中形参的三种传递方式,值传递、指针传递和引用传递。
机器视觉 - 单目相机入门
单目相机成像原理 几个概念 光轴:垂直穿过理想透镜中心的光线 焦点:与光轴平行的光线射入凸透镜时,所有光线会聚在透镜后方一点,该点称为焦点 焦距:镜片中心到焦点在光轴上的距离。入射平行光线(或其延长线)与出射会聚光线(或其延长线,下图中红色虚线)相交,可确定折射主面;该想象平面与光轴的交点即主点 光
PCL入门笔记 - PCL 1.13.0 的安装和配置(Ubuntu 20.04 LTS)
介绍了作者是个傻逼这件事。
同时介绍Ubuntu系统下如何安装PCL和VTK,以及它们的测试方法