自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 数据库建立库-Qt

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

2025-09-12 14:25:35 403

原创 数据库的连接_qt

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

2025-09-12 11:11:52 329

原创 数据库概念

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

2025-09-12 10:58:44 752

原创 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 307

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

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

2025-08-06 13:33:14 680

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

的完整逻辑链损失函数的定义:作用:衡量模型预测和真实标签的误差你的理解 核心逻辑完全正确!只是在表述细节上可以更精准,我们逐句修正+补充,让推导链条更清晰: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 557

原创 Qt-vs加载exe图标

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

2025-08-03 16:15:50 408

原创 对于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 325

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

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

2025-07-14 14:12:00 675

原创 Qt去噪面板搭建

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

2025-07-09 15:37:35 836

原创 Qt工具栏设计

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

2025-07-05 23:50:44 158

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

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

2025-07-05 02:04:31 357

原创 Qt首页页面优化

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

2025-07-02 13:39:00 366

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

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

2025-07-01 21:43:44 408

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

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

2025-07-01 14:42:27 679

原创 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 210

原创 Qt 前端开发

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

2025-06-30 15:40:24 315

原创 Gige协议的二次开发

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

2025-06-26 15:36:27 626

原创 关于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 501 2

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

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

2025-06-04 09:25:55 474

原创 yolo个人深入理解

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

2025-06-01 21:39:55 494

原创 TensorRt10学习第一章

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

2025-05-01 23:42:08 368

原创 QT程序建立

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

2025-04-22 11:13:37 197

原创 基于MFC按钮逻辑

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

2025-03-28 13:10:16 457

原创 关于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 458

原创 关于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 925

原创 pytorch中的基础数据集

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

2025-03-13 09:39:49 452

原创 对象检测部署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 431

原创 实例分割操作

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

2025-03-12 13:03:57 454

原创 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 663

原创 OPenVINO2022.1环境搭建

直接最后一步,但是作者下载速度太慢选择镜像。

2025-03-12 09:51:53 266

原创 TensorRT环境搭建

版本 TensorRT 8.4 GA Update 2 for x86_64 Architecture。同样的操作将lib,include,bin文件复制粘贴到cuda中。lib,include,bin文件复制粘贴到cuda中相同的位置。(与 TensorRT 8.4/8.5 兼容性较好)首先确认自己的CUDA版本,作者版本是11.6。2.将下载好的cuDNN解压,将里面的。3.下载TensorRT。

2025-03-11 17:56:05 173

原创 yolov8自定义实例分割

print(f"JSON 文件 {json_file} 中的 shapes 列表为空,生成的 TXT 文件将为空。print(f"已处理图像: {img_name},生成标签文件: {data_label_text_f}")JSON 文件: {json_file}")print(f"JSON 文件 {json_file} 缺少必要的图像信息,跳过处理。print(f"跳过非 JSON 文件: {json_file}")print(f"正在处理 JSON 文件: {json_file}")

2025-03-11 15:32:30 563

原创 模型推理测试与导出

训练的模型,cd到my_yolov8_train_demo文件中,里面有刚刚训练好的best.pt,之后。之后我们试一下将他(best.pt)转换位onnx格式。我们尝试进行onnx模式推理。这里有一个过滤低率值的方法。

2025-03-11 10:00:39 272

原创 数据集构建与训练前准备

训练数据集目录结构与格式作者笨蛋学法,先将其公式化,后面逐步自己进行修改,读者觉得看不懂可以理解成,由结果去推过程,首先建立一个名字为datasets的文件,要求与my_yolov8_train_demo在同一层目录,datasets的目录用于存储几个比较关键的文件,为了便于理解先引申出一个指令用与训练模型,其中dataset.yaml文件包含了几个重要信息根据这两条信息我们可以知道我们需要的三个文件,分别是其中images的下面有两个子文件分别是train和valid。

2025-03-10 23:06:15 785

原创 labelImg使用方法

后点击Save会默认与图片相同路径的文件夹。我们来查找一下XML,看一下这个数据格式。在tool中找到labelImg打开。W快捷键选择目标,选择目标名称。最后选择一个不一样的。

2025-03-10 17:38:18 196

原创 Visual stdio2022 opencv cude pytroch与yolov8/可视化工具的环境搭建,不搞VIP,我也要当雷锋

pycharm下载解压软件,这里推荐bandi下载python解释器,这里有两种,一种官方下载但是太慢了,这里作者选择国内的python下载之后安装,要注意path,我的版本是3.10.10,因为后面要和pycharm cude等适配这个版本测试过可以跑起来,按照好后cmd测试一下接下来下载opencv480,同样官网下载太慢,作者选择并找到了雷锋下载好opencv后进行环境的搭建配置这三个vs2022中的配置,之后配置系统变量之后可以简单写些读取图像的程序测试一下// 读取彩色图像作为模板。

2025-03-10 15:55:33 1374

原创 逻辑回归机器学习

criterion = torch.nn.BCELoss()在二分类问题中,我们希望模型输出一个概率值,表示输入样本属于正类的可能性。如果模型预测的概率值与真实标签越接近,那么二元交叉熵损失就越小;x = np.linspace(-5,5,20, dtype=np.float32)//-5,5之间随机生成20个数。y = np.random.normal(_b,0.005)//在此基础上加上0.05的噪声来获得y。_b=1/(1 + np.exp(-x))//通过变换得到_b。print("标签y",y)

2025-03-09 22:59:54 853

原创 线性回归机器学习

• 功能实现:它用于实现全连接层,即线性变换。该类能够对输入数据进行线性变换,计算公式为y = xA^T + b,其中x是输入数据,A是权重矩阵,b是偏置向量,y是输出数据。在构建神经网络时,通过实例化torch.nn.Linear类来创建线性层,定义输入特征维度和输出特征维度,就能对输入数据进行线性变换操作。• 参数管理:torch.nn.Linear类在实例化时会自动创建和管理权重和偏置参数。这些参数是可学习的,在神经网络训练过程中,会根据损失函数的反向传播来更新这些参数,以优化模型的性能。

2025-03-09 20:45:12 939

原创 python/Numpy基础操作

pytorch算子操作。

2025-03-07 11:35:23 509

空空如也

空空如也

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

TA关注的人

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