系统环境:Ubuntu 20.04 ROS2版本:Foxy,其中Foxy是LTS长期支持版本,Galactic不是,但是这两者都只能运行在Ubuntu20.04上。 ROS2的安装 先检查是否支持UTF-8,用locale命令 jetson@funnywii-orin:~$ locale LANG=
实现流量统计算法有两个前提: 能够实现目标检测,最基本的前提,必须能够识别到视频帧中的车辆和行人。 能够进行目标跟踪,在检测的基础上,为目标分配一个唯一的ID。流量计数依赖于目标的唯一ID。 目标检测算法以YOLO系列为例。 跟踪算法以ByteTrack跟踪结果为例。将检测结果objects作为By
摘要: 近年来,随着深度学习技术的发展和硬件算力的不断增强,自动驾驶技术越来越多的应用在各种场景。包括视觉感知、激光雷达感知和多传感器融合感知技术在这些年都得到了迅速发展。本文首先回顾了近年来自动驾驶感知技术的相关工作,然后介绍了相关工作所用到的方法和技术。随后整理并介绍了自动驾驶感知所需的数据集和
多目标跟踪(MOT,Multiple Object Tracking)。 评价指标 MOTA MOTA全称Multiple Object Tracking Accuracy,计算公式为: MOTA=1-\cfrac{\sum_{t}(FN_t+FP_t+IDSW_t)}{\sum_{t}GT_t}
多目标跟踪算法 自动驾驶领域中的目标跟踪算法都是多目标跟踪算法,即MOT(Multiple Object Tracking),因为在这种场景中要跟踪的目标往往是多个,也有些文献会把MOT称为MTT(Multiple Target Tracking)。 MOT问题中并不是所有目标都会在第一帧出现,也并
软连接 一般Ubuntu系统中默认有两个Python,一个Python2.7,一个Python3.8。 这个可以在 /usr/bin 目录中找到: (base) jetson@ubuntu:~$ cd /usr/bin/ (base) jetson@ubuntu:/usr/bin$ ls pytho
内存管理 内存分配和释放 CUDA编程模型存在HOST和DEVICE两个异构系统,每个异构系统都有独立的内存空间。 在HOST上,可以使用下面语句分配全局内存: cudaError_t cudaMalloc(void ** devPtr,size_t count) 要注意的是第一个参数,是指针的指针
VideoWriter 类 最近几个项目都需要保存相机图像数据,也就是存成视频。有的要求保存源视频,有的要求保存处理后的视频。 由于图像数据的读取是使用 OpenCV,目标检测框架也是建立在OpenCV的基础上,所以保存图像顺理成章也使用OpenCV。使用 OpenCV 的 VideoWriter
PCIe-GL26 先看看 PCIe-GL26 是个什么设备 本质上是个自带 Jetson Xavier 系统,且带有6路GMSL2接口的图像采集卡。 GMSL2:Gigabit Multimedia Serial Link 2,注意这个和 GIGABYTE 技嘉科技 没啥关系……GMSL翻译一下就
世界坐标系->像素坐标系 转换过程可参见这篇文章:FunnyWii's Zone 机器视觉 - 单目相机入门 ,其中描述了世界坐标系->像素坐标系的转换过程。可以归结为下述公式: 世界坐标系->像素坐标系的过程描述的是单目相机的成像原理。我们在使用单目相机的过程中,更关心的往往是像素坐标系->世界坐
CUDA 内存模型 存储器的类型有两种: 可编程:显式控制哪些数据存放 不可编程:不能决定数据存储位置 在CPU层次结构中,一级缓存(L1 Cache)和二级缓存(L2 Cache)都是不可编程的。可编程的存储器类型包括: 寄存器 共享内存 本地内存 常量内存 纹理内存 全局内存 下图为上面提到的存