准确率达 91.74%!东南大学提出光伏电池缺陷检测模型,首次引入神经结构搜索

乘着从全球吹来的「绿色发展、低碳转型」东风,光伏 (photovoltaic, PV) 产业自进入 21 世纪以来,便以令世人惊叹的速度迅猛向前发展。在我国,光伏发电更是呈现出前所未有的活力。根据 2023 年 4 月国家能源局公布的当年 1-3 月份全国电力工业统计数据,截止当年 3 月底,我国光伏累计装机量已超越水电,成为全国第二大电源。

随着光伏发电的规模化应用,如何保障光伏供电稳定以及可持续发展也成为行业研究的重要课题。光伏组件是光伏的基本单元,受生产链条较长、应用场景复杂等多种外因影响,在其制造、运输、安装等过程中都极易发生模块破损,如果这些缺陷组件投入到实际运行中,极大可能造成整个供电系统功率降低甚至出现安全问题。因此,针对光伏的现场维护和故障诊断要求正变得越来越高。

目前,较为传统的 PV 缺陷检测手段包括电流-电压 (I-V) 曲线 (current–voltage (I–V) curve)、红外热成像 (IRT) 等,但囿于识别精度限制,上述方法均无法有效识别微裂纹等潜在风险因素。卷积神经网络 (CNN) 凭借其强大的特征捕获能力,结合基于高分辨率的电致发光 (electroluminescence, EL) 成像,正在成为 PV 缺陷检测的主流方法。不过基于 CNN 的模型参数通常较大,且对硬件资源要求严格,因此很难在实际的工业项目中得到大规模部署

为了同时满足工业领域对缺陷检测的精度和速度要求,来自东南大学自动化学院的张金霞教授团队,提出了一种基于神经结构搜索 (neural architecture search, NAS) 和知识蒸馏 (Knowledge Distillation) 的新型轻量级高性能光伏电池电致发光 (EL) 图像缺陷自动检测模型

目前,该研究成果已发布在 arXiv 上,标题为「A lightweight network for photovoltaic cell defect detection in electroluminescence images based on neural architecture search and knowledge distillation」。

研究亮点

  • 提出一种用于光伏电池缺陷检测的轻量级模型,准确率高达 91.74%;
  • 首次将 NAS 引入到光伏电池缺陷检测领域,用于自动化轻量级网络设计,减少了手工设计的工作量;
  • 引入知识蒸馏充分利用了各种先验知识 (prior knowledge),且通过实验证明了该设计对提高缺陷光伏电池识别能力的有效性。

在这里插入图片描述

论文链接:
https://arxiv.org/abs/2302.07455
关注公众号,后台回复「光伏电池」即可下载论文

数据集和数据增强

本次研究的数据集为一个公共光伏电池数据集,含 2,624 张分辨率为 300 x 300 像素的光伏电池 EL 图像,包括单晶和多晶两种类型。研究团队以 0.5 为阈值,将样本分为功能样本和缺陷样本,将其中 75% 的图像,即 1,970 张图像随机选择为训练集,剩余的 654 张图像为测试集。训练集进一步被平分为搜索训练集与搜索测试集。所有图片的大小均调整为 150 x 150 像素。

在这里插入图片描述

数据集划分

数据增强是在小幅度增加数据的情况下,从原始数据中获得更多的表征,提升原始数据的质量,从而帮助模型减少过拟合,并增强鲁棒性。数据增强操作包括随机水平翻转、随机垂直翻转、在 (-2°,2°) 范围内随机旋转、在 {0°、90°、180°、270°} 范围内随机旋转和随机仿射变换。

该研究提出的模型由 Normal cells 和 Reduction cells 堆叠而成,通过搜索算法得到的内部结构如下图所示:

在这里插入图片描述

基于公共PV数据集上搜索得到的内部结构

一种基于 NAS 和知识蒸馏的缺陷检测方法

该轻量级网络设计架构如下图所示。研究人员通过 NAS 算法在设计好的搜索空间中自动获得了轻量级网络,并通过知识蒸馏充分利用了现有预训练大规模模型获取的先验知识,从而提高模型性能。

在这里插入图片描述

轻量级网络设计架构

首先,研究团队采用了基于连续梯度的 NAS 框架 DARTS 来自动设计用于光伏电池缺陷检测的模型,基于 DARTS 的快速搜索特性,研究人员进一步考虑了 PV 缺陷的视觉多尺度特征,设计了合适的搜索空间来增强对不同缺陷尺寸的特征识别。

在这里插入图片描述

为轻量级缺陷分类网络设计的搜索空间

轻量级网络所采用的搜索空间主要由两种单元结构堆叠而成,即 5 个 normal cell 和 4 个 reduction cell。设置 normal cell 是为了保持输入的大小,设置 reduction cell 是具有下采样的功能。如上图所示,每个单元融合前两个单元尺度不同的两个特征,第一个 normal cell 将相同的特征作为两次输入。

在这里插入图片描述

轻量化网络的详细结构

前 3 个 reduction cell 执行下采样和信道扩展,最后一个 reduction cell 的信道数量保持不变。所提出的轻量级网络将输入的光伏电池分类为功能正常或有缺陷。

其次,知识蒸馏是最有效的模型压缩方法之一,采用 Teacher-Student 模式,能够将知识从 Teacher 模型转移到 Student 模型。那些无法利用预训练模型中先验知识的网络架构,可以通过学习 Teacher 网络的知识来提高性能。在该实验中,由于轻量级网络只能从头开始训练,通过使用知识蒸馏,可以更好地利用先验知识进行训练。

研究人员转移了 4 种不同的知识先验——注意力信息、特征信息、logit 信息和面向任务的信息,以增强对光伏电池缺陷检测任务的蒸馏效果。

在这里插入图片描述

知识蒸馏概览

模型性能出众

研究团队将其所提出的轻量级模型与 Teacher 模型以及其他研究进行了比较,并在私有数据集上进行了测试,进一步证明该网络架构的有效性。

研究团队将该模型与手动设计的 6 个神经网络和公开数据集上的 Teacher 模型,在 200 个相同的 epoch 下进行了对比,结果如下图所示:

在这里插入图片描述

准确度/平衡准确度/精确度/召回率/F1分值的对比

结果显示,该研究提出的轻量级模型在测试集上的精度达到了 91.74%,甚至超过了 Teacher 模型水平的 1.22%。同时,该研究所提出的模型参数量更小,相比部分经典大模型所用资源更少,更易部署在实际的终端设备上。

在这里插入图片描述

上图为模型在识别缺陷光伏电池和功能正常的光伏电池上的准确率对比,研究人员所提模型在缺陷光伏电池识别上的正确率达到 86.28%,远超其他方法。

由此得出结论,与其他手动设计的模型相比,研究团队提出的模型不仅能够通过 NAS 算法自动搜索,减少了工作量,同时还能够在相对轻量级的架构下取得更高性能,证明了所提方法的有效性

为进一步评估所提模型的性能,研究团队又提供了单晶或多晶 PV 上得性能对比,如表 4 所示:

在这里插入图片描述

左表:相同数据增强条件下, ELPV 公共数据集中仅单晶光伏电池与其他方法的对比
右表:相同数据增强条件下, ELPV 公共数据集中仅多晶光伏电池与其他方法的对比

在单晶 PV 电池上,所提模型的每一项指标都达到了最高水平,至于更难处理的多晶模型,该模型也远超其他模型。

效率和泛化能力

在终端设备上的部署需要综合考虑模型规模和计算量,为了测试效率,研究团队在 CPU 平台 (Intel i9-10980XE 24.75M Cache, 3 GHz) 上对该模型进行了评估。

在这里插入图片描述

CPU平台上的效率比较

综合评估发现,该模型远远优于其他小型模型、甚至大型经典模型。该轻量化模型可以满足一些常见的低功耗嵌入式设备的部署需求,如 Raspberry Pi-4B (4GB, 15W, 9~10 GFLOPS) 和 NVIDLA Jetson Nano (4GB, 10W, 7.368 GEFLOPS FP64)。

为了验证模型在不同数据源上的泛化性能,研究团队在一个私有光伏电池数据集上进行了模型训练。从 6 x 10、6 x 12、6 x 24 三种规格的光伏电池中提取出了8,580 张像素分辨率为 256 x 256 的图像,其中缺陷样品 482 张,功能正常样品 8,089 张。

结果显示,该模型在平衡精度和缺陷样本精度上分别比 Teacher 模型高出约 2.3% 和 5.7%。与其他方法相比差距很大。该模型对缺陷样本的准确率达到 94.26%,特别是在现实场景中表现出更好的缺陷识别能力。如下图所示:

在这里插入图片描述

在相同数据增强下,与其他方法在私有数据集上的对比

始于百年前,光伏发电仍是绿色能源的「宠儿」

作为新能源的代表,关于光伏发电技术的研究实际上已有超百年之久。1839 年,法国物理学家贝克勒尔首次发现了光伏效应,在此之后,经过各国科学家的不断钻研和努力,第一块实用光伏电池终于在 1954 年问世。如今,光伏产业随着全球绿色发展的脚步又一次乘上了东风,尤其在国内明确提出「双碳」目标之后,光伏产业的发展可谓前途一片大好。

这从不久前国家能源局发布的 2023 年全国电力工业统计数据便可见微知著。数据显示,截止 12 月底,全国累计发电装机容量约 29.2 亿千瓦,同比增长 13.9%,其中,太阳能发电装机容量约 6.1 亿千瓦,实现同比 55.2% 的增长。

从政策方面来看,2019 年 5 月 30 日,国家能源局发布了《关于 2019 年风电、光伏发电项目建设有关事项的通知》,其中明确了优先推进无补贴的平价上网项目建设,再开展需要国家补贴项目的竞争配置工作。这表明了我国光伏产业虽然已经进入稳定发展的成熟期,但推动光伏产业发展也仍然会是未来国内实现能源结构转型的重点工作。

2023 年,国家能源局、国家发改委等多个部门相继印发多个关于能源工作的文件,其中都明确了光伏是 2023 年能源行业的重点方向

而本次研究则从产业层面为光伏产业的发展带来了利好消息,张金霞教授团队的研究成果从实际的应用侧为光伏电池缺陷检测提供有效工具,尤其是引入了 NAS 与知识蒸馏,为应用场景设计模型提供了一种新的思路,这或许将有望为产业就深度学习在光伏领域应用带来新的启迪,从而让技术与产业更好的结合。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【IO】进程间通信

A程序代码&#xff1a; #include <stdio.h> #include <sys/types.h> #include <sys/stat.h> #include <unistd.h> #include <errno.h> #include <fcntl.h> #include <string.h> int main(int argc, const char *argv[]) {if(mkfifo…

Redis缓存【重点】

参考链接 https://xiaolincoding.com/redis/cluster/cache_problem.html#%E7%BC%93%E5%AD%98%E9%9B%AA%E5%B4%A9 目录 缓存雪崩大量数据同时过期Redis 故障宕机 缓存击穿第一种方案&#xff0c;非法请求的限制第二种方案&#xff0c;缓存空值或者默认值第三种方案&#xff0c;使…

Docker中使用nginx-rtmp推拉网络摄像头视频流

前言&#xff1a; 该部分比较麻烦&#xff0c;闹腾了好久&#xff08;ffmpeg推拉流没学过&#xff0c;事实证明依葫芦画瓢是不行滴&#xff0c;后面有时间再学吧&#xff09;&#xff0c;后来借助chatGPT勉强解决&#xff0c;但不是很懂。因个人能力有限&#xff0c;只复述操作…

合泰HT66F2390----定时器中断学习笔记

前言 无需多言 直接开始定时器中断 的学习 通过上次的PWM学习&#xff0c;上次用的是周期型TM定时器模块 这次使用标准型TM定时器模块&#xff08;STM&#xff09; 代码 #include <HT66F2390.h>void Timer0_Init(void){_stm0c0 0b00001000;_stm0c1 0b11000001;_stm…

Vmware虚拟机安装openEuler 20.03 LTS(openEuler20.03)

文章目录 vmware虚拟机安装openEuler 20.03 LTS安装硬件设备&#xff08;略&#xff09;安装OS镜像下载镜像版本发布说明开始安装&#xff08;vmware虚拟机&#xff09;安装操作系统必要操作关闭防火墙设置selinux为宽容模式系统内核问题禁用系统内核更新 ~~禁用yum update和dn…

Ubuntu18.04运行ORB-SLAM3

ORB-SLAM3复现(ubuntu18) 文章目录 ORB-SLAM3复现(ubuntu18)1 坐标系与外参Intrinsic parameters2 内参Intrinsic parameters2.1 相机内参① 针孔模型Pinhole② KannalaBrandt8模型③ Rectified相机 2.2 IMU内参 3 VI标定—外参3.1 Visual calibration3.2 Inertial calibration…

构造pop链

反序列化视频笔记 第一步&#xff1a;找到目标触发echo调用$flag 第二步&#xff1a;触发_invoke函数调用appeng函数$varflag.php&#xff08;把对象当成函数&#xff09; 第三步&#xff1a;给$p赋值为对象&#xff0c;即function成为对象Modifier却被当成函数调用&#xff…

基于springboot+vue的校园网上店铺

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…

Android开发者必看,我的移动开发春季历程

热修复介绍 1.开发流程 当项目出现紧急bug时&#xff0c;传统的开发流程是发布新版本&#xff0c;引导用户覆盖安装。抛开平台审核上线的时间不说&#xff0c;一天重复下载安装至少两次的用户体验是很差的。而热修复的出现完美解决了这个问题&#xff0c;用户在收到服务器推送…

概要了解postman、jmeter 、loadRunner

postman还蛮好理解的&#xff0c;后续复习的话着重学习关联接口测试即可&#xff0c;感觉只要用几次就会记住&#xff1a; 1 从接口的响应结果当中提取需要的数据 2 设置成环境变量/全局变量&#xff08;json value check 、set environment para 3写入到下一个接口的请求数据中…

python三剑客之一——Numpy

温故而知新&#xff0c;借着工作需要用到Numpy的机会重新学习一遍Numpy。 Numpy是一个运行速度非常快的数学库&#xff0c;主要用于数组计算&#xff0c;包含如下&#xff1a; 一个强大的N维数组对象ndarray【Nd&#xff08;Dimension维度&#xff09;array】 广播功能函数 整…

找不到msvcr100.dll怎么办,多种解决方法快速修复msvcr100.dll问题

当计算机系统中关键文件msvcr100.dll丢失时&#xff0c;可能会引发一系列运行问题和故障现象。msvcr100.dll是Microsoft Visual C Redistributable Package的一部分&#xff0c;对于许多基于Windows的应用程序正常运行至关重要。由于msvcr100.dll是许多应用程序运行所必需的动态…

22.基于springboot + vue实现的前后端分离-汽车票网上预定系统(项目 + 论文PPT)

项目介绍 系统是一个B/S模式系统&#xff0c;采用Spring Boot框架&#xff0c;MySQL 数据库设计开发&#xff0c;充分保证系统的稳定性。系统具有界面清晰、操作简单&#xff0c;功能齐全的特点&#xff0c;使得汽车票网上预订系统管理工作系统化、规范化。本系统的使用使管理人…

外包干了3个月,技术倒退明显

先说情况&#xff0c;大专毕业&#xff0c;18年通过校招进入湖南某软件公司&#xff0c;干了接近6年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试&#xf…

第1题:两数之和

题目内容&#xff1a; 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是&#xff0c;数组中同一个元素在答案里不能重复出现。…

Vue 3的Composition API和vue2的不同之处

Vue 3的Composition API是Vue.js框架的一个重要更新&#xff0c;它提供了一种新的组件逻辑组织和复用方式。在Vue 2中&#xff0c;我们通常使用Options API&#xff08;data、methods、computed等&#xff09;来组织组件的逻辑&#xff0c;但这种组织方式在处理复杂组件时可能会…

如何搭建Nacos集群

1.搭建Nacos集群 众所周知&#xff0c;在实际的工作中&#xff0c;Nacos的生成环境下一定要部署为集群状态 其中包含3个nacos节点&#xff0c;然后一个负载均衡器代理3个Nacos。这里负载均衡器可以使用nginx。 我们计划的集群结构&#xff1a; 我就直接在本机上开三个Nacos来搭…

python基础——基础语法

文章目录 一、基础知识1、字面量2、常用值类型3、注释4、输入输出5、数据类型转换6、其他 二、字符串拓展1、字符串定义2、字符串拼接3、字符串格式化4、格式化精度控制 三、条件/循环语句1、if2、while3、for循环 四、函数1、函数定义2、函数说明文档3、global关键字 五、数据…

02:HAL库---GPIO

一:GPIO 1:简历 2:模式 输入 : IO向32发送信号, 即外设发送信号 GPIO_Mode_AIN -----模拟输入 GPIO_Mode_IN_FLOATING -----浮空输入 GPIO_Mode_IPD -----下拉输入 GPIO_Mode_IPU ------上拉输入 GPIO_MODE_INPUT----输入模式 输出 : 32向IO发送信号, 即外设接收信号 …

JavaScript实现鼠标移动特效

关键代码&#xff1a; <script>document.onmousemove function (e) {// 加div节点var div document.createElement(div);div.style.width 5px;div.style.height 5px;// 加img节点var img document.createElement(img);// 将Img追加到div里面。div.appendChild(img);…