대규모 태양광 단지의 수많은 패널 중 어딘가에 이상이 있는지 여부를/ 이상이 있다면 이상 유형과 위치를 자동으로 탐지하기 위해, 태양광 패널 사진을 입력받는 합성곱 신경망 (Convolutional Neural Network, CNN) 을 활용할 수 있다.

이 포스팅에서는, 태양광 패널을 포함하는 이미지를 입력받아 분류 작업을 수행하는 CNN 모델들에 대해 다룬 논문 몇 개를 리뷰한다.

(이 포스팅의 모든 그림들 (teaser 포함) 은, 포스팅에서 소개하는 논문들의 figure들임을 밝힌다.)


태양광 패널 존재 여부 판별

가장 간단한 case는, 인공위성 등으로 촬영한 저화질 사진을 입력받아 해당 장소 내 태양광 패널의 존재 여부를 판별하는 것이다.

논문 Convolutional neural network based solar photovoltaic panel detection in satellite photos (2017) 에서는, 도심지에 대한 Google Map 사진 3,347개로 이진 분류 CNN 모델을 훈련 및 검증하였다.

Rooftop images 태양광이 설치된 지붕 사진들과 설치되지 않은 지붕 사진들.

3,347개의 사진들 중 1,643개 사진은 지붕 태양광 패널을 포함하였고, 나머지는 포함하지 않았다. 훈련 세트는 전체 데이터의 80%였다.

CNN 구조는 전형적인 구조 (Convolutional layer들과 Fully connected layer들의 순차적 조합 및 각 layer의 output에 ReLU activation function을 적용) 를 따랐으며, 훈련 과정에 dropout을 적용하였다.

해당 모델은 검증 세트 (태양광 포함한 사진 313개와 태양광 포함하지 않은 사진 357개) 에 대해 accuracy 87%, F-measure 86%라는 준수한 성능을 보였다.


태양광 패널 이상 탐지 및 이상 유형 판별

태양광 패널이 기대출력을 내지 못하는 원인은 여러 가지가 있다. 다른 물체의 그림자 혹은 쌓인 먼지에 의해 패널이 가려지거나, 태양광 패널 일부가 파손되거나, 국소적으로 온도가 높은 hot spot이 발생하거나 하면 출력이 감소한다.

태양광 패널을 포함하는 사진이 있을 때, 해당 사진 내 패널의 이상 여부를 탐지할 뿐 아니라 이상 유형까지 판별하는 CNN 기반 분류 모델 연구 예시로 아래 두 논문들이 있다.

1) Failure signature classification in solar photovoltaic plants using RGB images and convolutional neural networks (2020)
2) Automatic fault classification in photovoltaic modules using Convolutional Neural Networks (2021)

논문 1)에서는 임의의 각도 및 크기로 촬영된 태양광 패널 array들의 사진을 입력받아 4개 class들 (breakage, shadow, dust, no-fault) 중 하나로 분류하는 모델을 훈련 및 검증하였다.

Rooftop images 태양광 이상 유형별 사진 (왼쪽부터 shadow, dust, breakage).

논문 1)에서 사용한 training data의 크기가 비교적 작았음에도 (총 145장의 사진), 해당 모델은 약 70%의 accuracy를 달성하였다.

논문 2)에서는 특정 규격으로 촬영된 태양광 패널 사진들 2만개의 공개 데이터셋(Infrared Solar Modules) 으로 패널 이상 유형을 분류하는 모델을 훈련 및 검증하였다.

Rooftop images Infrared Solar Modules 데이터셋의 태양광 패널 사진 (원본은 흑백이며, 해당 논문에서 칼라로 변환함).

논문 2)는 1)과 달리 사진 규격이 엄격하게 정해져 있어 사용처가 제한적일 수 있으나, 해당 규격을 충족하는 사진에 대해서는 더 다양한 이상 유형들을 분류할 수 있다
(offline-module, diode-multi, diode, shadowing, cell-multi, cell, hot-spot, cracking, hot-spot-multi, soilling , vegetation, no-anomaly).

단, 일부 이상 유형들의 사진 수가 적어 imbalanced dataset 문제가 있다 (2만장 중 diode-multi 175장, soiling 205장, hot-spot-multi 247장 등).

논문 2)에서는 imbalanced dataset 문제 대응을 위해, data augumentation (사진 반전, 사진이동 등) 을 통해 원본 사진 수가 적은 class에 대한 data size를 증가시키는 oversampling을 수행하였다.

논문 2)의 모델은 average testing accuracy 59.53%를 달성하였다. Class 수가 많을 뿐 아니라 class 간 이미지의 차이가 아주 뚜렷하진 않았기 때문으로 보인다.

흔히 딥러닝 교육용으로 쓰이는 Fashion MNIST 데이터셋 내 물체들은 뚜렷하게 구별되는 구조를 갖고 있어 (즉 위상구조가 강해), CNN 모델이 feature extraction을 하기에 적합하고 10개 class에 대한 분류 정확도도 높다.

그러나 태양광 패널 사진들의 경우 몇 개의 어두운 영역들만 보이므로 위상구조가 약해 feature extraction을 하기 쉽지 않고 결국 분류 성능도 좋지 못한 것으로 풀이된다.


태양광 패널 이상 위치 탐지

태양광 패널에 이상이 있을 때, 패널 내 이상의 정확한 위치도 중요한 정보다.

논문 Photovoltaic plant condition monitoring using thermal images analysis by convolutional neural network-based structure (2020) 에서는, 비행드론으로 촬영한 태양광 패널 array의 열화상 사진을 입력받아 패널 내 hot spot이 있는지, 있다면 구체적으로 어느 위치에 있는지를 탐지하는 모델을 구성하였다.

Rooftop images 비행 드론과 열화상 카메라를 이용한 태양광 이상 위치 탐지 시스템 개요도.

해당 모델에서는 먼저 패널 사진에서 먼저 이상이 있는 것으로 의심되는 영역인 Regions of interest (ROI) 를 찾는다. 수학적으로는 의심되는 사각형 영역의 위치 좌표 (x,y) 및 높이와 너비, 총 4개의 값을 회귀모델로 예측하는 작업이다. 구체적으로 사용된 방법론은 Fast R-CNN이다.

(Fast R-CNN에 대한 한국어 블로그 정리 글)

분류용 CNN 모델은 탐지된 ROI를 입력받아, 태양광 패널인지 여부와 hot spot인지 여부를 판별한다.

Rooftop images 태양광 패널 내 ROI 탐지 및 ROI를 입력으로 하는 분류 도식도.

참고로 R-CNN 모델의 성능 향상을 위해, 패널 사진에서 패널 테두리를 사진의 경계와 최대한 평행하게 맞추는 image rotation process가 적용되었다.

한편 최종 결과 report 시에는 ROI의 좌표를 실제 위치 좌표로 변환하기 위해 비행 드론과 패널 간 각도를 변수로 하는 삼각측량법이 사용되었다.

Rooftop images 비행드론과 패널 간 각도에 기반한 삼각측량 도식도.

해당 모델은 분류 accuracy 92.25%, 이상 위치 평균오차 0.86m를 달성하였다.