自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(72)
  • 收藏
  • 关注

原创 QNN环境搭建和模型部署

参考链接:https://docs.qualcomm.com/bundle/publicresource/topics/80-63442-50/linux_setup.html?参考链接:https://docs.qualcomm.com/bundle/publicresource/topics/80-63442-50/sample_app.html?新建目录:/home/dunmao/cv/qairt/2.38.0.250901/test_resnet50,将上述文件拷贝到这个目录下。

2025-09-28 11:16:27 176

原创 YOLO学习笔记

要解决的问题:object detection.

2025-09-09 15:24:33 46

原创 YOLOv5车牌及人脸检测

对于CCPD数据集,图像的文件名即为标签,包括矩形检测框左上角、右下角的坐标和车牌4个顶点的坐标等。人脸数据集使用WIDER FACE数据集,train2yolo.py和val2yolo.py用于将数据集转换成YOLO需要的格式。将best.pt转换为ONNX格式的模型,转换后的模型为:runs/train/exp14/weights/best.onnx。重新训练模型,然后进行推理,结果如下图。针对第二个问题,可以在训练时对图像进行增广,需要修改hyp.scratch-low.yaml和train.py。

2025-09-09 11:29:35 95

原创 YOLOv4损失函数代码和注释

【代码】YOLOv4损失函数代码和注释。

2025-09-05 17:37:11 30

原创 CMakeLists.txt 学习笔记

PROJECT_SOURCE_DIR - 工程路径,和 hello_SOURCE_DIR 等价,hello 是 project name。PROJECT_BINARY_DIR - 编译路径,和 hello_BINARY_DIR 等价,hello 是 project name。新建名为 t2 的文件夹,将 t1 中的 main.c 和 CMakeLists.txt 拷贝到 t2 中,目录结构如下。将 t2 的 main.c 拷贝到 t3 的 src 中,目录结构如下。编写第1个CMakeLists.txt。

2025-08-18 16:24:06 404

原创 YOLOv5非极大值抑制函数non_max_suppression详解

YOLOv5非极大值抑制函数non_max_suppression详解

2025-08-05 20:34:20 67

原创 YOLOv5前处理函数 letterbox 详解

输出图像宽 640 高 640,非纯色填充区域宽 640 高 480,顶部灰色填充区域的高度为80,底端灰色填充区域的高度为80。

2025-08-05 11:43:24 225

原创 MNN编译和demo运行

MNN编译和demo运行

2025-08-04 12:16:00 260

原创 立体视觉基本原理

2024-12-20 18:04:35 189

原创 OpenCV圆形标定板检测算法findGrid原理详解

OpenCV圆形标定板检测算法findGrid原理详解。

2024-12-16 15:20:43 565

转载 机器人手眼标定

(机械手臂如何拾取物体)

2024-12-10 16:59:35 253

原创 常用图像变换方法

【代码】常用图像变换方法。

2024-12-03 16:03:59 472 1

原创 OpenCV圆形标定板检测算法findCirclesGrid原理详解

若最长路径是一行,则每次沿上下方向扩充1行(要么在最上面增加1行,要么在最下面增加1行),上下方向由前述“向下的基向量”定义。以扩充行为例,当前网格的首行向上扩充一行得到above,当前网格的尾行向下扩充一行得到below,需要分别计算above、below的置信度,将置信度较大的那一行插入当前网格中(前提是置信度比minGraphConfidence大)。某点正上方的最近点、正下方的最近点、正左方的最近点、正右方的最近点都是该点的邻居,computeRNG函数保存了所有邻居到该点的方向向量。

2024-12-03 14:47:23 1318

原创 YUV 简介及使用

NV12、NV21 的存储格式为 Y 平面,UV 打包一个平面,共两个平面,即:先连续存储 Y,然后连续交叉存储 UV# 不同点在于 UV 的排列顺序,SP 为 Semi-Planar 的缩写# NV12:先是 w。

2024-08-02 17:40:00 194

原创 图像、色彩波和抗混叠

如果图像的高频信息丰富,对图像进行缩小时,缩小后的图像可能会出现混叠现象。所谓的“抗混叠”,就是在缩小图像之前,先对原图进行低通滤波,把高频信息滤掉。如下图所示(图片来源于维基百科。关于混叠现象和抗混叠,详细解释可以参考。

2024-06-27 14:01:31 322

原创 OpenGL-状态机

  A finite state machine is any device or program that remembers its current state and performs ‎actions based on that state.  Here is a visual depiction of a simple state machine. It is a model of a simple on/off switch with two states.  Some observat

2024-05-24 17:39:53 1191

原创 OpenGL学习笔记-Depth testing深度测试

【代码】OpenGL学习笔记-Depth testing深度测试。

2024-05-24 14:50:52 818

原创 yolov5-6.0调测记录

  直接运行yolov5-6.0/detect.py,输出如下:image 1/2 C:\Users\dun\Downloads\yolov5-6.0\data\images\bus.jpg: 640x480 4 persons, 1 bus, Done. (0.216s)image 2/2 C:\Users\dun\Downloads\yolov5-6.0\data\images\zidane.jpg: 384x640 2 persons, 2 ties, Done. (0.166s)Speed:

2024-04-20 19:05:44 627 1

原创 pytorch环境配置踩坑记录

step b:打开C:\Users\用户名这个文件夹,找到名为.condarc的文件,将其内容改成以下内容。step a:如果C:\Users\用户名这个文件夹没有名为.condarc的文件,执行以下命令创建一个。step c:重新执行以下命令。

2024-04-19 21:54:38 1070

原创 线程池学习记录

学习线程池的过程中,收集到了一些不错的资料,记录一下,以备后面查阅。3.学习C-Thread-Pool时,为代码添加了注释。

2024-04-18 11:07:28 116

原创 PyTorch深度学习快速入门教程——代码实践

PyTorch深度学习快速入门教程——代码实践

2024-04-14 16:33:41 136

原创 pytorch Neural Networks学习笔记

(5)卷积层2,滤波器的shape为16×6×5×5,滤波器个数16,通道数6,高5,宽5。卷积层2的输出为16×10×10。(7)池化层,滤波器的大小为2×2,stride为2×2,输出为16×5×5。(2)卷积层1,滤波器的shape为6×1×5×5,滤波器个数6,通道数1,高5,宽5。(4)池化层,滤波器的大小为2×2,stride为2×2,输出为6×14×14。(8)全连接层1,权重的shape为400×120,输出为1×120。(10)全连接层2,权重的shape为120×84,输出为1×84。

2024-04-13 19:39:50 338 1

原创 C++判断点是否在三角形内部

计算向量AB和AP的叉积、向量BC和BP的叉积、向量CA和CP的叉积,如果所有的叉积符号相同,则点在三角形内部。判断点是否在三角形内部。

2024-03-27 10:57:34 629

原创 OpenGL学习笔记-Framebuffers

第2步:When attaching a texture to a framebuffer, all rendering commands will write to the texture as if it was a normal color/depth or stencil buffer. Now, attach a texture to the framebuffer.第5步:unbind the framebuffer.第4步:do some operations.

2024-03-14 16:01:04 26

原创 C++ resize和reserve详解

目录1.resize2.reserve1.resize2.reserve

2024-02-07 15:44:35 604

原创 C++强制类型转换之static_cast

【代码】C++强制类型转换之static_cast。

2024-02-07 11:07:51 666

原创 C++虚函数和多态

目录1.虚函数和多态2.多态的实现原理3.虚析构函数4.纯虚函数和抽象类1.虚函数和多态2.多态的实现原理3.虚析构函数4.纯虚函数和抽象类

2024-02-06 18:05:53 25

原创 C++ 继承和派生

2024-02-06 15:51:18 107

原创 C++友元函数/友元类

(1)在类中用friend关键字去声明函数/类,则这个函数/类就会变成友元函数/友元类;(2)友元函数/友元类的声明位置没有要求,可以在private、protected、public权限区,效果都是一样的;(3)友元函数/友元类是单向的,A在B类中被声明为友元函数/友元类,表示A是B的友元函数/友元类,但B不是A的友元函数/友元类;(4)友元函数/友元类具有和类成员一样的权限,可以访问protected和private权限的成员,但不是类的成员;

2024-02-04 12:59:52 1159

原创 C++构造函数/析构函数/复制构造函数(深拷贝/浅拷贝)

比如上面B在拷贝A时,将A.name的值原封不动拷贝过来,导致B.name指向同一块内存,但是那块内存是A申请的,A在使用时不会考虑B,就可能存在A将内存释放掉但是B不知道,B仍然在使用那块内存,此时就会出错;(2)如何定义拷贝的深和浅:浅拷贝就是把类/结构体的变量原封不动的赋值,不考虑指针变量;(1)当我们对复杂类型(结构体或者类)的对象进行初始化时,如果将对象A赋值给同类型的对象B,此时就涉及深拷贝和浅拷贝的问题;总结:对象拷贝时,对指针变量做处理的是深拷贝,不对指针变量做处理的是浅拷贝;

2024-02-03 23:21:04 1176

原创 C++ this指针/常量成员函数/const/mutable

(1)const关键字在C语言中就有,C++兼容C,所以C中const的用法C++中全都支持;(2)const修饰引用,主要用于函数传参,限制函数内部对实参进行修改;(3)const修饰成员函数(常函数),限制成员函数在内部修改成员变量;

2024-02-02 13:14:19 1103

原创 C++强制类型转换之const_cast

一个简单的例子如下,"const int *p"中的 const 是底层 const ,使用 const_cast 去掉这个底层 const 以后,尽管我们可以通过 q 改变指针指向的变量,但是从运行结果来看,这种通过 q 写值的行为并不合适。(2)只有 const_cast 能改变运算对象的常量属性,使用其它形式的命名强制类型转换、改变运算对象的常量属性、都将引发编译器的错误。(1)const_cast 只能改变运算对象的底层 const,底层 const 和顶层 const 的区别如下图。

2024-01-12 22:11:54 23248 1

原创 数字图像处理常用算法的原理和代码实现详解

本专栏详细地分析了常用图像处理算法的数学原理、实现步骤。配有matlab或C++实现代码,并对代码进行了详细的注释。最后,对算法的效果进行了测试。相信通过这个专栏,你可以对这些算法的原理及实现有深入的理解!如有疑问,欢迎在评论区留言讨论!

2024-01-12 21:44:42 925

原创 OpenGL学习笔记-Blending混合

当OpenGL渲染一个片段时,会根据混合方程对上述两个颜色向量进行加权组合(whenever OpenGL renders a fragment, it combines the current fragment’s color with the fragment color currently in the color buffer),Cresult是加权组合后的结果,将保存到color buffer中,并且会将Cdestination覆盖掉。

2024-01-09 20:37:48 583

原创 OpenGL学习笔记-Hello Window

glViewport函数设置rendering window(又称viewport)的位置和大小(单位为pixel),前2个参数是rendering window的左下角在GLFW’s window(即glfwCreateWindow函数创建的那个window)中的坐标,后2个参数是rendering window的宽高。手动创建宽为256、高为256、通道数为4的纹理图像:每个像素的R分量等于该像素的行index,每个像素的G分量等于该像素的列index,B分量恒等于0,A分量恒等于255。

2023-12-16 16:52:05 59

原创 OpenGL学习资料汇总

出于节省CPU算力的考虑,项目要求在GPU上实现一些原本运行在CPU上的算法,所以开始学习OpenGL。学习过程中,找到了一些很棒的资料。在这里记录一下,分享给有需要的朋友们。强烈推荐两个学习网站:第一个是learnopengl的英文网站(虽然有中文版网站,但个人觉得英文版的描述更准确);第二个是GAMES101课程网站,可以补充一些必要的计算机图形学的知识。配合上代码实践,大家应该都可以快速入门OpenGL!这篇博客会持续更新,我会把后续找到的一些优质资料分享给大家,欢迎关注!

2023-12-07 18:17:19 751

原创 opencv读取视频文件并逐帧保存图像

【代码】opencv读取视频文件并逐帧保存图像。

2023-09-03 10:57:42 557

原创 使用sobel算子计算梯度方向和梯度幅值

【代码】使用sobel算子计算梯度方向和梯度幅值。

2023-08-11 16:52:46 655

原创 opencv填充连通域内部的黑洞

opencv填充连通域内部的黑洞

2023-08-11 16:45:43 423

原创 win64+vs2017+cmake编译opencv3.4.7

win64+vs2017+cmake编译opencv3.4.7

2023-06-29 22:11:06 774

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除