FunnyWii's Zone 时日曷丧,与汝偕亡

Archives

2025 / 01

1C++ STL 容器是使用频率超高的基础设施,只有了解各个容器的底层原理,才能得心应手地用好不同的容器,做到用最合适的容器干最合适的事情[1]。看了文章[1],可惜其中对容器方法的底层几乎没有提及,那就自己边查边写吧。本文大部分内容来自cplusplus.com/reference/ 。 C++

2024 / 12

最近一个项目需要用到x86控制器+GMSL相机的组合,这种情况一般会用一张图像采集卡来获取GMSL相机的图像,也就是PCIe-GL26设备将GMSL相机图像发送至HOST端 - FunnyWii's Zone 中使用的方案,但是其成本会很高,于是采购了一个GMSL转USB的转换器。官方也提供了工具的
卡尔曼滤波是一种高效的递归(自回归)滤波器。能够从一系列的不完全及包含噪声的测量中,估计动态系统的状态。卡尔曼滤波会根据各测量值在不同时间下的值,考虑各时间下的联合分布,再产生对未知变量的估计,因此会比只以单一测量值为基础的估计方式要准^{[1]}。 卡尔曼滤波示例 示例1^{[2]} 简单来说,卡

2024 / 11

2024-11-27

.... 老师教的差不多全还回去了。 向量 向量点积 点积(Dot product)也叫标量积(Scalar product)。在Euclidean空间也称内积(Inner product)。对应元素相乘后相加,结果是一个标量,也就是一个数。 对于向量\vec {a} = (a_1, a_2), \

2024-11-26

Transformer在谷歌2017年的论文 [1706.03762] Attention Is All You Need 中首次被提出,主要用于NLP(Natuarl Language Processing,自然语言处理)的各项任务。 后来在CV领域,研究者们基于Transformer架构开展了一
前言 单目相机的目标距离估计本身就已经充满了挑战,那么目标的(相对)速度估计也必然是十分困难... 目前单目相机的相对速度估计算法可以分成两类:传统方法和深度学习方法。没错,什么任务都可以深度学习。 传统方法中,最经典的是Mobileye在2003年的一篇论文中提出的算法。这个算法包含目标距离和速度
系统:Ubuntu20.04 平台:Jetson Orin NX ROS:ROS2 Foxy OpenCV:4.5.4 with CUDA 问题源自编译时警告: /usr/bin/ld: warning: libopencv_imgcodecs.so.4.2, needed by /opt/ros/

2024 / 10

ROS2的编译 colcon 是 ROS2 编译的工具。ROS2 的工作空间与 ROS1 保持一样的目录结构: <workspace> ├── build # 编译时自动生成,包含编译的中间文件 ├── install # 编译时自动生成,包含编译的结果:可执行文件,库文件,
系统环境: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

2024 / 09

摘要: 近年来,随着深度学习技术的发展和硬件算力的不断增强,自动驾驶技术越来越多的应用在各种场景。包括视觉感知、激光雷达感知和多传感器融合感知技术在这些年都得到了迅速发展。本文首先回顾了近年来自动驾驶感知技术的相关工作,然后介绍了相关工作所用到的方法和技术。随后整理并介绍了自动驾驶感知所需的数据集和
多目标跟踪(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}

2024 / 08

多目标跟踪算法 自动驾驶领域中的目标跟踪算法都是多目标跟踪算法,即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翻译一下就

2024 / 07

卸载原有显卡驱动(如果有) 如果当前系统存在显卡驱动,直接安装新的显卡驱动可能会报错。建议先卸载掉旧的。 #先查看驱动以及版本安装情况 ls /usr/src | grep nvidia #进入安装目录,用驱动自带卸载命令卸载 cd /usr/bin ls nvidia-\* sudo nv
记录自己常用的软件和环境在新Ubuntu系统下的配置。 系统环境:Ubuntu 20.04 LTS 系统架构:x86_64 软件安装 Clash 迷信上网必备。 首先下载软件 (作者已跑路) https://github.com/Dreamacro/clash/releases ,我下载的是 cla
世界坐标系->像素坐标系 转换过程可参见这篇文章:FunnyWii's Zone 机器视觉 - 单目相机入门 ,其中描述了世界坐标系->像素坐标系的转换过程。可以归结为下述公式: 世界坐标系->像素坐标系的过程描述的是单目相机的成像原理。我们在使用单目相机的过程中,更关心的往往是像素坐标系->世界坐