自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 VLM—Transformer

这个公式承担了自注意力机制中最关键的权重分配任务,分为两步执行,每一步都有明确的数学和工程意义。举例例如 C E F是三个四条信息的输入端 3x4 那么。Wq要求假设是输出2的那就结果是3x2的。Wk要求假设是输出2的那就结果是3x2的。Wq要求假设是输出4的那就结果是3x4的。,对于整句话每一个单词对不同维度的影响。但是3就是输入的词条。

2026-01-09 11:41:30 268

原创 CNNMNIST

通常指out_channels的输出通道数是16,就意味着要有16个卷积和。

2026-01-09 09:53:33 434

原创 VLM_一维离散卷积与二维离散卷积(还是复习感觉还行)

然后再乘以 1/9(本质上就是 “邻域和 ÷ 9”),得到的结果就是滤波后该位置的像素值。是 OpenCV 封装好的。首先是简单的一维离散卷积。均值滤波的计算就是:先把。

2026-01-08 17:36:03 119

原创 MNIST

【代码】MNIST。

2026-01-08 15:41:22 75

原创 pycharm操作

建立隔离的文件夹。

2026-01-08 14:58:38 226

原创 VLM多模态大数据开发—感知器与MLP基础(我感觉还行主要复习)

感知器:最简单的人工神经网络单元,模拟生物神经元的工作方式,是所有复杂神经网络(包括 VLM、YOLO)的底层基础。把感知器想象成一个「做决策的大脑细胞」:MLP基础: MLP(也叫「全连接神经网络」)是把多个感知器分层组合起来的网络,突破了单个感知器的线性限制,能处理非线性问题,是 VLM、YOLO 等复杂模型的核心基础模块。首先是前向传播完整的神经网络训练闭环 其中解析一下解析函数 Sigmoid中答:如果没有偏置 b1​,当所有输

2026-01-08 13:57:38 306

原创 漆面检测-取图映射逻辑思想

第一步:定义 “相机取图区域” 与 “车身物理区域” 的对应关系,

2026-01-06 17:50:09 795

原创 漆面检测-数据库连接通信逻辑

/当调用 m_dbWriterThread->finished(),m_dbWriter->deleteLater。//当调用 m_dbWriterThread->start(),m_dbWriter->start。// - 线程结束 -> 释放写入器(避免内存泄漏)// - 线程启动 -> 写入器开始工作。// 1) 触发拍照。3.写入器分配至子线程。

2026-01-04 13:05:25 323

原创 服务器传输推送

终端主动拉取:服务器整理好数据后仅存储,终端按需 / 定时发起请求(如 “获取批次 XXX 的问题图像”),服务器响应并传输数据。

2025-12-09 09:46:33 557

原创 色差检测实验测试

通过多光谱,灰度相机根据不同波长实现对不通汽车漆面的色差检测。之后就可以将后续的图像与这个阈值进行对比来测试是否为合格漆面。对于向量进行两方面处理用于进行阈值的设定。那么就可以组成一个(1,6)的向量。对于一张图RGB来说,具有六个值。

2025-11-28 17:57:26 142

原创 数据库建立库-Qt

数据库连接后进行建立库的操作库的建立需要预先声明库的库名和选择字符集以及库内的排序顺序代码部分逻辑。

2025-09-12 14:25:35 465

原创 数据库的连接_qt

句柄,后续可通过该句柄执行 SQL 语句(如。数据库的连接形式可以通过cmd查看。2.初始化 MySQL 连接句柄。1.获取 UI 输入的连接参数。3. 建立数据库连接。连接成功:返回有效的。

2025-09-12 11:11:52 372

原创 数据库概念

我看的这个文章搭建的,挺权威,我是配上了。

2025-09-12 10:58:44 783

原创 TensorRT环境搭建(有个坑踩了两次)

1.包含目录2.静态库目录3.静态库文件cufft.libcufftw.libcufilt.libcurand.libnppc.libnppial.libnppicc.libnppif.libnppig.libnppim.libnppist.libnppisu.libnppitc.libnpps.libnvblas.libnvjpeg.libnvml.libnvrtc.lib。

2025-08-20 16:53:46 343

原创 深度学习-图像识别-卷积

层数特征图上 1 个像素 ↓ 对应上一层的区域 ↓ 对应输入图像的区域感受野大小输入图像本身就是像素,不对应其他区域1×1第 1 层卷积对应上一层(输入)的 3×3 区域3×3第 2 层卷积对应上一层(第 1 层)的 3×3 区域 → 对应输入的 5×5 区域5×5。

2025-08-06 13:33:14 765

原创 深度学习-图像识别 神经网络

的完整逻辑链损失函数的定义:作用:衡量模型预测和真实标签的误差你的理解 核心逻辑完全正确!只是在表述细节上可以更精准,我们逐句修正+补充,让推导链条更清晰:1. 损失函数的意义(公式1.4)• Y:真实标签(比如分类任务里的0或1);• f(y) :模型的预测输出(先通过线性组合 y = W[0] + W[1]X[1] + W[2]X[2] 计算,再经激活函数 f() 输出,比如阈值函数);•。

2025-08-06 10:06:27 655

原创 Qt-vs加载exe图标

【代码】Qt-vs加载exe图标。

2025-08-03 16:15:50 455

原创 对于ONNXruntime部署的理解

在这里有一个坑就是说不能再这里写入cudnn,因为图象是基于Opencv读入和处理的,OPencv的读取默认是再Cpu上完成的,如果写入Cudnn会报错冲突。管理 GPU 数据,并用 GPU 内存信息创建输入张量,避免不必要的 CPU 到 GPU 传输。这样效率不会特别的高,因为图像会从Cpu进行预处理之后在传输给GPU进行推理。使用支持 CUDA 的 OpenCV,在 GPU 上进行图像预处理。输入数据在 CPU 上时,必须使用 CPU 内存信息;将数据上传到 GPU,并在 GPU 上执行预处理。

2025-07-16 16:27:39 486

原创 Qt轮廓分析设计+算法+避坑

轮廓分析拟合方面我现在只考虑矩形拟合和圆形拟合细分的话,椭圆拟合,矩形拟合,最小外接矩形,最小外接圆。对于一张图像可能有不同的图形,不同的圆,不同的矩形,我需要对其进行筛选,也需要对检测的目标对针对性计算,例如面积,周长,圆心点坐标。那最后就是显示功能了,因为轮廓分析往往是基于图像处理后显示的,这样不够直观也不够美观,我们需要让他显示在原图上,我们可以选择它显示的方式,最小圆,最小矩形,十字线,中心点这样会好看很多。我们整体的页面思路已经设计好了下面看一下实现。

2025-07-14 14:12:00 732

原创 Qt去噪面板搭建

QRadioButton* bilateralBlurBtn = new QRadioButton("双边", methodGroup);QRadioButton* gaussianBlurBtn = new QRadioButton("高斯", methodGroup);QRadioButton* gaussianBlurBtn = new QRadioButton("高斯", methodGroup);// <<<<< 减少横向间隙。// 步长为2确保奇数。// 步长为2确保奇数。

2025-07-09 15:37:35 907

原创 Qt工具栏设计

创建好后的菜单栏和上面的按钮当鼠标点击后会是白底黑字的提示信息。1.设计工具栏的高度与颜色与风格。添加工具栏相关的Api。相关的样式和添加方法。

2025-07-05 23:50:44 195

原创 QT弹窗设计-用户登陆界面

首先是控件的建立用的是QDialog这个弹窗式Api,之后建立用户名输入区,昵称区,密码区域,密码格式,确定取消按钮后面是登录成功与失败的判断是一个继承自QDialog的自定义对话框类,用于显示登录界面。exec()方法会以模态方式显示对话框:模态意味着主窗口被阻塞,用户必须先处理完登录对话框(点击登录或取消)。exec()返回值表示对话框的关闭方式::用户点击了 "登录" 按钮(通过accept()关闭对话框)。:用户点击了 "取消" 按钮(通过reject()关闭对话框)。

2025-07-05 02:04:31 500

原创 Qt首页页面优化

1.有时在右侧添加新的Widget时,会出现已经将边距设为0但还是没有达到我们想要的紧挨着的效果,原因是控件的大小我们通过纯编程的方式看不到,导致留白,我们只需要控制控件的大小就可以达到紧挨着的效果。根据上一张看出界面不够好看我们进一步优化一下,之前的按键类型是QPushButton*没有办法添加按钮图片样式,我们可以换一种按钮类型QToolButton*来添加按钮图片。2.有一种情况即使我们使用了带中文的头文件还是出现中文乱码的情况,这个时候只需要修改高级保存设置改成UTF-8就可以。

2025-07-02 13:39:00 406

原创 Qt 实现Opencv功能模块切换界面功能

想通过Qt实现Opencv的模块整合化,以便后面做图像处理,首先要实现点击按钮切换不同的页面。1.创建主部件和堆叠布局,这样我点击相关模块可以使画面跳转到我要的界面2.我想要功能模块化,这样方便我去针对不同的模块进行管理,更方便后期的功能优化首先要用到几个函数stackedWidget是一个负责堆叠功能的函数,负责将多个Widget整合到一起,点击后进入我想要的界面其次就是模块化,我用类来管理之后用OpenCVModule* OpenCVModule来指向这个关于opencv的控件。

2025-07-01 21:43:44 433

原创 Gige协议 Qt版使用文档仅供个人使用

首先建立Vs的Qt程序,直接通过button和widge来显示图像;通过调用Gige的API来实现相机的控制,后面通过直接调用源码来控制,相信写完后对二次开发和Gige会有新的理解。QT的开发方面转到这篇文章首先将相关的Gige放入到项目工程文件的同级目录,输出目录为../Release/DLL/Debug需要将放入同级目录下,之后如果调用的是Gige的库则不需要设立头文件例如需要包含头文件放入sln目录下开始调用调用Gige之前滤清思路。

2025-07-01 14:42:27 814

原创 Qt 图像显示

1,我用的是Opencv显示,当挂头文件时,会报错>C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\um\oaidl.h(571,21): error C2872: “byte”: 不明确的符号。其次显示界面,上一章我们右侧留有空白可以用作显示,我们先建立Qlabel用作显示图像,将他嵌套进右侧留白的Widge中,代码如下。2,Qt用opencv的Mat需要转化格式,我已经写好了在上面。首先触发信号,显示界面;

2025-07-01 10:36:15 282

原创 Qt 前端开发

只有这样才能实现一个界面既是水平布局,又是垂直布局,需要在Widge中设置,例如两个widge一个水平,而另一个是垂直这样。这要理解了这块,Qt就完成一半了。其实跟我们想要的已经很接近了,笔者是做视觉软件的,那么我们再在上添加一个widge,以水平排序。首先建立一个大的Widge,将他设立为主窗体,后面的控件都在这里面完成。首先要理解,在 Qt 中实现复杂布局的核心思路就是。这一阶段就差不多结束了,东西不多但是原理比较重要。),可以构建出任意复杂的界面结构。,通过组合水平布局(

2025-06-30 15:40:24 351

原创 Gige协议的二次开发

初始化与参数检查验证相机连接有效性获取并设置图像位深度获取图像尺寸参数相机配置选择数据流通道设置为单帧采集模式图像采集准备创建数据流对象分配数据缓冲区初始化性能监控图像采集启动采集从缓冲区获取图像数据保存图像数据停止采集资源清理与错误处理释放缓冲区和流资源检查并处理错误返回操作结果关于ShowGigeImage();(显示图像)if (!// 检查输入参数有效性if (!

2025-06-26 15:36:27 690

原创 关于AB PLC的ethernet/IP 通信 c++搭建

std::cout << "初始化中: " << timeout_ms / 1000.0 << "秒..." << std::endl;std::cerr << "写入失败: " << plc_tag_decode_error(ret) << std::endl;std::cout << "验证写入后的值: " << (int)new_value << std::endl;std::cout << "原始值: " << (int)original_value << std::endl;

2025-06-19 11:11:04 639 2

原创 yolov8中的rtdetr-l.yaml 和RT-detr

YOLOv8 是 Ultralytics 开发的基于 PyTorch 的目标检测框架,其文件是对 RT-DETR 的。

2025-06-04 09:25:55 666

原创 yolo个人深入理解

而yolov8进行了创新,取消了一个CBS,而是更新了c2f,cbs之后进行split分层进行三层BottleNeck特征提取,这是针对于两者不同的理解.卷积层的理解,通过云端服务器训练模型,模型构建的重要性,针对极低像素的处理,模型训练召回率提高技巧,卷积层2,4,8,16,32的小模型与大模型的理解。5.所谓冻结骨干与注意力机制的添加过于玄学,大部分模型都可以通过黄金样本解决,只有样本标注都没有问题在考虑注意力方面。2.训练样本的准确性,制造黄金样本,所谓黄金样本就是目标工件的准确性,无异议性。

2025-06-01 21:39:55 579

原创 TensorRt10学习第一章

因为createInferBuiler和createruntime要用,是一个接口。建立TensorRt时必须要有。

2025-05-01 23:42:08 390

原创 QT程序建立

路径先选好(建立之前两个都先跑一下生成文件后再运行)在这两个文件里面操作。

2025-04-22 11:13:37 209

原创 基于MFC按钮逻辑

if (state == GigeState::ARV_OPENED || state == GigeState::ARV_VIDEO)// GigeState::ARV_OPENED(设备已打开)或者 GigeState::ARV_VIDEO(设备正在进行视频操作)时,将视频按钮设置为可点击状态,即启用该按钮。

2025-03-28 13:10:16 480

原创 关于gige与MFC的界面交互

CDlgAddGige搜寻此函数定义跳转至DlgAddGige.h这个头文件(个人理解是关于界面交互的头文件)Resource.h文件存储的是窗口交互界面框架的ID,要在框架中模块选择对应的ID实现绑定交互。2.需要在所框架接口处的ID选择这个,这个文件ID在Resource.h中 后面的数字唯一。1.IDD = IDD_DLG_ADDGIGEa是交互界面的框架接口。就是三种,源函数全局的头文件,resource,源函数dlg。通过IDD_DLG_PARAM将二者关联起来。3.会在.rc文件中自动生成。

2025-03-28 10:16:24 472

原创 关于gige协议通信中CDlgAddGige的头文件解析

/ DDX/DDV 支持是一个虚函数,通常在对话框类中被重写。它的主要作用是实现对话框控件与类的成员变量之间的数据交换(DDX,Dialog Data Exchange)以及数据验证(DDV,Dialog Data Validation)//class CDlgAddGige : public CDialogEx创建名字为 CDlgAddGige的类继承 CDialogEx的方式,CDialogEx是MFC中的一个对话框架。// 对话框数据,将对话框类与资源编辑器中的对话框模板(

2025-03-27 13:53:25 963

原创 pytorch中的基础数据集

则会将数据样本在返回前固定到 CUDA 页锁定内存中,这样可以加快数据从 CPU 到 GPU 的传输速度,适用于使用 GPU 进行训练的场景,默认值为。,则在每个 epoch 结束后,工作进程不会被销毁,而是保持存活状态,这样可以减少进程创建和销毁的开销,提高数据加载效率,默认值为。在多进程数据加载时,工作进程会预先加载一定数量的样本,以提高数据加载的连续性。,则在每个 epoch 开始时打乱数据集的顺序,有助于模型更好地学习数据的分布,提高模型的泛化能力,默认值为。:指定多进程的上下文,可以是。

2025-03-13 09:39:49 537

原创 对象检测部署TensorRT

之前报却晒10.6的cuda文件,我用11.6改成了10.6没报错也生成了engine文件,先用着有问题后面再说。rtexec.exe --onnx=drone_best.onnx --saveEngine=drone_best.engine --fp1690(半精度)yolo8可以转,但是非所有模型都可以转,有些二阶段无法转。我将tensorrt中的lib目录下的.dll都复制tensorr的bin下(如果正常生成不用)下载了这个DLL文件放到cuda文件里就可以正常生成了。之后缺少这个DLL文件;

2025-03-12 16:11:51 481

原创 实例分割操作

print("仍然无法导入 non_maximum_suppression 模块,请检查路径是否正确。print(f"模型加载失败: {e},请检查模型文件路径和名称是否正确。和之前是一样的但是要注意的是要调整自定义图像的size来符合onnx,避免出现报错的问题。和之前是一样的但是要注意的是要调整自定义图像的size来符合onnx,避免出现报错的问题。# 调整 num_boxes_index 的值,使 m1 的列数为 32。print("未找到类别文件,请检查文件路径是否正确。

2025-03-12 13:03:57 481

原创 Yolov8模型推理部署

model = core.read_model(model="C:/python/yolov8/yolov8n.onnx") # 请根据实际情况修改为模型的绝对路径。output_folder = "C:/python/yolov8/2/" # 请根据实际情况修改为你要保存的文件夹路径。print("无法打开视频文件,请检查文件路径是否正确。print("可用设备:", available_devices)print(f"推理过程中出现错误: {e}")print(f"模型加载或编译失败: {e}")

2025-03-12 11:21:58 725

空空如也

空空如也

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

TA关注的人

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