- 博客(28)
- 收藏
- 关注
原创 三维重建一: 相机几何
这是它最大的特点。如果上图中Zo=1,会如何呢?我们看到Zo=1,意味着S' = 2f,这时候小孔相机放大倍率为1, 于是投影关系就变成了所谓的。
2025-07-18 09:57:43
104
原创 【cv学习笔记】YOLO系列笔记
本文系统梳理了YOLO系列目标检测算法的发展脉络及核心改进点。从YOLOv5到最新提出的YOLOv12,算法在模型架构、训练策略和推理优化等方面持续创新。关键改进包括:YOLOv5引入Mosaic数据增强、自适应锚框和CIOU损失;YOLOv6采用Anchor-Free和SimOTA匹配策略;YOLOv8使用Task-AlignedAssigner和DFL损失;YOLOv9提出可编程梯度信息;YOLOv10实现无NMS推理;YOLOv11引入C3k2和C2PSA机制。这些创新使YOLO系列在保持实时性的同时
2025-06-12 15:23:39
699
原创 【点云学习笔记一】三维点云深度学习算法综述
点云是某个坐标系下的点的数据集。点包含了丰富的信息,包括三维坐标X,Y,Z、颜色、分类值、强度值、时间等等。点云是在同一空间参考系下表达目标空间分布和目标表面特性的海量点集合。在获取物体表面每个采样点的空间坐标后,得到的是一个点的集合,称之为“点云”(Point Cloud)。
2025-06-09 09:14:56
1199
原创 【NLP中向量化方式】序号化,亚编码,词袋法等
将单词按照词典排序,给定从0或者1或者2开始的序号即可,一般情况有几 个特征的单词: PAD表示填充字符,UNK表示未知字符在这个例子中,我们可以看到我们分别将3个文本分为了4个token,每个token用左侧的词典表示(词典可自定义)
2025-06-06 15:59:42
1222
原创 【相机基础知识与物体检测】更新中
相机是机器视觉的核心组件,其成像质量直接影响视觉算法效果。相机可分为2D相机(CCD/CMOS)和3D相机(TOF/双目/结构光/激光扫描仪)。2D相机通过传感器(CCD顺序读出,CMOS随机读取)和Bayer滤镜生成彩色图像;3D相机则通过不同原理获取深度信息。小孔成像模型是相机标定的理论基础,涉及世界坐标系到像素坐标系的转换。实际应用中,透镜会导致径向和切向畸变,需通过标定获取内参矩阵和畸变参数进行校正。相机标定是确保测量精度的关键步骤,为后续视觉处理提供准确数据基础。
2025-06-03 11:16:19
988
原创 【Python NLP】NLP中经典结构和模型(更新中)
在NLP中,Embedding技术(如Word2Vec)将单词或短语映射为向量,使得语义上相似的单词在向量空间中位置相近。词嵌入是一种将单词转换为数值向量的技术,通过捕捉单词间的语义和句法关系,为自然语言处理任务提供有效特征表示,广泛应用于文本分类、机器翻译等领域,有效提升了模型的性能。和自然语言处理的上下文中,我们更倾向于将其理解为一种 “向量化” 或 “向量表示” 的技术,这有助于更准确地描述其在这些领域中的应用和作用。,在映射到高维特征空间后,相似的物体在空间中会聚集在一起,而不同的物体会被分隔开。
2025-05-26 16:12:21
930
原创 【点云学习笔记】 Pointnet++ 结构理解和代码理解
PointNet++的网络大体是encoder-decoder结构encoder为降采样过程,通过多个set abstraction结构实现多层次的降采样,得到不同规模的point-wise feature,最后一个set abstraction输出可以认为是global feature。其中set abstraction由sampling,grouping,pointnet三个模块构成。decoder根据分类和分割应用,又有所不同。分类任务decoder比较简单,不介绍了。
2025-05-26 15:47:25
662
原创 [Python 深度学习] Transformer结构理解和代码
Transformer 与 RNN 不同,可以比较好地并行训练。Transformer 本身是不能利用单词的顺序信息的,因此需要在输入中添加位置 Embedding,否则 Transformer 就是一个词袋模型了。Transformer 的重点是 Self-Attention 结构,其中用到的Q, K, V矩阵通过输出进行线性变换得到。
2025-05-26 14:26:44
826
原创 【c++ 图像处理】opencv bgr2rgb mean std 方法速度对比
本文对比了多种图像处理方法的性能,包括使用OpenCV的cv::cvtColor、cv::Mat::at、cv::MatIterator_、cv::Mat.data以及指针操作。测试结果显示,cv::cvtColor耗时最长(148.605ms),而指针操作和cv::Mat.data方法效率最高,分别耗时8.803ms和7.639ms。在包含归一化和通道转换的测试中,指针操作依然表现最佳,仅耗时0.938ms。代码展示了不同方法的具体实现,包括颜色空间转换、归一化处理等。总体而言,直接操作数据指针在处理速度
2025-05-12 16:08:02
237
原创 【c++ 日志打印 可复用】 日志打印方式代码不同颜色代码
该头文件 utils.hpp 定义了一个简单的日志打印工具,支持不同级别的日志输出,并带有颜色标识。通过宏定义 LOG、LOGV 和 LOGE,可以方便地输出信息、详细信息和错误日志。日志级别通过 Level 枚举类型区分,日志函数 __log_info 根据级别为日志信息添加不同的颜色前缀,并格式化输出到标准输出。使用示例展示了如何调用这些宏来输出不同类型的日志信息。该工具适用于需要简单日志功能的 C++ 项目。
2025-05-09 14:16:34
225
转载 【c++ cuda TensorRt】trtexec 参数介绍
使用隐式批处理时,引擎的最大批处理大小(如果未指定)设置为推理批处理大小;使用显式批处理时,如果仅指定形状用于推理,它们也将在构建配置文件中用作 min/opt/max;如果只为构建指定了形状,则 opt 形状也将用于推理;如果两者都被指定,它们必须是兼容的;如果启用了显式批处理但都未指定,则模型必须为所有输入提供完整的静态维度,包括批处理大小。
2025-05-08 16:03:43
62
原创 【c++ cuda】CUDA中的grid和block
1. 第一个CUDA程序1. 第一个CUDA程序目录结构:├── srcmain.cu 文件Makefile 文件终端运行 make run 命令,会输出16个hello.2.CUDA中的grid和block一般来说:•一个kernel对应一个grid•一个grid可以有多个block,一维~三维•一个block可以有多个thread,一维~三维。
2025-04-27 15:00:17
1207
原创 【c++ cuda】CUDA 部署 笔记1 基础概念和环境搭建
•把没有数据依赖的代码分配到各个core各自执行 (schedule, 调度)•把一个大的loop循环给分割成多个小代码,分配到各个core执行(loop•在一个指令彻底执行完以前,如果已经得到了想要得到的数据,可以提前执行下一个指令(pipeling, 流水线)•我们管这一系列的行为,称作parallelization (并行化)。我们得到的可以充分利用多核多线程的程序叫做parallelized program(并行程序)
2025-04-26 14:25:12
686
原创 【Python K-means学习】机器学习 K-means
K-means 聚类是一种常用的基于距离的聚类算法,旨在将数据集划分为个簇。算法的目标是最小化簇内的点到簇中心的距离总和。
2025-04-25 14:16:43
504
原创 【c++ 安装opencv 库】opencv linux 安装
DCMAKE_INSTALL_PREFIX=~/lib/opencv4.9.0_install : 指定安装目录,否则默认安装到系统目录:/usr/lib,usr/include,这里是多版本共存的关键,指定一个自定义的目录(最好别是系统目录),比如我就在~/lib/opencv4.9.0_install中。-GNinja : 指定生成用Ninja来构建的项目,默认是-GUnix(用make构建)选择Sources 下载安装包。
2025-02-11 15:39:52
319
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人