- 博客(280)
- 资源 (3)
- 收藏
- 关注

原创 海康威视工业相机SDK二次开发(VS+Opencv+QT+海康SDK+C++)(二)
本文接上次的博客海康威视工业相机SDK二次开发(VS+Opencv+QT+海康SDK+C++)(一),上个博客中并未用到QT,本文介绍项目内容及源码,供大家参考。由于我的项目中是用海康相机作为拍照的一个中介,重点是在目标识别方向,请阅读源码时自动忽略。如果对目标识别感兴趣,可以参考我的YOLO系列https://blog.csdn.net/qq_45445740/category_9794819.html目录1.说明1.1 环境配置1.2 背景说明2.源码MvCamera.hmythread.
2021-02-28 11:47:47
25019
924

原创 海康威视工业相机SDK二次开发(VS+Opencv+QT+海康SDK+C++)(一)
最近在做一个项目,涉及到工业相机,需要对其进行二次开发。相机方面选择了海康威视,网上关于海康威视工业相机SDK的开发资料很少,自己也摸索了一段时间,请教大佬,终于有了些收获,记录下来,方面以后查阅。目录1.说明1.1软硬件相关配置1.1.1硬件选择1.1.2软件选择1.2关于安防相机与工业相机1.说明1.1软硬件相关配置1.1.1硬件选择工业相机我选择的是海康威视的,具体的参数如下:工业相机资料:https://c109334.hi1718.com/news/201831317343619.
2020-11-10 14:01:55
34696
64

原创 《Python神经网络编程》自己动手编写一个神经网络
最近在看一些经典论文,想要动手复现其中的代码,无奈自己水平过于低,总感觉对于神经网络的理解不够深入,于是想补一下相关的知识。便找到了《Python神经网络编程》这本书,若稍微有些基础看起来很快,看完之后给我的感觉是对于神经网络的基本知识、神经网络背后的核心思想有了更深的理解,及时记录下来,方便自己学习。首先附上这本书的PDF与相关资源链接:https://pan.baidu.com/s/1lcVimFBDDCYGTIi6xzxV_g提取码:oiv7...
2020-06-15 17:57:48
12117
14
原创 YOLOv8中添加SENet注意力机制
注意力机制(AttentionMechanism)是深度学习中的一种方法,在图像处理领域,尤其是在卷积神经网络(CNN)和视觉Transformer等架构中。图像数据具有局部相关性,注意力机制可以帮助模型聚焦于图像中更重要的区域,从而提升处理效果。Network)是一种用于提高卷积神经网络(CNN)性能的结构,通过引入注意力机制,使得网络能够自适应地重新标定各个通道的重要性。
2025-07-19 22:32:18
44
原创 yolov8seg如何获取每个结果的mask,不是一整个的mask
使用rk3588开发板对yolov8-seg进行推理时,瑞芯微官方代码中对推理的结果进行了封装,返回的分割结果是所有目标的mask,而不是单个目标的mask。
2025-07-06 15:09:55
36
原创 关于cv::solvePnP算法的理解
这里我们将solvePnP算法应用于aruco标记的位姿估计中,实际我们使用的是2D工业相机,拍摄了多组标记如Charuco或者ArucoBoard,这些标记都是已知实际物理尺寸的,所以标记上的每个aruco相对于标记原点即物体坐标系的3D坐标都是已知的,记为;根据拍摄的图像通过模板匹配或角点检测算法都可以已知图像中每个aruco的像素坐标。最终我们需要求得的是相机的外参,即标记相对于相机坐标系的位姿关系,记为。1.刚体变换:这里假设是已知的,将标记中每个aruco的位姿从基于物体坐标系。
2025-06-14 22:23:49
1342
1
原创 面试问题总结——关于C++(四)
在 C++ 中,析构函数通常应该是虚函数,特别是在基类中。如果一个类有虚函数,并且希望派生类能够正确地析构,那么基类的析构函数应该被声明为虚函数。如果基类的析构函数是虚拟的,当通过基类指针删除派生类对象时,派生类的析构函数将被调用,确保派生类的资源得到释放。在构造函数执行时,类的派生部分还没有被完全构造,因此无法调用派生类的虚函数。如果在构造函数中声明虚函数,编译器会忽略它,而调用的是基类的构造函数版本。虽然C++允许在类中定义虚函数,但构造函数的设计与虚函数有所不同。C++主要有3种智能指针(位于。
2025-06-14 22:05:40
362
原创 【职场生存必修课】50个关键场景应对指南:面试、沟通、晋升、心态调整全涵盖
1.靠谱的交付能力2.快速学习的能力3.共情的沟通能力4.心态调节能力切记:一定要先找+1领导进行沟通,表明自己是在意的,说下自己的想法并且让领导给出些意见。1.站在公司角度考虑问题,思考战略,与公司大方向有关,否则难以展现价值技术同学:可以写我们推进和完成了这么一个工作,支撑了公司今年在这个新业务上创造了多少的产值和产能,为公司带来的整体收益是2000多万,从技术角度支撑来讲,占比30%。
2025-06-04 15:42:13
204
原创 关于面试找工作的总结(四)
HR您好,不好意思打扰您,我是之前应聘XX岗位的XXX,之前很荣幸收到贵司的offer,但当时由于距离问题拒绝了贵司的offer,随后我经过慎重的考虑,觉得贵司的岗位、企业文化、发展前景都与我的职业规划很匹配,经过仔细考虑我还是希望可以加入贵司,距离的问题我已解决,请问这个岗位现在还在招聘吗?
2025-06-04 14:30:17
122
原创 手眼标定:九点标定、十二点标定、OpenCV 手眼标定
因为一直使用6轴协作机器人,且主要应用是三维视觉,平常的手眼标定基本都是基于OpenCV来计算的,听说有九点标定和十二点标定,顺便了解下。
2025-05-25 22:50:54
2488
原创 面经总目录——持续更新中
本面经总结了校招时我面试各个公司的面试题目,每场面试后我都及时进行了总结,同时后期补充扩展了同类型的相近面试题,校招时从两个方向进行投递,和(C++方向),所以我都整理了两个岗位的相关面试题,大家可以根据需要所取。面经目前包含:C++语言面试题、Python语言面试题、Qt、YOLO算法、OpenCV、K-means、Dropout、BN、NMS、IOU、数据增强、模型优化、计算机网络和通讯协议相关面试题、CV基础等等,同时还包含中一些常见的面试题。
2025-05-20 20:47:10
908
原创 【ArUco boards】标定板检测
ArUco板是一组标记,其作用类似于单个标记,因为它为相机提供了一个单一的姿势。最受欢迎的板是所有标记都在同一平面上的板,因为它很容易打印:然而,棋盘不限于这种排列方式,并且可以表示任何二维或三维布局。一个板和一组独立标记的区别在于,板中标记之间的相对位置是先验已知的。这使得所有标记的角点都可以用来估计相机相对于整个板的姿态。当你使用一组独立的标记时,你可以单独估计每个标记的姿态,因为你不知道环境中标记的相对位置。1.姿态估计更加通用。只需要一些标记就可以进行姿态估计。
2025-05-05 22:16:56
1228
原创 Windows11中卸载CUDA并安装新的版本
2.找到环境变量和系统变量的path,点击编辑,若发现path中没有含CUDA的环境变量,证明刚刚第一步卸载CUDA的时候系统已经自动删除,若系统没有自动删除(path中仍然含有。因为上面看了当前显卡驱动版本最高支持到CUDA 12.7,这里选择安装CUDA 12.5.1版本。下载好exe文件之后,双击直接按照安装提示一步步安装即可。测试CUDA是否安装成功,重新打开命令行,切换到。这样含有CUDA的路径),则需要手动删除。文件夹,删除该文件夹即可。验证CUDA是否安装成功。测试程序,看结果是否为“
2025-05-05 07:45:00
1549
原创 机械臂只有位置信息是否可以进行手眼标定?
平常我在做手眼标定时,一般都是通过OpenCV的cv::calibrateHandEye函数进行求解,需要输入多组不同的机械臂位姿。今天遇到了一款舵机机器人,只能获取位置,得不到姿态信息,想着那就把姿态都设为0,结果求不出来。。。
2025-04-12 22:30:25
844
4
原创 Ubuntu22.04——YOLOv8模型训练到RK3588设备部署和推理
PS:由于部署系统为瑞芯微开发板,因此需要下载瑞芯微修改后的yolov8源码(只修改了export.py导出部分,训练用yolov8的源码也没问题),且版本与训练PT模型时的ultralytics版本最好一致或高于训练版本(我训练时用的是v8.2.0版本,瑞芯微官网我看是v8.2.71,后续可以直接用瑞芯微官网提供的yolov8源码进行训练)。打开yolo的源码仓库,进去之后会发现不管是什么版本,所有的Tags都是8.x.x,无法分清是yolov8还是yolo11。尝试删除构建目录中的CMake缓存文件。
2025-04-07 09:16:11
846
原创 YOLOv8——模型训练后生成的文件和图表分析
在YOLOv8模型进行训练之后,会在/runs目录下生成训练结果,其中会生成相应的权重文件、图表、图像等。
2025-04-06 16:58:15
1751
原创 YOLOv8-seg部署RK3588报错:Failed to call RockChipRga interface
rk3588开发板部署yolov8-seg模型报错:Failed to call RockChipRga interface, please use ‘dmesg’ command to view driver error log.
2025-04-06 10:34:48
1201
4
原创 Ubuntu22.04系统安装Anaconda、CUDA和CUDNN
之前一直在Windows系统下使用Anaconda和CUDA加速,最近需要复现一个算法,文档里面有Linux系统conda构建环境的教程。本篇博文参考,记录自己安装的过程,便于以后需要。
2025-02-24 00:13:57
6328
3
原创 解决:Conda虚拟环境中未设置CUDA_HOME的问题
背景:我是Ubuntu22.04系统,最近在复现FoundationPose算法,按照README构建部署环境时,有一步一直卡住,看了下是未找到CUDA_HOME这个环境变量。网上搜了下这个错误,需要设置CUDA_HOME的环境变量路径,一般是在路径下。
2025-02-23 15:29:41
4508
原创 ARM系统源码编译OpenCV 4.10.0(包含opencv_contrib)
因项目部署在ARM系统上,需要编译一个arm版本的opencv-4.10.0(带opencv_contrib)版本。
2025-02-15 17:51:44
450
原创 Ubuntu22.04系统安装使用Docker
Docker 用于自动化应用程序的部署、扩展和管理。它通过容器化技术让应用能够在不同环境之间一致地运行,避免了传统部署方式中因不同系统配置导致的问题。
2025-02-15 11:36:24
6152
3
原创 Gitlab中如何进行仓库迁移
需求:之前有一个自己维护的新仓库A,现在需要将这个仓库提交并覆盖另一个旧的仓库B,需要保留A中所有的commit信息。
2025-02-08 15:00:00
1966
原创 对海康威视工业相机进行取图
@brief 采用超时机制获取一帧图片,SDK内部等待直到有数据时返回* @param handle [IN] 设备句柄* @param pData [IN][OUT] 图像数据接收指针* @param nDataSize [IN] 接收缓存大小* @param pstFrameInfo [IN][OUT] 图像信息结构体* @param nMsec [IN] 等待超时时间* @return 成功,返回MV_OK;失败,返回错误码。
2025-01-27 10:49:21
763
原创 C++内存泄露排查
内存泄漏是指程序动态分配的内存未能及时释放,导致系统内存逐渐耗尽,最终可能造成程序崩溃或性能下降。在C++中,内存泄漏通常发生在使用new或malloc等分配内存的操作时,但没有正确地使用delete或free来释放这块内存。在日常开发过程中,为了避免内存泄露,一般都用智能指针去自动管理内存,避免忘记释放。
2025-01-13 23:14:24
1692
原创 YOLOv5对象检测-从训练到量化部署
YOLOv5是历史上第一个Pytorch版本,之前的V1—V4都是C++的Darknet版本各模型介绍一般想要速度快就选择YOLOv5s,精度高选择YOLOv5l,YOLOv5x性价比不高,参数多了很多,速度也慢了很多但精度提升的不明显。Backbone (骨干网络)Backbone 负责提取图像的基本特征。在 YOLOv5 中,使用了一种基于 CSPDarknet(Cross Stage Partial Darknet)的主干网络,它是一种改进的卷积神经网络,用于提高网络的学习效率并减少冗余计算。
2024-12-29 12:10:06
238
原创 Intel RealSense D435 / D405使用和发布相机的ROS2话题
Linux系统intelRealSense相机SDK开发C++IntelRealSense-D405深度信息单位:0.1mm。IntelRealSense-D435深度信息单位:1mm。
2024-12-29 11:46:26
2560
4
原创 3D视觉坐标变换(位置和姿态)(像素坐标转换得到基于相机坐标系的坐标)
在图像处理中,我们经常得到目标的坐标是像素坐标,需要将其转换到相机坐标系下的实际物理坐标。使用场景:根据深度学习模型,已经完成了目标检测,使用3D相机,得到目标在图像中的像素坐标和深度信息,需要将。
2024-12-24 20:56:52
895
原创 ROS2中通过launch读取.yaml配置文件启动节点
环境:Ubuntu22.04,ROS2-humble通过修改.yaml配置文件中的参数,可以不用重新编译源代码进行软件调试。
2024-12-24 20:38:18
1350
转载 CMake入门教程
CMake 允许开发者指定整个工程的编译流程,在根据编译平台,自动生成本地化的Makefile和工程文件,最后用户只需make蓝色虚线表示使用makefile构建项目的过程红色实线表示使用cmake构建项目的过程CMake优点:①跨平台②能够管理大型项目③简化编译构建过程和编译过程④可扩展:可以为 cmake 编写特定功能的模块,扩充 cmake 功能。
2024-12-24 15:19:19
226
原创 Ubuntu22.04系统下MVS运行海康威视工业相机
之前的开发环境是Ubuntu16.04,最近因项目需求换到了Ubuntu22.04系统,安装了ROS2-humble,重新记录下开发过程。
2024-12-17 23:43:20
3147
2
原创 C/C++多线程和线程同步
线程是轻量级的进程(LWP:light weight process),在Linux环境下线程的本质仍是进程。在计算机上运行的程序是一组指令及指令参数的组合,指令按照既定的逻辑控制计算机运行。操作系统会以进程为单位,分配系统资源,可以这样理解,进程是资源分配的最小单位,线程是操作系统调度执行的最小单位。
2024-12-15 23:00:17
1203
原创 ROS2-humble中指定OpenCV版本进行开发
本地是Ubuntu22.04系统,安装了ROS2-humble,看了下humble自带的OpenCV版本4.5.4,由于DNN模块读取.onnx格式的模型要用OpenCV4.7及以上的版本,于是编译了4.10.0的OpenCV,但开发ROS2节点时,虽然CMake中已经指定了OpenCV的依赖路径,但还是会依赖系统中自带的OpenCV版本。
2024-12-15 16:51:46
1010
原创 【ChArUco Marker】标定板检测
ArUco标记和板非常有用,因为它们检测速度快且用途广泛。然而,ArUco标记的一个问题是,即使在应用亚像素精炼之后,其角位置的准确性也不是很高。相反,棋盘格图案的角点可以更准确地精炼,因为每个角点都被两个黑色方块包围。然而,寻找棋盘格图案不如寻找ArUco板那么通用:它必须完全可见,且不允许有遮挡。ChArUco试图结合这两种方法的优点:ArUco部分用于插值棋盘角的位置,因此它具有标记板的多功能性,因为它允许遮挡或部分视图。此外,由于插值的角属于棋盘,因此在亚像素精度方面非常准确。
2024-12-10 19:20:00
1898
Linux实时内核5.15.137
2024-01-27
turbovnc-3.0.3-amd64.deb virtualgl-3.1-amd64.deb
2023-04-21
ubuntu16.04源码编译wireshark2.6.10
2022-06-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人