- 博客(61)
- 收藏
- 关注
原创 [深度学习]YOLOV5预处理和后处理,源码分析
关于模型输出的说明(1, 25200, 85):👇⭐25200: 每个batch的检测框数量⭐85: 每个检测框包含信息[x, y, w, h, 置信度, coco_class0_score, coco_class1_score, …, …, coco_class79_score]conf_thres = 0.001 # 置信度筛选阈值max_wh = 7680 # 最大允许的检测框高宽iou_thres = 0.65 # NMS交并比。
2024-06-14 19:05:55
6908
7
原创 PyModbus API对应的功能码和报文
本文介绍了PyModbus库中主要功能码对应的API接口及其报文格式。通过虚拟串口捕获报文,展示了0x01-0x06、0x10和0x17功能码的具体实现方式,包括读取线圈、离散输入、保持寄存器等操作,以及单/多寄存器写入功能。文中提供了各API调用示例和对应的十六进制报文,并指出其他功能码可在mixin.py源码中查询。最后总结了8个常用功能码与API的对应关系表,为Modbus通信开发提供了实用参考。
2026-05-08 10:54:14
188
原创 高光谱化学成分预测
评估指标计算公式核心计算逻辑要解决的核心问题计算设计的解决原理(为什么这样算)核心优点决定系数R2R^2R2R21−∑i1nyi−yi2∑i1nyi−yˉ2R21−∑i1nyi−yˉ2∑i1nyi−yi2用残差变异/总变异的占比,衡量模型解释数据变异的比例无法量化模型解释力、不同数据集/单位无法直接对比拟合效果。
2026-04-23 23:26:10
357
原创 eBUS SDK Python环境安装
本文介绍了JAI eBUS SDK的安装和使用指南。主要内容包括:系统架构和Python版本要求(需Python 3.11.7);从JAI官网下载安装eBUS SDK;创建conda环境并安装特定版本的依赖库(numpy<2和opencv-python<4);安装eBUS Python包;运行SDK示例程序PvStreamSample.py的路径说明。文档提供了完整的安装流程和版本兼容性注意事项,并附有相关官方文档和截图参考。
2026-03-16 20:08:34
294
原创 Visual Studio创建Cmake工程导出DLL,通过Python调用DLL
本文介绍了使用Visual Studio创建CMake工程并导出C动态库的方法。首先通过VS创建CMake项目,修改CMakeLists.txt添加SHARED库配置。然后实现了一个简单的DLL函数PrintHello(),并使用__declspec(dllexport)导出。最后通过Python的ctypes模块成功加载DLL并调用函数,验证了动态库的可用性。整个过程展示了从C++动态库创建到Python调用的完整流程。
2026-03-15 15:29:29
85
原创 [精通Python设计模式]笔记
本文介绍了Python中三种常见的设计模式。工厂模式通过提供统一API实现对象创建与使用的解耦,适用于对象追踪、性能优化等场景;建造者模式采用指挥者与建造者分离的方式构建复杂对象,适合多步骤、顺序敏感的创建过程;原型模式通过深拷贝现有对象并修改属性来创建新对象,适用于需要独立修改副本的场景。这些模式分别解决了不同场景下的对象创建与管理问题。
2026-03-10 12:51:43
91
原创 线扫描相机运动平台速度计算和运动平台电机选型
本文提出了线扫描相机运动速度的优化计算方法,通过确保目标移动距离与相机扫描线宽同步来避免图像失真。核心公式为V=P×F,其中P=W/N,V为最佳速度,P为单像素物理宽度,F为帧率,W为视场宽度,N为分辨率。以SPECIM FX10相机为例,在0.5m工作距离、1024px分辨率、38°视场角和330FPS条件下,计算得到最佳速度为0.111m/s,建议保留5%余量。该方法为线扫描成像系统提供了精确的速度控制方案。
2026-03-02 10:35:07
549
原创 [深度学习]Vision Transformer
本文介绍了使用PyTorch实现Vision Transformer (ViT)的关键组件。主要包括:1) PatchEmbedding模块将图像分割为小块并进行线性投影;2) PositionEmbedding添加位置信息;3) MultiHeadAttention实现多头自注意力机制;4) MLP模块包含两层全连接;5) TransformerBlock整合注意力和MLP;6) VisionTransformer类整合所有组件构成完整模型。代码展示了ViT的核心架构,包括patch分割、位置编码、多层T
2026-02-03 20:48:51
73
原创 [Linux笔记]内核裁剪
本文介绍了Linux内核裁剪的两种工作流程。一种是使用make menuconfig的交互方式:先加载默认配置生成.config,通过修改Kconfig添加模块选项,在menuconfig界面勾选后自动更新.config,最后可保存为新defconfig并编译。另一种是直接手动编辑.config文件来修改配置。文章还阐明了关键文件的关系:xxx_defconfig存储默认配置,.config记录当前配置,Kconfig定义配置选项,Makefile根据.config变量决定编译行为。通过obj-$(CONF
2026-01-28 22:47:44
536
原创 [Linux笔记]SPI
本文分享了Linux内核SPI驱动框架源码阅读的两个关键心得:1) 不需要逐层剖析每个宏、函数和结构的底层实现,这会降低效率;2) 应采用应用开发思维,将内核头文件视为SDK,重点理解函数功能及输入输出参数即可。这种"黑盒"式阅读方法能提高学习效率,避免陷入过度细节分析的困境。
2026-01-03 19:09:22
296
原创 排序算法(C++,手撕)
排序算法(C++,手撕):1. 冒泡排序:bubleSort2. 选择排序:selectSort3. 插入排序:shellSort4. 希尔排序:shellSort5. 归并排序:mergeSort6. 快速排序:quickSort7. 堆排序:heapSort
2025-11-27 22:29:34
273
原创 VS2022创建项目工程笔记
本文介绍了在VS中创建多项目解决方案的步骤。首先创建标准项目目录结构(bin、doc、include、lib、src),然后建立项目A和B(A依赖B)。详细说明了项目创建流程、平台配置和依赖关系设置。重点讲解了项目配置:1)设置B项目的动态库输出路径为lib目录;2)配置A项目的头文件路径、动态库路径及链接库名称;3)统一设置两项目的可执行文件输出路径为bin目录。最后展示了如何通过解决方案属性配置项目依赖关系和启动项目。
2025-10-07 16:38:52
563
原创 [深度学习]尝试手撸DivAug,有监督域适应
这篇文章摘要了一位研究者从零开始复现域适应论文的经历。作者分享了自己基于个人数据集编写的Python代码实现,重点介绍了数据处理部分的实现细节,包括16位灰度图像处理、自定义数据集类AF9Dataset以及数据加载逻辑。代码展示了如何从文件目录结构解析图像数据,并按类别、程度和瓶子ID进行组织的方法。此外还提供了两种采样策略(优先级采样和轮询采样)的实现,为读者在类似任务中提供了实用参考。作者特别说明数据加载部分需要根据个人情况重写,并提供了Google Colab的运行链接。
2025-09-29 11:12:37
357
原创 vscode中用python调用matlab的函数(环境安装)
本文介绍了在WIN11和Ubuntu系统中配置MATLAB Engine API for Python的实践方法。主要内容包括:1) 环境要求,需满足MATLAB与Python版本兼容性;2) 安装步骤,通过conda创建指定Python版本的虚拟环境后,在MATLAB安装目录下执行pip安装;3) 提供测试代码验证环境;4) 给出Python调用MATLAB函数的实际用例,展示如何通过引擎调用.m文件中的自定义函数。文中强调需特别注意Python版本与MATLAB的兼容性要求。
2025-08-16 21:06:41
632
原创 向长波红外成像图注入非均匀噪声
本文提出了一种红外图像噪声模拟方法,通过Python实现16bit图像中沙粒噪声和条纹噪声的合成。沙粒噪声采用零均值高斯白噪声模型,条纹噪声由列均值偏移和列内随机波动组成。算法根据输入信噪比参数计算噪声方差,生成两种噪声叠加到原图。代码输出展示了含两种噪声和仅沙粒噪声的效果对比。方法参考了红外系统三维噪声模型及相关研究成果,适用于红外图像处理领域的噪声仿真需求。
2025-08-13 20:12:46
356
原创 [深度学习]hugging face模型广场timm的模型报错:Unknown model
用hugging face共享的timm的模型报错:Unknown model和网络连接失败
2025-06-09 12:14:25
673
原创 x64_ubuntu22.04.5安装:cuda driver + cuda toolkit
x64_ubuntu22.04.5安装:cuda driver + cuda toolkit
2025-05-24 20:03:55
1065
原创 Docker Engine多平台镜像构建(交叉编译ARM64、x64、riscv64...)
目的是:在X64电脑上运行ARM64架构的docker镜像,这样可以在镜像上开发代码,最后打包镜像分发。这么做好处是:可以直接在ARM64端安装docker并下载镜像,运行镜像即可实现项目部署。在Dockerfile中,使用的时候,无法访问apt源在容器内部,使用的时候,无法访问apt源。
2024-12-09 22:41:58
1844
原创 [linux笔记]读设备树,基于qemu9.1+linux内核6.11.0
【代码】[linux驱动开发--读设备树] 基于qemu9.1+linux内核6.11.0。
2024-11-02 17:22:59
573
1
原创 [linux笔记] QEMU模拟vexpress-a9开发板
把前面用到的kernel和.dtb文件复制到img文件夹中,此时qemu_9.1的文件结构如下。模拟在Freescale sabrelite开发板上运行,不需要uboot也可以,img文件内文件有如下所示。
2024-10-26 23:07:07
780
原创 K-fold交叉验证后如何确认最终模型权重
要解决这个问题,我快速联想到了K-Fold Cross Validation(后续简称cv),因为cv给我的直观记忆感受就是能让大部分的数据进入到训练当中。关于cv,我们常见的概念图如下,图片来自。换句话说,在执行K-Fold Cross Validation的时候,应该把所有的数据都用于K-Fold Cross Validation,不需要单独保留一份test集。,因为性能在之前的cv已经评估过了,为了最大化利用数据集,全部数据都用来训练。1.cv是用来评估一个模型在一份数据集上性能的工具,它。
2024-10-24 19:27:22
942
原创 Ultralytics_yolov10目标检测,预处理函数入口
Ultralytics_yolov10目标检测,预处理函数入口。随着Ultralytics的更新,yolov5-v11可以统一使用Ultralytics包体,这篇博客更新一下。
2024-10-07 20:34:54
1402
slambook2的环境搭建
2024-01-24
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅