无人机助力电力设备螺母缺销智能检测识别,python基于YOLOv7开发构建电力设备螺母缺销高分辨率图像小目标检测系统

传统作业场景下电力设备的运维和维护都是人工来完成的,随着现代技术科技手段的不断发展,基于无人机航拍飞行的自动智能化电力设备问题检测成为了一种可行的手段,本文的核心内容就是基于YOLOv7来开发构建电力设备螺母缺销检测识别系统,首先看下实例效果:

简单看下数据集:

数据集均由无人机航拍进行采集。

这里有两个比较突出的问题,一方面是数据本身都是高分辨率的图像,另一方面是由于这里的检测对象都是非常小的目标,相较于整个图像的面积来说占比极小,对于模型的来说检测识别的难度是很高的。这里我尝试了基于原始的图像来直接开发构建检测模型,发现效果非常不理想,结合高分辨率和小目标这两个关键点,考虑对原始高分辨率图像进行切分处理,切分后数据如下:

简单的实现如下所示:

from PIL import Imagedef split_image(image_path, tile_width, tile_height):image = Image.open(image_path)image_width, image_height = image.sizetiles = []for y in range(0, image_height, tile_height):for x in range(0, image_width, tile_width):box = (x, y, x + tile_width, y + tile_height)tile = image.crop(box)tiles.append(tile)return tiles# 示例用法
image_path = "path/to/your/image.jpg"
tile_width = 100
tile_height = 100sub_images = split_image(image_path, tile_width, tile_height)
for i, sub_image in enumerate(sub_images):sub_image.save(f"sub_image_{i}.jpg")

当然了也可以借助于一些其他工具模块,总之实现自己的目的即可,这里就不再赘述了。

下面以具体的实例来进行说明,实例测试图像如下所示:

切分结果如下所示:

接下来为了确认切分逻辑的正确性,我们依次读取切分得到的子图数据,来整体显示在一张图像上,如下所示:

可以看到是没有问题的,数据处理就到这里,接下来开始构建模型训练阶段。

训练数据配置文件如下所示:

# txt path 
train: ./dataset/images/train
val: ./dataset/images/test
test: ./dataset/images/test# number of classes
nc: 3# class names
names: ['DefectPin', 'Nut', 'NormalPin']

这里一共开发构建了两款不同参数量级的模型,分别是yolov7-tiny和yolov7,接下来我们来整体对比分析模型的性能差异:
【Precision曲线】
精确率曲线(Precision-Recall Curve)是一种用于评估二分类模型在不同阈值下的精确率性能的可视化工具。它通过绘制不同阈值下的精确率和召回率之间的关系图来帮助我们了解模型在不同阈值下的表现。
精确率(Precision)是指被正确预测为正例的样本数占所有预测为正例的样本数的比例。召回率(Recall)是指被正确预测为正例的样本数占所有实际为正例的样本数的比例。
绘制精确率曲线的步骤如下:
使用不同的阈值将预测概率转换为二进制类别标签。通常,当预测概率大于阈值时,样本被分类为正例,否则分类为负例。
对于每个阈值,计算相应的精确率和召回率。
将每个阈值下的精确率和召回率绘制在同一个图表上,形成精确率曲线。
根据精确率曲线的形状和变化趋势,可以选择适当的阈值以达到所需的性能要求。
通过观察精确率曲线,我们可以根据需求确定最佳的阈值,以平衡精确率和召回率。较高的精确率意味着较少的误报,而较高的召回率则表示较少的漏报。根据具体的业务需求和成本权衡,可以在曲线上选择合适的操作点或阈值。
精确率曲线通常与召回率曲线(Recall Curve)一起使用,以提供更全面的分类器性能分析,并帮助评估和比较不同模型的性能。

【Recall曲线】
召回率曲线(Recall Curve)是一种用于评估二分类模型在不同阈值下的召回率性能的可视化工具。它通过绘制不同阈值下的召回率和对应的精确率之间的关系图来帮助我们了解模型在不同阈值下的表现。
召回率(Recall)是指被正确预测为正例的样本数占所有实际为正例的样本数的比例。召回率也被称为灵敏度(Sensitivity)或真正例率(True Positive Rate)。
绘制召回率曲线的步骤如下:
使用不同的阈值将预测概率转换为二进制类别标签。通常,当预测概率大于阈值时,样本被分类为正例,否则分类为负例。
对于每个阈值,计算相应的召回率和对应的精确率。
将每个阈值下的召回率和精确率绘制在同一个图表上,形成召回率曲线。
根据召回率曲线的形状和变化趋势,可以选择适当的阈值以达到所需的性能要求。
通过观察召回率曲线,我们可以根据需求确定最佳的阈值,以平衡召回率和精确率。较高的召回率表示较少的漏报,而较高的精确率意味着较少的误报。根据具体的业务需求和成本权衡,可以在曲线上选择合适的操作点或阈值。
召回率曲线通常与精确率曲线(Precision Curve)一起使用,以提供更全面的分类器性能分析,并帮助评估和比较不同模型的性能。

【F1值曲线】
F1值曲线是一种用于评估二分类模型在不同阈值下的性能的可视化工具。它通过绘制不同阈值下的精确率(Precision)、召回率(Recall)和F1分数的关系图来帮助我们理解模型的整体性能。
F1分数是精确率和召回率的调和平均值,它综合考虑了两者的性能指标。F1值曲线可以帮助我们确定在不同精确率和召回率之间找到一个平衡点,以选择最佳的阈值。
绘制F1值曲线的步骤如下:
使用不同的阈值将预测概率转换为二进制类别标签。通常,当预测概率大于阈值时,样本被分类为正例,否则分类为负例。
对于每个阈值,计算相应的精确率、召回率和F1分数。
将每个阈值下的精确率、召回率和F1分数绘制在同一个图表上,形成F1值曲线。
根据F1值曲线的形状和变化趋势,可以选择适当的阈值以达到所需的性能要求。
F1值曲线通常与接收者操作特征曲线(ROC曲线)一起使用,以帮助评估和比较不同模型的性能。它们提供了更全面的分类器性能分析,可以根据具体应用场景来选择合适的模型和阈值设置。

【loss对比】

可以看到:在各个指标对比上yolov7全面碾压的态势超越yolov7-tiny。

接下来详细看下yolov7的结果详情:
【混淆矩阵】

【训练可视化】

【Batch计算实例】

实例推理效果如下所示:

可以看到:目标对象区域非常非常的小,如果不仔细观察可能都会漏掉了。

感兴趣也都可以参照本文的建模处理思路来进行构建自己的模型,相信会有一定的收获。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/236157.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux 系统渗透提权-Server2204

B-3:Linux 系统渗透提权 任务环境说明: 服务器场景:Server2204(关闭链接) 用户名:hacker 密码:123456 1.使用渗透机对服务器信息收集,并将服务器中 SSH 服务端口号作为 flag 提 交; Flag:2283/tcp

Azure Machine Learning - 在 Azure 门户中创建演示应用

目录 准备环境启动向导配置搜索结果添加自动提示功能添加建议创建、下载和执行清理资源 使用 Azure 门户的“创建演示应用”向导来生成可下载的“localhost”样式的 Web 应用,该应用在浏览器中运行。 根据其配置,生成的应用在首次使用时就能正常运行&…

Wireshark之Intro, HTTP, DNS

源码地址👇 moranzcw/Computer-Networking-A-Top-Down-Approach-NOTES: 《计算机网络-自顶向下方法(原书第6版)》编程作业,Wireshark实验文档的翻译和解答。 (github.com) 目录 🌼Introduce 🎧前置 🎧过…

HTML—列表、表格、表单

1、列表 作用:布局内容排列整齐的区域 列表分类:无序列表、有序列表、定义列表 1.1 无序列表 作用:布局排列整齐的不需要规定顺序的区域 标签:ul 嵌套 li,ul 是无序列表,li 是列表条目 注意事项&#…

Vue中 env 文件是如何读取的? 优先级?

Vue中 env 文件是如何读取的? 优先级? start 今天来研究一下 Vue 中 env 是如何读取的。跟着我的脚步来学习一下吧。作者:番茄;编写时间:2023/11/30 前情提要 env,使用方式是process.env。简单来说&…

redis相关题

1 什么是Redis Redis(Remote Dictionary Server) 是⼀个使⽤ C 语⾔编写的,开源的(BSD许可)⾼性能⾮关系型(NoSQL)的键值对数据库。Redis 可以存储键和五种不同类型的值之间的映射。键的类型只能为字符串,…

vue3随机生成8位字母+数字

// 随机生成8位字母数字 export const autoPassword: any () > {// console.log("自动生成");//可获取的字符串const chars ABCDEFGHIJKLMNOPQRSTUVWSYZabcdefghijklmnopqrstuvwsyz0123456789;const list [];//通过随机获取八个字符串的索引下标for (let i 0;…

阅读文献总结2023

阅读文献基于卷积神经网络多源融合的网络安全态势感知模型 阅读文献 基于卷积神经网络多源融合的网络安全态势感知模型 题目基于卷积神经网络多源融合的网络安全态势感知模型文章信息:年份2023发文单位山西财经大学收录刊会计算机科学 (北大核心&#…

【新品上市】启扬储能管理平板,打造储能管理新模式,助力全场景储能数智化升级!

随着可再生能源的快速发展,储能技术的应用日益广泛,储能系统成为解决可再生能源波动性和不可控制性的关键环节。储能系统通过实时监测、数据分析、远程控制等智能化功能,实现能量的高效利用和系统的稳定运行。 启扬智能推出 工业级储能管理平…

linux 消息队列apache-activemq服务的安装

1.下载 官网下载地址:https://activemq.apache.org/ 操作如下: 2. 解压 执行:tar -zxvf apache-activemq-5.18.3-bin.tar.gz -C /user/ 3. 进入目录 执行:cd /user/apache-activemq-5.18.3 4.修改配置文件 执行&#xff1…

《合成孔径雷达成像算法与实现》_使用CS算法对RADARSAT-1数据进行成像

CSA 简介:Chirp Scaling 算法 (简称 CS 算法,即 CSA) 避免了 RCMC 中的插值操作。该算法基于 Scaling 原理,通过对 chirp 信号进行频率调制,实现了对信号的尺度变换或平移。基于这种原理,可以通过相位相乘代替时域插值…

11-22 SSM3

书城分页查询 使用mybatis分页插件: 请完成登陆注册 -> 跳转到首页 解决前端上架时间点击切换 以及侧边栏点击由背景颜色的改变 完成超链接的绑定点击时间 -> jquery $(document).ready(function() { // 初始化上架时间状态为 true(上架&…