- 博客(59)
- 资源 (4)
- 收藏
- 关注
原创 如何计算目标检测的召回率、精确率、F1?
召回率(Recall)、精确率(Precision)和 F1 分数是评估分类或检测模型性能的核心指标。下面是它们的定义、公式、计算步骤和实例,特别适用于目标检测(如缺陷检测、人体关键点等)场景。
2025-11-19 11:52:09
215
原创 Exponential Moving Average(指数移动平均)模型
EMA 模型是对主模型权重进行指数平滑后的“更稳定、泛化更好”的版本,常用于提升推理性能● 不是新模型,而是同结构模型的优化权重● 训练时维护,推理时使用● 几乎无额外成本,收益显著● 推理脚本中 --use_ema 就是为了启用这个“更强的版本”所以,下次看到 model_ema,就知道它是“模型的平滑加强版”,值得在推理时优先使用!
2025-09-18 10:51:37
314
原创 ultralytics/nn/tasks.py源码学习笔记——核心函数parse_model
在为yolo模型添加模块时,总是会涉及ultralytics/nn/tasks.py源码的修改。但一般是直接照搬的人家的工作,一直不清晰到底是咋修改的。这里记录一下对tasks.py源码中parse_model这个重要函数的学习,以便后续新增模块时能实现自主修改。
2025-09-04 17:43:36
743
原创 使用 logging 模块生成 .log 文件
在 Python 中,使用 logging 模块生成 .log 文件非常简单。你需要为你的 logger 添加一个 FileHandler,并将其指向你想要的文件名(例如 my_app.log)。
2025-08-28 10:51:32
389
原创 pytorch_grad_cam 库学习笔记—— Ablation-CAM 算法的基类 AblationCAM 和 AblationLayer
AblationCAM 是 BaseCAM 的一个具体实现,它遵循 Ablation-CAM 算法的原理:通过系统性地“移除”(消融)目标层的各个特征通道,然后测量模型预测分数的下降程度,来评估每个通道的重要性,从而生成热力图。与 Grad-CAM 等基于梯度的方法不同,Ablation-CAM 是一种梯度无关(gradient-free) 的方法。。
2025-08-26 16:09:03
911
原创 pytorch_grad_cam 库学习笔记——基类ActivationsAndGradient
捕获激活:通过 register_forward_hook 在前向传播后直接捕获目标层的输出。捕获梯度:通过在前向 Hook 中为输出张量注册 register_hook,在反向传播时捕获其梯度,并通过将新梯度插入列表开头来保证顺序正确。灵活性:支持 reshape_transform 以适应不同模型架构。内存管理:通过 detach 选项控制是否保留计算图,并通过 release 方法确保 Hook 被正确移除,防止资源泄漏。易用性:提供call。
2025-08-26 15:23:02
944
原创 pytorch_grad_cam 库学习笔记——基类BaseCAM
核心流程:forward 定义了标准流程(前向->反向->生成各层热力图->聚合)。算法核心:get_cam_weights 是抽象方法,子类通过重写它来实现不同的 CAM 算法。灵活性:支持多个目标层,并通过 aggregate_multi_layers 聚合。支持 reshape_transform 以适应非标准模型(如 ViT)。支持 TTA 平滑 (forward_augmentation_smoothing)。
2025-08-26 14:41:51
1138
原创 vis_cam.py 函数解读记录
vis_cam.py 是一个独立的、完整的脚本,其核心作用是:对一个预训练的目标检测模型(特别是基于 MMDetection 框架的模型),使用类激活映射(CAM)技术,可视化模型在做出特定检测决策时,其关注图像的哪些区域。简单来说,它回答了这个问题:“模型是根据图像的哪一部分,判断出这里有一个物体的?” 它生成的热力图(Heatmap)会叠加在原始图像上,直观地显示模型的“注意力”或“决策依据”。
2025-08-22 15:54:54
665
1
原创 如何结合Grad-CAM进行mmdetection的特征可视化
在mmdetection的github项目中找到一些CAM的相关内容如何 从 Pull Request 下载变更文件1.访问的链接是一个 Pull Request(#7987)的文件差异页面。可以打开 PR 页面: → https://github.com/open-mmlab/mmdetection/pull/79872.点击 “Files changed” 标签页3.找到需要下载的文件,点击右上角的 … → “View file”4.在文件页面点击 “Raw” 按钮,再保存或下载。
2025-08-22 15:08:54
360
原创 det_cam_visualizer.py 函数逐行解读记录
DetCAMModel 类是一个强大的封装器,它通过 set_input_data 方法灵活地处理原始图像和真实标注,并根据 return_loss 标志决定模型是返回损失还是检测结果。它简化了 MMDetection 模型在不同模式(推理 vs. 损失计算)下的数据预处理流程,为上层应用(如CAM可视化)提供了统一且便捷的接口。# 如果当前模式是返回损失(return_loss=True),则需要准备包含真实标注(ground truth)的数据。
2025-08-22 13:18:18
652
1
原创 网络模型结构的哪些层能用cam可视化,哪些层不能?
建议:选择 backbone 或 neck 中的卷积层(如 backbone.layer3)作为 target-layers,不要选 fc 或 cls 这类无空间结构的层。在使用 CAM(Class Activation Mapping) 可视化时,并不是模型中的所有层都适合用来生成热力图。选择合适的层是获得有意义可视化结果的关键。
2025-08-21 15:36:54
223
原创 YOLO11 分割模型推理测试 ONNXRuntime
该代码实现了一个基于ONNXRuntime的YOLO11实例分割模型,主要功能包括图像预处理、模型推理和结果后处理。代码支持不同尺寸的输入图像,并提供了置信度阈值过滤、非极大值抑制(NMS)等处理功能。关键特性有:1) 使用ONNX模型进行高效推理;2) 支持CPU和GPU两种执行方式;3) 可自定义类别名称和颜色;4) 包含完整的预处理(尺寸调整、padding)和后处理流程(坐标转换、置信度过滤)。输出包含边界框、分割区域和掩膜信息,适用于计算机视觉中的实例分割任务。
2025-07-08 17:19:47
290
原创 终于解决vscode进不去容器的问题——Warning: Missing GLIBC >= 2.28!
最近总是出现这样的问题,可能是我的vscode自动更新了,容器内的库有些版本对不齐。导致我一直连不进去容器,修改代码很不方便,今天终于解决了一下这个问题。原来只要安装上GLIBC_2.28就可以连上了。
2025-05-20 14:56:31
1218
原创 python多线程和多进程——使用 concurrent.futures.ProcessPoolExecutor 和 ThreadPoolExecutor
在使用 concurrent.futures.ProcessPoolExecutor 和 ThreadPoolExecutor 时,如果你不指定 max_workers 参数,Python 会根据系统资源和任务类型自动选择一个合理的默认值。对于 ProcessPoolExecutor,如果没有指定 max_workers 参数,默认值是你的机器上的 CPU 核心数。例如,如果你有4核处理器,默认的最大线程数将是 min(32, 4 + 4) = 8。ProcessPoolExecutor 默认值。
2025-03-13 18:27:34
604
原创 python工具——图像数据清洗&图像质量检查
随着目前采集的数据集中的图像越来越多,出现了数据格式十分杂乱、质量不统一、部分图像存在损坏等各种问题。本程序提供各种图像数据清洗和图像质量检查功能,防止模型训练加载数据时出现各种异常。本工具仍在不断改进中……
2025-03-12 19:10:00
620
原创 yolov8乱改版(使用最新源码版本ultralytics-8.3.80——该项目库集成了yolov12)
首先一股脑儿把我之前的GhostNetV3.py、 mobilenetv4.py、 UIB.py几个文件放到/ultralytics-8.3.80/ultralytics/nn/modules路径下。因为之前有个项目把yolov8模型主干替换成了mobilenetv4、GhostNetV3等,现在又新出了yolov12。然后在/ultralytics-8.3.80/ultralytics/nn/modules/这样我之前训练过的被改了主干的模型就又可以用啦。源码版本ultralytics-8.3.80。
2025-02-27 20:17:52
434
原创 如何在Windows下使用Ollama本地部署DeepSeek R1
打开安装程序进行安装,默认是安装到C盘的。你可以通过cmd命令行输入再加上/DIR=来指定安装路径。2、设置安装以及模型路径。
2025-02-19 12:59:22
333
原创 如何使用onnxruntime部署GroundingDINO——记录如何转换onnx模型和推理过程
官方源码与项目1的不同之处在于groundingdino\models\GroundingDINO\groundingdino.py里的forward函数的输入参数不同。如果想导出onnx文件,把项目2的export_onnx.py放在项目1里运行即可生成onnx文件。为了实现将groundingdino模型转换成onnx格式文件,首先确保已经安装好GroundingDINO,请自行参考官方源码进行安装。且项目2提供了C++和Python两个版本的推理程序。
2025-02-07 16:26:19
1309
3
原创 Papers with Code——人工智能方向的必备网站
https://paperswithcode.com/sota/object-detection-on-coco
2025-01-24 16:09:37
1332
原创 Open-GroundingDino的.Open-GroundingDino/config/cfg_coco.py配置参数注释以及踩坑
官方的GroundingDino只开源了推理的代码,没有给出训练代码,数据集格式也未知,而Open-GroundingDino是作为GroundingDino的第三方实现训练的开源代码,关注GroundingDino的工作是否适合迁移到个人数据集中。当然也可以修改code/Open-GroundingDino/GroundingDINO/groundingdino/models/GroundingDINO/groundingdino.py中的id_map值与自己训练数量一致即可成功执行训练。
2025-01-22 15:14:10
633
原创 简单了解一下各种处理器CPU、GPU、NPU、TPU
•CPU:通用性强,适用于大多数日常计算任务。•GPU:擅长并行处理,特别适合图形渲染和大规模数值计算。•NPU:专门针对神经网络计算进行了优化,适合于AI推理任务,特别是在边缘设备上。•TPU:为张量运算做了专门优化,主要用于云端的大规模机器学习训练和推理。
2024-12-20 09:46:26
1015
原创 开放词汇目标检测(Open-Vocabulary Object Detection, OVOD)综述
综上,大多数工作均基于CLIP预训练的图像编码器和文本编码器。GlIP为解决目标检测任务提供了先例,后续很多工作常与目前较为广泛使用的目标检测网络结构相结合,从而构建新的开放词汇目标检测器。如ViLD基于Mask R-CNN、RegionCLIP基于R-CNN、VLDet和BARON基于Faster R-CNN。更具有创新性的工作是Detic,提出了使用图像分类的数据集来对目标检测器的分类头进行训练。
2024-12-20 09:19:14
3718
原创 python工具——图像预处理(resize224*224并进行灰度填充)
将图像统一转换成224*224大小的分类数据图像,并且根据长宽进行灰度(114,114,114)边缘填充,以防止原图发生变形。为了实现这个功能,我们可以使用Python的PIL库(Pillow),它提供了丰富的图像处理功能。下面是一个示例脚本,该脚本会遍历指定目录下的所有图像,将它们统一缩放到224x224像素,同时保持原始图像的比例不变,并在必要时使用灰度(114, 114, 114)边缘填充来避免图像变形。首先,确保你已经安装了Pillow库。
2024-11-08 11:33:22
673
原创 pythons工具——图像的随机增强变换(只是变换了图像,可用于分类训练数据的增强)
从文件夹中随机选择一定数量的图像,然后对每个选定的图像进行一次随机的数据增强变换。
2024-11-08 09:41:00
525
原创 如何用mmclassification训练多标签多分类数据
我这里只是增加了一些度量函数,方便可视化多标签的指标情况,并没有更新其他地方,训练时还是会验证原来的指标,里面调用的Metric类可以参考这篇文章:https://blog.youkuaiyun.com/u013250861/article/details/122727704。训练数据标签文件格式如下,每行的空格前面是路径(图像文件所在的绝对路径),后面是标签名,因为特殊要求这里我的每张图像都记录了三个标签每个标签用“,”分开(具体看自己的需求),我的训练标签数量是17个。
2024-10-23 18:03:13
1000
原创 yolov8图像分类推理程序的预处理步骤抽取出来-纯代码-干货分享
•将图像从 (H, W, C) 转换为 (C, H, W) 格式。官网文档:https://docs.ultralytics.com/zh/models/yolov8/•new_shape 是目标尺寸,color 是填充颜色,默认为灰色 (114, 114, 114)。•将图像从 BGR 转换为 RGB 格式。•将像素值归一化到 [0, 1] 范围。•读取图像并调用 letterbox_image 函数进行调整大小和填充。•该函数用于调整图像大小并保持宽高比,同时在图像周围添加黑色填充。
2024-10-15 15:59:06
1334
原创 使用from torchinfo import summary 查看网络结构
分享一个好用的查看网络结构的工具,从ghostnet的源码中看见的,其他的网络结构换个函数就行。用到你的程序里面试试吧!
2024-10-14 15:28:53
307
原创 【YOLOv8改进】 YOLOv8 更换骨干网络之GhostNetV3步骤详解
这里yolov8源码版本是 ultralytics-8.2.54GhostNetV3 源码下载 https://codeload.github.com/huawei-noah/Efficient-AI-Backbones将ghostnetv3.py文件复制一份到源码./ultralytics-8.2.54/ultralytics/nn/modules路径下我根据mobilenetv4的教程,修改了ghostnetv3.py文件的以下部分:class GhostNet(nn.Module):
2024-10-12 15:36:10
3287
9
原创 Agent:原理与快速构建 | 人工智能 | Langchain | Python ——学习笔记
视频链接:https://www.bilibili.com/video/BV1Hz421b7ag/?
2024-09-18 10:45:18
688
原创 显示中文字体问题解决:ImportError: The _imagingft C module is not installed
字体文件:https://download.youkuaiyun.com/download/yangsn0719/89689325。然后在用下面这句代替原来的用cv2.putText写入文本的语句就可以啦。
2024-08-29 09:33:42
480
原创 如何解决libpng warning: iCCP: known incorrect sRGB profile、OSError: cannot write mode RGBA as JPEG
【代码】如何解决libpng warning: iCCP: known incorrect sRGB profile、OSError: cannot write mode RGBA as JPEG。
2024-08-26 10:13:13
1645
原创 使用SAM分割一切模型对已有检测框的数据生成json分割标注-纯代码干货分享
【代码】借助sam分割模型对已经有标注框的数据生成json格式的多边形分割标注-纯代码干货分享。
2024-08-21 17:33:33
574
7
原创 借助Qwen-VL-Chat大模型生成xml标注-纯代码-干货分享
本工具参考:https://github.com/QwenLM/Qwen-VL/blob/master/TUTORIAL.md。本文默认使用以下代码前已准备好Qwen-VL的运行环境,且已下载了Qwen-VL-Chat模型文件。
2024-08-21 17:08:08
683
原创 一个人完成数据集收集和初步处理-纯代码实用干货
第三步:下载完成,重命名也完成之后,最好做一遍数据去重,不然重复图像很多的话,在后续标注的时候会产生更大的工作量。第一步:你想从下载一些图像,作为业务数据集的初始准备,使用如下代码(我推荐使用百度,重复数量更少)
2024-08-21 08:56:26
268
2
原创 python基础编程提升效率篇(一)——判断文件是否存在
经过测试发现,如果使用我习惯的判断方式,效率会比用os.path.exists(path) 正常判断文件是否存在慢好几倍不止。这里的主要原因是我习惯使用的方式,每次都要用os.listdir()读取一遍文件夹中的文件名列表,而且还要判断一个文件名是否在列表里,这耗费了大量时间。这也可能只是本人的代码习惯,不知道有没有人也会这样。唉,以后一定不能再这样用了,而且在以后写循环的时候,也要多注意一下类似的问题,吃一堑长一智。
2024-08-07 12:54:56
280
原创 yolov8如何设置显卡并批量推理_调用API推理示例
你可以在官网找到这样一个推理示例,但是这里没有设置显卡。这里提供一个用于可以设置显卡进行批量推理的示例。
2024-07-17 14:56:48
785
原创 yolov8训练数据警告检查
具体的源码出处以及警告原因可以在你自己的源码路径下./ultralytics/ultralytics/data/utils.py文件的verify_image、verify_image_label函数里查询。这里我把警告里出现两个冒号的都删了后面的一个,因为我根据冒号进行了分离字符串,我这里分类进行了保存,便于后面根据不同的警告原因进行不同检查和处理。首先,你需要将这些警告内容自行复制到一个新建的空白txt里,如下图。在yoloV8训练过程中,你应该也遇到过如图上的数据问题。后面自行检查这些数据即可。
2024-07-17 11:09:05
3138
2
mmpose推理测试程序
2025-11-25
将 LabelMe 标注的关键点数据转换为 COCO 关键点数据集格式,用于训练 MMPose 等姿态估计模型
2025-11-20
【计算机视觉】基于DINOv3的多任务迁移学习框架:预训练模型加载与下游任务冻结微调技术实现
2025-10-30
针对不同的下游任务(如分类、检测、分割等),可以利用DINOv3 作为特征提取的骨干网络进行训练
2025-10-30
在获取一批图像数据后,需要对这些图像进行清理和筛选 本脚本旨在自动识别并筛选出不符合要求的图像文件,例如损坏的或格式不正确的图片
2025-03-21
Transformer课程笔记
2024-09-19
图像异常检测算法调研-20230607
2024-06-12
人脸识别之insightface使用自己的数据集制作训练文件以及详细说明
2020-12-22
人脸识别之insightface使用自己的数据集制作训练文件以及详细说明
2020-12-22
20.09.01brhy面试题目.pdf
2020-09-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅