算法 [57]

我还在学CUDA编程(四)——内存的层次结构

CUDA 内存模型 存储器的类型有两种: 可编程:显式控制哪些数据存放 不可编程:不能决定数据存储位置 在CPU层次结构中,一级缓存(L1 Cache)和二级缓存(L2 Cache)都是不可编程的。可编程的存储器类型包括: 寄存器 共享内存 本地内存 常量内存 纹理内存 全局内存 下图为上面提到的存

OpenCV 的 remap() 函数中的 map1 和 map2

今天在 StackOverflow 上看到这么个问题:想把原图像中的一个点 g,通过内参和畸变参数映射到去畸变图像中的点 p,并获取这个点的坐标。 你以为我接下来会说:“xxx和我想的一样,但是我想错了,其实并不是这样....” 现在,我想说的只有“其实并不是这样”,因为我连map1和map2是啥我

继续学CUDA编程(三) —— CUDA执行模型(下)

并行归约问题 先解释一下什么是归约(Reduction),归约是将某个计算问题变换为另一个问题的过程。在CUDA运算中,在向量中执行满足交换律和结合律的运算,被称为归约问题。每次迭代计算方式都是相同的(归),从一组多个数据最后得到一个数(约)^[1]^。比如当给定N个数值,求其SUM/MAX/MIN

单目相机的深度图,以及绝对深度和相对深度

深度图 深度图 (Depth Image, Depth Map),将图像中的每个像素都编码为相机到场景中某个点的距离,可以提供图像中物体的空间信息。深度图通过坐标转换可以转换为点云数据,organized点云也可以转换为深度图数据。 绝对深度和相对深度 绝对深度:空间中物体和相机间的距离,有量纲。

同一个窗口显示多个相机图像(多线程方法)

主要是依靠 copyTo()方法实现图像的传递。 copyTo 内存分配:当源图像和目标图像 size和 type一致时,不会分配新内存;否则先申请新内存空间再拷贝 目标图像:可以将数据复制到指定的目标图像中,目标图像可以是已经存在的图像或者新图像。 MASK:通过MASK可以指定ROI clone

使用Python控制海康球头相机运动的方法

控制海康球头的3种方法 做了一些调查,目前控制海康相机的方法主要有三种 海康SDK,目前海康提供了多个平台的SDK,包括Windows,X86Linux和ARM Linux(Jetson),见HiKSDK onvif,不过这个库是基于Python2做的,用起来会有些麻烦。 HTTP方式。 树莓派py

Jetson Orin部署Mediapipe Holistic检测

安装JDK Jetpack一般不带JDK,sudo apt install openjdk-11-jdk 装一个。 安装Bazel 针对Mediapipe这个项目,你需要使用的Bazel版本,取决于你下载的Mediapipe版本所使用的Bazel版本(有点绕,高可以,低不行)。 要问CMake能不能

继续学CUDA编程(三)——CUDA执行模型(上)

这一部分是CUDA的核心部分,涉及到了硬件和程序的执行模型。 SM 流式多处理器(Stream Multi-processor,SM)是构建整个GPU的核心模块。GPU的硬件并行,是通过复制了多个SM来实现的。一个Block只能在一个SM上被调度。 下图包含了SM的关键组件 CUDA核心 (Core

“我还要学CUDA编程!”(二)——CUDA编程模型

CUDA编程结构 在GPU上执行的函数称为CUDA核函数(Kernel Function),核函数会被GPU上多个线程执行。典型的CUDA程序遵循如下模式: 把数据从CPU内存(HOST)拷贝至GPU内存(DEVICE) 调用该Kernel函数,对DEVICE中的数据进行操作 将数据从DEVICE传

”我要学CUDA编程!“ —— 来自一个废物的自白

写在前面(废话,请跳过) 本来自己的脑子里是不存在CUDA编程这个东西的,没错,就是压根儿没听说过。 之所以了解到这个东西,是因为最近开始做AVM (Around View Monitor),或者说SVS (Surrounding View System),利用4个广角相机,实现车辆周围的360°环

车道线的多项式曲线拟合

离散点平滑 基于优化的离散点平滑 模型检测到的车道线,最终的输出的是车道线的点坐标(x,y),这些点能够大概描述车道线在画面中的位置,但是如果想要拟合出车道线的高阶方程,可能还是不够平滑,一些离散点会影响拟合的效果。 优化变量:车道线点坐标(x_i,y_i) 优化目标有三个,分别是平滑度、长度和相对

点云数据处理踩坑进行时

读取 .bag文件报错 [FATAL] [1702017430.130428395]: Required op field missing 报错如下: $ rosbag play tsari.bag [ INFO] [1702017430.118011688]: Opening tsari.bag

车道线检测功能综述【深度学习方法】

深度学习方法 车道线检测常用数据集见 FunnyWii's Zone 车道线检测功能综述【传统方法】 基于分割的方法 利用语义分割或实例分割方法来区分图像中的车道线与其他物体或背景。这种方法将车道线检测问题转化为一个像素级分类问题。这种方法会将场景图片的每一个车道线像素都进行分类,判断该像素是否属于

车道线检测功能综述【传统方法】

车道线检测技术 车道线检测技术是计算机视觉和自动驾驶领域中的关键技术之一,它能够帮助车辆在道路上准确识别和跟踪车道线,从而实现自动驾驶、车道保持等功能。 车道线检测方法总体上可以分为 传统方法 和 基于深度学习的方法。 车道线数据集 数据集 数量(张) 尺寸 场景 特点 TuSimple 72k 1

mmyolo目标检测之边用边学(笨鸟快飞边学边更版)

写在前面 为什么不直接输出一堆内容,主要是因为自己太菜了,上学时的那些深度学习知识,已经差不多都还给老师了,而且工程应用又是另一码事。所以我就一边用mmyolo框架训模型,一边从头学起。。。 快成炼丹师了,不过对如何调整hyperparameters一点头绪都没。以下提到的功能的使用,都可以在mmy

YOLOv8的训练和C++部署

写在前面 YOLOv8 是 Ultralytics 公司在 2023 年 1月 10 号开源的 YOLOv5 的下一个重大更新版本,目前支持目标检测,目标分割,物体分类和姿态估计。 很多YOLO介绍blog会附上下面的结构图,虽然99%的人不会去看,而且我也是那99%的其中一员,不过为显专业(啊这该

Jetson - ARM架构下的 torch 和 torchvision 的安装 (支持CUDA)

写在前面 ARM架构下的 torch 安装比较烦人,不是麻烦,而是烦人。 网络上大部分教程虽然写着“Jetson的torch安装”,不过基本都是用官方stable的whl安装,这些安装本身没有什么问题,但是官方ARM架构的torch并不支持 CUDA,torchvision 亦如是。 这个方法也并不

单目视觉的3D目标方向估计 - Orientation Estimation of 3D Object in Monocular

方向的概念 单目相机的3D目标检测是在2D目标检测的基础上绘制出3D BBox任务,目标方向的估计是其中重要一环。 在单目相机3D视觉检测中,要理解一个重要概念:即Egocentric 自我中心和Allocentric 客体中心间的区别。这两个概念来自空间认知领域,Egocentric Frame

单目相机的3D目标检测 - 3D Object Detection using Monocular

写在前面 即便是完全依靠着CNN检测出的2D bbox可以估计目标的深度,但是后续的预测,规划和运动控制,都需要物体的3D信息。更何况,如果能恢复目标的3D信息,对测距精度的提高也有很大的帮助。 激光雷达和深度相机固然精度很高,但是贵。而且在Lidar和Depth Cam的基础上加入RGB单目相机可

单目相机的测距 - The Distance Estimation of Monocular Camera

写在前面 单目相机测距是怎么回事呢?单目相机相信大家都很熟悉,但是测距是怎么回事呢?下面就让小编带大家一起了解吧。 单目相机测距,其实就是测距了。那么单目相机为什么会测距,相信大家都很好奇是怎么回事。大家可能会感到很惊讶,单目相机怎么会测距呢?但事实就是这样,小编也感到非常惊讶。那么这就是关于单目相