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

Archives

2024 / 07

CUDA 内存模型 存储器的类型有两种: 可编程:显式控制哪些数据存放 不可编程:不能决定数据存储位置 在CPU层次结构中,一级缓存(L1 Cache)和二级缓存(L2 Cache)都是不可编程的。可编程的存储器类型包括: 寄存器 共享内存 本地内存 常量内存 纹理内存 全局内存 下图为上面提到的存
今天在 StackOverflow 上看到这么个问题:想把原图像中的一个点 g,通过内参和畸变参数映射到去畸变图像中的点 p,并获取这个点的坐标。 你以为我接下来会说:“xxx和我想的一样,但是我想错了,其实并不是这样....” 现在,我想说的只有“其实并不是这样”,因为我连map1和map2是啥我

2024 / 06

并行归约问题 先解释一下什么是归约(Reduction),归约是将某个计算问题变换为另一个问题的过程。在CUDA运算中,在向量中执行满足交换律和结合律的运算,被称为归约问题。每次迭代计算方式都是相同的(归),从一组多个数据最后得到一个数(约)^[1]^。比如当给定N个数值,求其SUM/MAX/MIN
深度图 深度图 (Depth Image, Depth Map),将图像中的每个像素都编码为相机到场景中某个点的距离,可以提供图像中物体的空间信息。深度图通过坐标转换可以转换为点云数据,organized点云也可以转换为深度图数据。 绝对深度和相对深度 绝对深度:空间中物体和相机间的距离,有量纲。

2024 / 05

主要是依靠 copyTo()方法实现图像的传递。 copyTo 内存分配:当源图像和目标图像 size和 type一致时,不会分配新内存;否则先申请新内存空间再拷贝 目标图像:可以将数据复制到指定的目标图像中,目标图像可以是已经存在的图像或者新图像。 MASK:通过MASK可以指定ROI clone
控制海康球头的3种方法 做了一些调查,目前控制海康相机的方法主要有三种 海康SDK,目前海康提供了多个平台的SDK,包括Windows,X86Linux和ARM Linux(Jetson),见HiKSDK onvif,不过这个库是基于Python2做的,用起来会有些麻烦。 HTTP方式。 树莓派py

2024 / 04

安装JDK Jetpack一般不带JDK,sudo apt install openjdk-11-jdk 装一个。 安装Bazel 针对Mediapipe这个项目,你需要使用的Bazel版本,取决于你下载的Mediapipe版本所使用的Bazel版本(有点绕,高可以,低不行)。 要问CMake能不能
这一部分是CUDA的核心部分,涉及到了硬件和程序的执行模型。 SM 流式多处理器(Stream Multi-processor,SM)是构建整个GPU的核心模块。GPU的硬件并行,是通过复制了多个SM来实现的。一个Block只能在一个SM上被调度。 下图包含了SM的关键组件 CUDA核心 (Core
CUDA编程结构 在GPU上执行的函数称为CUDA核函数(Kernel Function),核函数会被GPU上多个线程执行。典型的CUDA程序遵循如下模式: 把数据从CPU内存(HOST)拷贝至GPU内存(DEVICE) 调用该Kernel函数,对DEVICE中的数据进行操作 将数据从DEVICE传
写在前面(废话,请跳过) 本来自己的脑子里是不存在CUDA编程这个东西的,没错,就是压根儿没听说过。 之所以了解到这个东西,是因为最近开始做AVM (Around View Monitor),或者说SVS (Surrounding View System),利用4个广角相机,实现车辆周围的360°环

2024 / 01

2024-01-29

写在前面 为什么突然急头白脸的要学UDP,这源自领导安排的一个坑爹的活。 懂计网的同事出差了,而我作为部门里仅剩的一个会C++的,被光荣地安排去做RSU和OBU的通信测试,而它们的通信协议,就是UDP。。。可我不会啊,我除了个TCP握手挥手就对各种协议一无所知。 好在供应商自然是有群的,群里自然是有

2023 / 12

读取 .bag文件报错 [FATAL] [1702017430.130428395]: Required op field missing 报错如下: $ rosbag play tsari.bag [ INFO] [1702017430.118011688]: Opening tsari.bag
LIDAR感知任务 使用LIDAR的感知任务可以分为两种: 低层次感知:仅检测障碍物。 高层次感知:对障碍分类,是目标识别。 检测到障碍物后,得到其位置,方向,尺寸等信息,一般用bbox或多边形来描述障碍物。 障碍物检测 Pipeline 如果是多传感器,需要对Lidar的点云 (pc) 做时间同步
激光雷达 LiDAR (Light Detection and Ranging ) ,扫描激光束时照射对象物体,通过测量照射到物体弹回的时间来测定离物体的距离和位置,或确定对象物性质的光传感器技术。 原理 TOF 测距原理大多是飞行时间 TOF(Time of Flight),利用发射器发射的脉冲信

2023 / 11

深度学习方法 车道线检测常用数据集见 FunnyWii's Zone 车道线检测功能综述【传统方法】 基于分割的方法 利用语义分割或实例分割方法来区分图像中的车道线与其他物体或背景。这种方法将车道线检测问题转化为一个像素级分类问题。这种方法会将场景图片的每一个车道线像素都进行分类,判断该像素是否属于
车道线检测技术 车道线检测技术是计算机视觉和自动驾驶领域中的关键技术之一,它能够帮助车辆在道路上准确识别和跟踪车道线,从而实现自动驾驶、车道保持等功能。 车道线检测方法总体上可以分为 传统方法 和 基于深度学习的方法。 车道线数据集 数据集 数量(张) 尺寸 场景 特点 TuSimple 72k 1
关于Docker的基础知识见:FunnyWii's Zone Docker基础知识 硬件设备:天准Orin,基于Nvidia Jetson Orin 系统版本:Ubuntu 20.04 需打包的库:CUDA,OPENCV 值得一提的是,我的设备是ARM架构的。所以要注意一点,使用 Docker 构建

2023 / 10

2023-10-30

Docker基础知识 Docker的优势在于一次创建或配置,便可在任意地方正常运行。使用一个标准镜像构建一套开发容器,在开发完成后,其他人便可使用这个容器来部署代码。 相比传统的虚拟机VM是在硬件层面实现虚拟化,Docker是在操作系统层面实现了虚拟化,直接复制 localhost 的操作系统 Do

2023 / 08

写在前面 现在车上有7个相机,如果想要用OpenCV同时读取这些相机的画面的话,实例化7个 VideoCapture是没有问题的,虽然会涉及到多线程的问题,但是多线程我还不会(ciao,是反废话)。直接实例化多个 VideoCapture未免有些显得技术力过低,因此使用 vector容器来存放读取的
之前自己从未考虑过这个问题,每次在手动编译OpenCV的时候,cmake后面的-D xxx对我来说只是添加了某个支持,但是我并不知道,OpenCV编译也是用CMakeLists...而找到这些依赖是依靠 pkgconfig 工具和*.pc文件。 文章最下方是我在编译OpenCV时使用的cmake命令