尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

电力巡检缺陷检测实战:从数据集清洗到YOLOv8训练优化

电力巡检缺陷检测实战:从数据集清洗到YOLOv8训练优化 简介目标检测是计算机视觉中的基础任务旨在从图像中定位并识别物体类别。在工业实际场景中电力巡检图像分析面临目标尺寸小、背景复杂、样本不均衡等典型挑战传统人工审核效率低且易漏检。借助YOLOv8等深度学习检测框架配合系统化的数据清洗、类别重采样与增强策略可有效提升绝缘子自爆、螺栓缺失等缺陷的检出精度。本文围绕电力巡检智能缺陷检测数据集从数据解压、格式转换、模型训练到小目标专项优化展开完整实践并总结了常见问题的排查经验为同类工业视觉应用提供了一套可落地的工程方法论。 前阵子整理硬盘翻出一个名叫“图像检测电力巡检智能缺陷检测数据集.7z”的压缩包。这个包有4个多G是我去年从某个开源社区拉下来的里面是几百张无人机巡线拍回来的杆塔照片以及对应的缺陷标注文件。当时拉下来只是随手存着最近做项目正好需要训练一个电力场景的缺陷检测模型才真正把这包数据用起来。这一用不要紧踩了不少坑也把整个流程摸了个透。先给没接触过这个领域的朋友说清楚电力巡检智能缺陷检测就是让AI自动看无人机或直升机巡线拍回来的图像把绝缘子自爆、螺栓缺失、销钉脱落、鸟巢、防震锤滑移这类缺陷找出来。以前这些全靠人工一张张看一个班组一天看几千张图眼睛都看花漏检率还不低。有了图像检测模型这活就能交给机器干人只需要复核机器标出来的可疑区域。这个数据集就是专门用来训练这类模型的。这篇东西我打算从拿到压缩包开始到数据清洗、格式转换、YOLOv8训练、小目标专项优化再到常见问题排查完完整整走一遍。无论你是刚入门想做目标检测的新手还是已经在做工业视觉但没碰过电力场景的老手这篇都能给你省不少时间。1. 数据集全景解读先想清楚检什么再动手跑模型1.1 拿到这份数据先搞清楚要检什么这个数据集的目录结构一眼看去挺规整的典型的目标检测数据集布局images文件夹放原始图像labels文件夹放标注文件。但真正拉开看里面的内容才发现门道不少。类别大概有这么几类绝缘子自爆、绝缘子缺失、防震锤滑移、防震锤缺失、鸟巢、螺栓缺失、销钉脱落、锈蚀、异物悬挂。每一类都是电力运维里的真实痛点不是实验室里拍着玩的。把这些类别对应到实际场景就很好理解了。绝缘子串是挂在杆塔上的一串串瓷瓶或玻璃瓶作用是绝缘和支撑导线高温暴晒、雷击、鸟啄都可能导致它破裂行业里叫“自爆”。一片自爆的绝缘子在航拍图里就是一个很小的白色亮点裂口人眼不放大根本看不清。防震锤是装在导线上的小锤子用来消除风振动它如果滑移了位置就起不到防振作用时间长了导线会疲劳断股。鸟巢就更直观了鸟类在杆塔上搭窝遇到阴雨天鸟巢潮湿很容易导致绝缘子闪络放电造成线路跳闸。这些缺陷的共同特点是目标小、对比度低、背景复杂。一张5472x3648的无人机航拍原图绝缘子自爆的区域可能只有几十个像素属于典型的小目标检测问题。后面我会专门讲针对这类场景怎么做优化。1.2 数据集的“数据质量”比“数据量”更重要这个数据集整体质量还算不错但也不是没毛病。我统计了一下图片分辨率大多数是4K到5K的高清航拍标注框是严格的矩形框每个标注都有类别标签。但有几张图明显是不同设备拍的色彩风格、光照条件差异很大还有个别标注框明显偏大把背景也框进去了。优点真实巡检场景采集包含不同天气、不同时段、不同背景泛化性底子好。缺点类别数量不均衡鸟巢样本非常多螺栓缺失和锈蚀相对少部分图像光照极暗肉眼都看不清细节。风险如果直接拿原始数据训练模型大概率会对样本多的类别过拟合对样本少的类别欠拟合。我的建议是先做一轮数据摸底统计每个类别的样本数、标注框尺寸分布、每张图的标注密度再决定是直接训练还是先做增广和重采样。这步工作看着费时间实际上能帮你避开后面90%的“模型效果差”问题。2. 7z解压与数据工程处理训练前必做的那些脏活累活2.1 7z格式处理的正确姿势先说怎么把数据弄出来。这个包叫“.7z”用的是7-Zip的高压缩比算法比zip能再压缩不少适合存这种动辄几个G的图像数据集。解压工具我推荐直接用7-Zip官方版或者Linux下用p7zip。Windows下最简单右键选7-Zip解压到指定文件夹。Linux命令行的话用这个7z x 图像检测电力巡检智能缺陷检测数据集.7z -o./power_inspection如果是压缩包文件有密码或者在解压中遇到“Cannot open file as archive”这类报错先检查是不是下载过程中文件损坏了用哈希校验一遍比较稳妥sha256sum 图像检测电力巡检智能缺陷检测数据集.7z把这个哈希值和发布页的哈希值对一下一致再解压。文件损坏的解压出来图片会花掉标注文件也会缺行后面训练的时候报错会让你怀疑人生。解压之后的第一步我习惯先随手看几张图和对应的标注文件确认图片和标签对得上号。可以用轻量级看图工具打开原始图再打开标注文本肉眼扫一眼坐标是否在图像范围内。这一步花不了三分钟但能避免后面对着一个错位的数据集白训一版模型。2.2 摸清目录结构和标注格式解压后目录大概是这样的power_inspection/ ├── images/ │ ├── train/ │ │ ├── IMG_0001.jpg │ │ ├── IMG_0002.jpg │ │ └── ... │ └── val/ │ ├── IMG_0501.jpg │ └── ... ├── labels/ │ ├── train/ │ │ ├── IMG_0001.txt │ │ ├── IMG_0002.txt │ │ └── ... │ └── val/ │ └── IMG_0501.txt ├── classes.txt ├── train.txt ├── val.txt └── README.mdlabels里面是YOLO格式的txt文件每个txt和同名图片一一对应。文件里每行代表一个目标五个数字依次是类别id、归一化中心x、归一化中心y、归一化宽、归一化高。举个例子0 0.5321 0.4187 0.0123 0.0456这行的意思就是“类别0比如绝缘子自爆的框中心在图像53.21%宽度、41.87%高度位置框的宽是整张图宽的1.23%高是整张图高的4.56%”。用归一化坐标的好处是模型不关心图片具体尺寸训练时无论输入640还是1280坐标都能直接映射回去。YOLO格式最方便的地方在于它就是一个纯文本随便用脚本就能处理。解析、转换、过滤、统计用Python几行代码就搞定不需要像COCO的json那么麻烦。2.3 数据清洗与重采样决定模型上限的关键步骤结合这个数据集的实际分布我做了三件事第一筛掉没有标注的空白图。原始数据集里有一部分图片没有任何目标这类图训练时没有loss贡献但会增加无效计算。我写了个脚本统计每个txt文件的非空行数把空标注的图片移到了no_objects文件夹。不过我建议保留这些空白图放到验证集里用来测模型的误检率——如果模型在没有任何缺陷的图上凭空检出了缺陷那就是误检这个指标工业落地时非常关键。第二按类别重采样。鸟巢样本可能有几百个但锈蚀可能只有几十个。直接训练的话模型会严重偏向鸟巢。我的做法是对少样本类别做过采样复制样本并做数据增强旋转、翻转、亮度抖动、mosaic让每类的有效样本数量大致平衡。第三检查标注框是否越界。YOLO格式里坐标是0到1的归一化值但偶尔有标注框中心没问题、宽高却超出边界的比如x_center0.95, w0.1那框右边界就跑到1.05了。虽然YOLO训练时会自动clip但最好还是在预处理阶段就修正掉。import os import shutil from collections import Counter label_dir labels/train class_counts Counter() for f in os.listdir(label_dir): if not f.endswith(.txt): continue with open(os.path.join(label_dir, f)) as fp: lines fp.readlines() for line in lines: cls_id int(line.strip().split()[0]) class_counts[cls_id] 1 print(class_counts)拿到类别分布数据后再看哪些类目样本特别少然后写个augment脚本把少样本类别对应的图片复制几份分别做90度旋转、水平翻转、加高斯噪声生成新图片和新标注。对于YOLO格式来说水平翻转对应的标注变换很容易算新的x_center 1 - 原x_centery_center、w、h都不变。90度旋转则要把x和y互换、w和h互换这个公式也建议记在笔记里后面自己切图或做增广经常用。3. YOLOv8训练自己的数据集从环境准备到结果评估的完整实操3.1 环境准备与数据整理YOLOv8现在是Ultralytics主推的检测框架不管是训练、验证还是导出都是命令一行搞定对新手非常友好。这个数据集配套的标注就是为YOLO准备的所以直接用YOLOv8最省事。环境安装很简单创建一个干净的conda环境装好PyTorch和ultralytics就行conda create -n yolo python3.10 -y conda activate yolo pip install torch torchvision --index-url https://download.pytorch.org/whl/cu118 pip install ultralytics然后准备数据配置。在数据集根目录下建一个data.yaml内容大致如下path: /path/to/power_inspection train: images/train val: images/val nc: 9 names: 0: insulator_break 1: insulator_missing 2: damper_slip 3: damper_missing 4: bird_nest 5: bolt_missing 6: pin_shed 7: corrosion 8: foreign_object这里要注意classes.txt里的顺序必须和data.yaml里的类别顺序完全一致。训练脚本是按数字id读类别名的顺序一旦错了训练出来的模型推理时标签就全对不上意思了。拿到的数据集如果classes.txt写的是0、1、2的索引顺序直接用就行如果它是按字母序排列的那就要先确认labels里txt的第一列数字到底对应哪个名字。3.2 超参数选择不是所有默认值都适合电力场景YOLOv8官方默认的输入尺寸是640x640。但对于电力巡检这种原图4K甚至5K的高清图如果直接resize到640绝缘子自爆这种目标就会缩小到几个像素别说检测了人眼都难分辨。所以这里我建议直接把imgsz拉到1280甚至1536。你可能会担心显存爆掉。这个确实是要权衡的以一张RTX 3090 24G为例imgsz1280、batch16是能跑起来的。如果显存只有12G可以把batch降到8或者用yolov8s这种小模型。模型规模方面我推荐先从yolov8m开始。yolov8n和yolov8s虽然跑得快但对小目标的特征表达能力不够yolov8l和yolov8x精度更高但训练时间和推理速度都上去了。工业落地经常要在边缘设备上跑速度和精度的平衡很重要yolov8m是个比较稳的起点。训练命令yolo detect train datadata.yaml modelyolov8m.pt imgsz1280 epochs150 batch8 device0几个关键的参数说明一下这些参数是我实际试出来的patience20训练过程loss连续20个epoch不下降就早停避免白白烧电。hsv_h0.015, hsv_s0.7, hsv_v0.4这是YOLOv8默认的色彩增强参数电力场景本身颜色比较单调可以适当加强色彩增强帮助模型适应不同时段的光照。mosaic1.0mosaic增强把四张图拼在一起训练对小目标检测很有帮助因为它相当于在一个batch里塞入了更多的小目标样本。但这个参数在最后10个epoch建议关掉否则模型可能会对拼出来的伪影过拟合。fliplr0.5水平翻转。电力设备是对称的水平翻转不会改变语义可以放心用。scale0.5, translate0.1这两种增强对小目标也友好但别开太大电力巡检图中目标和背景的尺度差异已经很大了再猛缩容易让模型学偏。3.3 训练过程监控与结果评估训练跑起来之后不要只盯着终端看loss。我一般会开TensorBoard实时看训练曲线重点看train_loss和val_loss的下降趋势以及PR曲线的变化。YOLOv8训练完会自动在runs/detect/train目录下生成大量可视化结果包括confusion_matrix.png混淆矩阵能直观看到哪些类别互相混淆严重。results.pngloss曲线、mAP曲线、PR曲线汇总在一张图上。val_batch0_pred.jpg验证集第一张图的预测可视化随机贴几张预测结果看框的贴合程度。评估时最核心的指标不是整体mAP而是每个类别的AP。电力巡检场景中鸟巢这种大目标AP很容易到0.95以上但螺栓缺失、销钉脱落这类小目标AP可能只有0.6甚至更低。我遇到过最极端的情况是整体mAP0.5有0.82但螺栓缺失类的AP0.5只有0.31这种模型根本没法用因为螺栓缺失恰恰是运维最关注的缺陷类型之一。所以在看结果时一定要单独拉出小目标类别的AP来判断模型是否达标。如果小目标AP明显偏低就说明需要走下面第四节讲的专项优化路线了。4. 小目标专项优化电力巡检场景的硬骨头怎么啃4.1 为什么电力场景的小目标这么多一张5472x3648的航拍图里一个螺栓的宽度可能只有30到50个像素。YOLOv8默认的检测头有P3、P4、P5三个尺度P3对应8倍下采样。imgsz1280时P3特征图是160x160每个网格负责8x8像素区域一个3x3的螺栓框落在特征图上大约只有4x4个像素。如果换成imgsz640螺栓在P3特征图上就只剩2x2个像素检测头几乎提取不到有效特征。这就是电力巡检场景小目标检测难的本质下采样倍数太大小目标在特征图上的“足迹”太小。解决思路主要有三条提高输入分辨率让目标在特征图上占更多像素。改进网络结构增加更浅层的高分辨率特征图P2层。图像切分把大图切成多块小图分别检测再合并结果。对大多数项目来说先做第一条和第三条性价比最高不用改网络结构纯工程手段就能明显涨点。4.2 图像切分与滑窗推理最实用的“穷办法”滑窗检测的思路不复杂把一张5472x3648的大图按512x512或640x640的窗口、带一定重叠率切成几十张小图分别送进模型推理再把所有检测框映射回原图坐标合并起来。这个方法的原理是原图resize到640时绝缘子自爆只有几个像素模型认不出来但把原图切成小块后每一小块里的绝缘子自爆相对这一小块图的比例就大多了相当于不损失分辨率地获得了“放大”效果。我用Ultralytics官方推理脚本的变体做过一版滑窗推理基本思路如下import numpy as np from ultralytics import YOLO def sliding_window_infer(model, img, window_size640, stride480): h, w img.shape[:2] detections [] for y in range(0, h, stride): for x in range(0, w, stride): crop img[y:ywindow_size, x:xwindow_size] results model.predict(crop, imgszwindow_size, conf0.25) for box in results[0].boxes: x1, y1, x2, y2 box.xyxy[0].tolist() detections.append([ x x1, y y1, x x2, y y2, box.conf[0].item(), int(box.cls[0].item()) ]) # NMS合并重叠框 from ultralytics.utils.ops import non_max_suppression return non_max_suppression(np.array(detections, dtypeobject))核心点是窗口叠加重叠率。我习惯取stride为窗口大小的3/4比如512窗口就每隔384像素滑一次这样相邻窗口有约25%重叠目标在窗口边缘被切断的概率会小很多。合并检测框时重叠框用NMS过滤阈值设0.4左右比较合适太狠会把真正的重复检测删掉太宽松又留一堆重复框。这个方法对小目标AP的提升非常明显我实测同一个模型直接整图推理时螺栓缺失AP0.5只有0.31改成滑窗后能到0.58。缺点就是慢一张大图要推理几十次适合离线巡检分析不太适合机载实时检测。如果想在实时场景下用就得靠T4、TensorRT量化和批处理优化来补时间。4.3 单类检测与老模型方案有时候不做多分类反而更强这个数据集里还有一个很有意思的实践方向单独挑出某一类来做检测。比如只训练“绝缘子自爆”这一类缺陷把其他类别的标注全部屏蔽让模型变成一个纯粹的二分类目标检测器。为什么这样反而有效因为多分类检测器在共享特征提取层时不同类别之间会有特征竞争。绝缘子自爆和绝缘子缺失是两个很相近的类别一个框里既有自爆又有缺失的区域模型容易犹豫。只做单类检测模型不需要区分“这个坏的是自爆还是缺失”只需要回答“这地方有没有异常”任务简单了专一性就上来了。再加上如果标注做成了“统一标成defect”的格式相当于手动合并了相似类别模型只需要找出缺陷就行。单类检测的方案在部署上也有优势。电力运维的线上流程通常是模型先判断“有没有异常”有异常再把切出来的小图交给专门的分类模型或者人工判断具体是什么缺陷。两级级联架构比一个模型硬扛多分类要稳得多。老一些的模型方案在这个场景也不一定就过时。YOLOv5的6.0版本虽然比YOLOv8早但它在小目标检测上有一个很实用的参数anchor自动调整。YOLOv8已经去掉anchor超参了但你如果用的是YOLOv5训练前一定要把autoanchor跑一遍它会根据你数据集的真实框尺寸重新聚类anchor。电力缺陷检测的目标尺寸分布跟COCO数据集完全不一样COCO的anchor初始值不适用autoanchor能自动适配是个省心的福利。我记得有一次用YOLOv5x跑这个数据把小目标增强和autoanchor都打开类别少的缺陷也单独做复制重采样最后整体mAP0.5到了0.89虽然没上什么花哨的注意力机制但就是能打。老模型只要数据工程做到位完全能打这也是我一直强调“先看数据再选模型”的原因。4.4 旋转目标检测什么时候需要上mmrotate电力场景还有一个特别让人头疼的特征绝缘子串在图像里往往不是水平的而是斜着排成一串。常规的轴对齐矩形框HBB在框这种长条斜目标时会框进大量背景两个框之间容易互相重叠干扰。这时候就需要旋转目标检测OBB用带角度的旋转框来精确框住目标。mmrotate是OpenMMLab出的旋转框检测工具箱主流的旋转检测器比如Rotated RetinaNet、ROI Transformer、S2ANet都有实现。数据集格式上DOTA格式是最常见的旋转框标注格式标注里包含x1, y1, x2, y2, x3, y3, x4, y4四个角点的坐标以及类别名。如果要用mmrotate训练得先把YOLO格式的标注转成DOTA格式。这个转换主要靠几何计算从YOLO归一化的中心点、宽高和角度可以直接推算出四个角点的坐标。计算公式不复杂但要注意角度定义的方向和坐标系DOTA的角点是顺时针还是逆时针网上很多人在这里踩坑。我建议转换完成后专门写个可视化脚本把旋转框画到图上一张张人工抽查确认框的方向都一致这步省不掉。旋转框检测的定位精度比普通水平框高很多但也确实更重、更复杂。要不要上OBB我的判断标准是你关心目标的排列方向、需要精确框出目标的姿态还是只需要知道“这个区域有缺陷”如果是后者HBB加上滑窗推理已经够用没必要把工程复杂度拉上去。4.5 数据增强技巧把有限的样本榨出更多价值针对小目标场景数据增强的优先级跟常规场景不太一样。我的经验排序是拼接类增强mosaic、copy-paste对电力缺陷检测最有效因为它把小目标放大到更自然的尺寸上下文里。尺度抖动scale jittering训练时随机把图放大或缩小一定比例模拟不同飞行高度拍摄的效果。随机裁剪random crop直接在大图上随机裁剪出子图训练配合原图resize加倍增加小目标样本。色彩抖动hsv变换模拟不同季节、不同时段的光照差异。翻转水平翻转可以放心用垂直翻转对电力场景不一定好因为部分杆塔结构上下不对称。有人可能会提GAN生成缺陷样本来补数据。这个技术上可行但实际工程里我建议谨慎。生成的图像如果风格和真实巡检图差异大训练出来的模型在真实场景上反而更差得不偿失。不如先把现有的数据用copy-paste增强榨干再谈别的。5. 常见问题与排查技巧实录踩坑后的避坑指南5.1 数据侧问题训练到一半报错说图片路径找不到这是我见过最多的一个问题。典型的原因是你把数据集移动了位置但data.yaml里的path还是原来的绝对路径。YOLOv8的data.yaml是可以直接把path改成相对路径的建议直接用相对路径或者训练前先跑一遍验证脚本确认所有图片都在。还有一个问题某些图片文件本身是损坏的。下载解压过程中可能有个别jpg文件损坏了OpenCV读出来是None。这类问题会在训练时随机报错时好时坏非常烦人。我的排查思路是先写个脚本遍历所有图片用cv2.imread读一下读出来是None的图片直接挑出来删掉同时把它对应的txt也删掉。标注文件里偶尔会有空行、多余空格等脏数据。YOLO训练时遇到格式错误的txt会直接报错退出但好在报错信息会指出具体是哪个文件哪一行根据报错快速定位修复就行。建议在数据预处理阶段统一做一遍格式化把行末空格去掉空行删掉。5.2 训练侧问题loss降不下去或者训练震荡这个在电力场景里最常见的原因是类别严重不均衡。如果某类缺陷样本极少模型几乎学不到这个类的特征反映到loss曲线上就是val_loss不降反升。处理方法上面说过了重采样、过采样、换更小的模型、换更长的训练周期都值得试。mAP整体不错但小目标AP低这个前面重点讲过优先试滑窗推理和加大输入分辨率。如果加了滑窗推理还是不行再考虑换P2检测头方案或者上旋转框检测。还有一个容易忽视的问题是数据泄露。我见过有同事把训练集和验证集划分得太随意同一基杆塔不同角度的图片被同时分到了train和val里导致验证指标虚高一到现场新数据上就崩。一定要按“同一设备ID下的同一基杆塔”为粒度来划分数据保证一个杆塔的所有图片只在train或只在val里这个细节非常关键。5.3 推理与部署侧问题模型在验证集上mAP挺高到了实际巡线照片上漏检一堆。这种问题大多是“域差距”造成的训练数据可能偏向晴朗白天光照好的图而现场巡检经常有逆光、阴天、雾霾天气。应对思路有三个一是收集现场数据持续做增量训练二是推理前做图像质量增强比如CLAHE对比度增强、去雾算法三是部署时调低置信度阈值宁多检也别漏检让人工复核来兜底。推理速度太慢达不到实时要求。可以依次尝试TensorRT FP16量化、减小输入尺寸、换更小的模型、批量推理。我的一个测试案例YOLOv8m在imgsz1280下PyTorch直接推理一张要180ms转TensorRT FP16后降到70ms直接达到边缘设备的实时性要求。如果硬件是Jetson系列NVIDIA官方提供的TensorRT引擎配合DeepStream还有进一步的优化空间。我把高频问题整理成了一个速查表方便直接对着排查问题现象可能原因排查方向训练报错找不到图片路径data.yaml路径配置错误检查path字段改相对路径跑路径校验脚本训练卡在第一个epoch不推进GPU显存不足或cuda版本不匹配检查nvidia-smi看显存占用降低batch或换CUDA版本解码图片报错图片文件损坏遍历读图把读不出图的文件删掉loss震荡val_loss越来越高类别不均衡 / 学习率过大重采样 调整lr把lr降到原来的1/5试试小目标AP低输入分辨率不足 / 特征图下采样太多提imgsz、做滑窗推理、换P2头模型实拍漏检多域差距 / 置信度阈值太高采集现场数据补充训练降conf到0.15~0.2推理慢模型太大 / 未做推理优化TensorRT量化换小模型缩小imgsz一个目标被重复框多个框NMS阈值太低把NMS的IoU阈值从0.45调到0.5到0.6之间还有一个我在实际部署时遇到很有意思的问题无人机拍回来的原图带了GPS经纬度水印和时间戳这不是烤在像素上的文字而是EXIF信息模型推理时不会受影响。但如果你用了一些图像增强库可能把EXIF里的旋转角搞丢导致图片在手机上看到是正的模型读进去却变成横的。处理办法很简单预处理阶段统一按EXIF方向旋转图片再保存成标准格式。最后再说几句实在话这个数据集我从拿到手到跑出能上线的模型前后折腾了两周多大部分时间其实花在数据清洗和反复调参上真正跑训练的时间反而不多。我也越来越觉得像电力巡检这种领域的智能缺陷检测能力和经验的差距不在模型选得多花哨而在你对数据、对场景细节的把握。根据我个人的体会有几个小点特别想提醒你第一拿到任何数据集先别急着开训花半天时间把每张图的标注一个个拉出来看一遍数一数每个类别有多少框、框的分布是稀疏还是密集、有没有明显标错的类别。这个工作很枯燥但它是你能不能在模型“犯错”时一眼识别出原因的基础。第二训练时用早停机制但别只盯着val loss。我经常同时盯混淆矩阵如果某个类别反复被另一个类别覆盖最好单独把那个类调出来分析数据分布和标注质量。第三部署时有一个常被忽略的细节就是“空图”的置信度分布。上线前找几百张完全没有缺陷的正常巡检图跑一遍模型统计它在这些图上的最高置信度。如果模型普遍给出0.4以上的置信度输出说明模型误检风险很高需要重新调阈值或者补充负样本训练。最后再分享一个小技巧训练完模型之后把你可视化预测结果里那些漏检、误检的典型图片整理成一个文件夹隔几天翻一次。这个动作看起来很简单但每次翻都有新发现很多优化灵感就是从这些失败样本里冒出来的。数据、模型、场景这三者之间的默契是靠一次次对着难例较劲磨出来的。本文还有配套的精品资源点击获取
返回列表