太阳能板的热点问题是指太阳能板的某一部分比周围区域显著更热,这通常是由于缺陷、遮挡或污垢积累造成的。这些热点会严重降低太阳能板的整体性能,导致能量输出下降。如果不及时处理,热点可能会对光伏电池造成永久性损害,需要昂贵的维修或更换。通过及早识别和处理热点,可以确保太阳能板以最大潜力运行,从而最大化能源产量并延长安装寿命。
计算机视觉技术为检测太阳能板上的热点提供了一种先进而有效的方法。这项技术涉及使用相机和复杂的算法实时分析太阳能板的图像。热成像相机特别有用,因为它们可以捕捉到面板表面的温差。计算机视觉系统可以处理热图像并识别出比周围区域更热的区域。这些“热点”区域表明存在热点。这种自动化方法不仅加快了检查过程,还提高了准确性,因为它可以检测到手动检查可能遗漏的微小温度异常。
本指南将向展示如何使用配备热成像相机的航空无人机拍摄的影像来检查太阳能板。让开始吧!
首先,注册并创建一个Roboflow账户。然后,转到Roboflow仪表板并创建一个项目。自定义项目名称和注释组为选择。选择“对象检测”作为项目类型。接下来,添加图像。使用的图像来自这个YouTube视频。可以上传自己的图像或视频,或在Roboflow中输入YouTube URL以创建一个示例数据集以跟随本指南。
接下来,开始注释数据集。建议在训练第一个模型之前至少获得50个注释图像。点击上传的图像批次以选择要注释的图像。一旦打开了一张图像,将被带到Roboflow Annotate工具。Roboflow Annotate是一个为计算机视觉项目注释图像而设计的基于Web的注释工具,具有丰富的功能集。
对于这个项目,使用Roboflow中的边界框功能绘制对应于太阳能板热点的注释。对每张图像重复此步骤。一旦标记了数据集,返回项目并点击Roboflow侧边栏中的“生成”。在此页面上,可以生成标记图像的数据集版本。每个版本都是唯一的,并与训练有素的模型相关联,因此可以迭代增强和数据实验。
首先,使用以下命令下载所需的库:
!pip install supervision numpy inference_sdk
创建一个新的Python文件。将以下代码粘贴到文件顶部以导入所需的库:
import supervision as sv
import numpy as np
from inference_sdk import InferenceHTTPClient, InferenceConfiguration
然后,添加以下代码以初始化太阳能板检测模型的一个实例:
config = InferenceConfiguration(confidence_threshold=0.15)
CLIENT = InferenceHTTPClient(
api_url="https://detect.roboflow.com",
api_key="fZkwfr3c0A2hZjtLSdM8"
)
CLIENT.configure(config)
上述代码将使用请求调用Roboflow API。将API_KEY替换为Roboflow API密钥。
需要代码来可视化模型的结果。为此,将使用supervision边界框注释器实用程序。这个实用程序接受计算机视觉模型预测,并允许在图像或视频帧上显示相应的边界框。
bounding_box_annotator = sv.BoxAnnotator(thickness=5)
def callback(frame: np.ndarray, index:int) -> np.ndarray:
result = CLIENT.infer(frame, model_id="solar-panel-hotspot-detection-dgiy8/2")
detections = sv.Detections.from_inference(result)
annotated_frame = frame.copy()
annotated_frame = bounding_box_annotator.annotate(
scene=annotated_frame,
detections=detections)
return annotated_frame
在上面,定义了一个注释器,然后是一个回调函数,该函数使用CLIENT.infer()调用模型。然后将infer()调用的模型预测通过注释器传递,并返回注释帧。
现在,可以通过在TARGET_VIDEO_PATH文件上运行模型来可视化结果!以下是脚本在视频上运行的示例:
0:00 / 0:09 1×
视频中出现的较小框是模型的结果。这些框指示了模型检测到的太阳能板上的热点。