Improved CNN Algorithm for Object Detection in Large Images, Seong Bong Yang, Soo Jin Lee, Jan, 25, 2020 를 읽고 요약한 글입니다.
Abstract
CNN 알고리즘은 위성영상과 같은 대형 이미지에서 소형 객체를 식별하는 것이 불가능하다는 문제를 해결하기 위해 관심영역 설정 및 이미지 분할 기법을 적용한 CNN 알고리즘 개선방안을 제시한다.
비행장 및 항공기 데이터셋으로 전환학습 한 YOLOv3 / Faster R-CNN 알고리즘과 테스트용 대형 이미지를 이용하여 진행하였으며 대형 이미지에서 관심영역을 식별하고 이를 순차적으로 분할해 나가며 CNN 알고리즘의 객체식별 결과를 비교했다.
1. Introduction
본 연구에서는 25,000×15,000 픽셀(375메가픽셀)의 이미지를 대형 이미지로 정의하고 이를 대상으로 AI 기반 객체 식별 알고리즘을 이용한 자동영상판독을 실험한다. 그리고 실험 결과를 바탕으로 위성영상 판독업무에 AI 알고리즘을 적용하는 방안을 도출한다.
2. Preliminaries
CNN(Convolutional Neural Network)은 이미지 처리에 주로 사용되는 기계학습 알고리즘으로서 기본적인 구조는 위의 그림 1과 같다. Input Layer에 이미지가 입력되면 동일한 크기로 분할하고 각각을 숫자 형태로 변환여 Convolutional Layer의 신경망에 제공한다. 이런 결과값은 Pooling Layer에 원본 이미지와 동일한 배열로 저장되며 Fully Connected Layer에서는 결과값과 식별 대상 이미지가 일치하는지 판단하고, Output Layer를 통해 최종 결과를 출력한다. Output Layer에서 출력된 값을 피드백하고 각 타일들에 대한 가중치를 조정함으로써 Input Layer와의 Loss를 최소화하는 과정을 반복한다.
이런 이미지에서 객체를 식별하는 CNN 알고리즘은 Faster R-CNN, R-FCN, SSD, YOLO 등 다양한 종류가 있다.
CNN의 효과적인 학습을 위해 각도나 위치, 크기 등을 변경하여 데이터셋에 추가하는 Data Augmentation 기법을 활용하여 필요한 양의 데이터를 확보한다. 또 사전에 다른 객체들로 학습이 완료된 알고리즘으로 생성된 가중치를 활용하는 전환학습 시키는 방법 또한 적은 양의 데이터셋으로도 좋은 학습 효과를 낼 수 있다.
3. Problem Definition
인공위성에서 한 번에 촬영되는 영역은 km²에 달하며, 2019년 현재 운용 중인 고성능 상용위성 Worldview-3의 해상도 0.31m[13]를 기준으로 하였을 경우 영상의 대략적인 크기는 1km²당 10.4메가픽셀 수준으로 매우 크다.
해당 논문은 본 연구에서는 비행장 및 주변 지역을 포함한 375메가픽셀(약 7.5km×4.5km) 규모의 큰 이미지에서 CNN 알고리즘으로 항공기를 식별하는 것을 목표로 하여 YOLOv3와 Faster R-CNN 알고리즘에 자체 제작한 항공기 위성영상 데이터셋을 전환학습 시켰다.
테스트 대상으로는 비행장 5곳의 Google Earth 영상을 합성한 대형 이미지를 사용하였다.
테스트 결과로 YOLOv3는 항공기를 전혀 식별해내지 못하였으며, Faster-R-CNN은 건물 일부 등을 항공기로 오인식별하는 등 정확성이 떨어지는 현상이 확인되었다. 기존의 CNN 알고리즘으로는 대형 이미지에서 소형 객체를 직접 감지하는 것이 제한된다는 것을 알 수 있다.
YOLOv3와 Faster R-CNN 알고리즘이 입력 이미지의 전체적인 형상에서 객체의 위치를 추출하는 특징을 가지고 있는데, 이미지 내에서 객체 크기의 상대적 비율과 관련하여 정확성이 나타나는 것으로 보인다.
그림2와 같이 같은 해상도라도 일부분을 잘라내 작은 크기로 CNN 알고리즘에 입력하면 기존에 식별되지 못했던 항공기들이 식벽되며 잘못 식별되는 케이스도 감소하며 정확도가 향상되는 것을 알 수 있다.
해당 논문은 이러한 CNN 알고리즘의 특징을 이용하여 대형 이미지 내에서 소형 객체를 높은 정확도로 식별할 수 있도록 하는 CNN 알고리즘의 개선 모델을 제시한다.
4. The Proposed Scheme
그림 3과 같이 원본 이미지 전체보다 비행장 등 해당 객체가 위치하는 시설을 먼저 관심영역(ROI)으로 설정하고 탐색 범위를 해당 영역 내로 제한하는 것이 대형 이미지에서 소형 객체를 식벽하는데 있어 효율적이다.
이를 위해 해당 논문에서 Google Earth 영상으로 자체 제작한 비행장 데이터셋을 Faster R-CNN과 YOLO 알고리즘에 전환학습시킴으로써 대형 이미지에서 관심영역을 우선 식별하도록 했다. 하지만 여전히 이미지가 너무 크기 때문에 최적의 식별률을 갖는 크기의 조각으로 분할하여 각각 처리하는 기법을 적용할 수 있다.
대형 이미지는 CNN 알고리즘에 입력도기 전 그림 4와 같은 방식으로 j x k(=n)개의 조각으로 분할되며 CNN 알고리즘은 분할된 이미지를 행렬 순서로 처리한다.
입력 이미지에서 관심영역을 식별하고 이를 분할하는 단계를 ‘Preprocessing Layer’로 정의하고 분할된 이미지가 n개일 때 CNN 알고리즘은 객체를 식별하는 작업을 n번 실행한다. 이는 위의 그림 5에 해당한다.
처리가 완료된 n개의 분할된 이미지를 원래 순서대로 배열하고 합성하는 ‘Combine Layer’에서는 식별결과가 표시된 하나의 이미지를 출력한다. 단일 객체가 이미지 분할 경계에 위치할 때 각각 별개로 식별될 수 있으며 이런 경우에는 아래 그림 6과 같이 가장 높은 확신도의 바운딩 박스만 남기며 중복을 제거한다.
YOLOv3 알고리즘은 Faster R-CNN의 RPN의 개념이 융합된 효과를 얻게 된다. Faster R-CNN의 경우에는 특정 객체와 관련된 ROI로 학습된 가중치를 이용하여 RPN이 보다 정교화된 효과를 얻게 된다. 이처럼 본 논문은 주요 CNN 알고리즘의 장점들을 융합하여 기존 CNN 알고리즘들의 단점을 보완하거나 장점의 강화를 시도한다.
모델에 특정 객체 및 해당 객체와 관련된 관심 영역(ROI)가 학습된 가중치를 이용하면 CNN 알고리즘으로도 대형 이미지에서 우수한 객체 식별결과를 기대할 수 있다.
5. Experiments
본 논문은 이미지에서 객체의 위치를 추출하는 방식에 따라 RPN(Region Proposal Network)의 개념을 사용하는 Faster R-CNN과, 이미지 크기 조정 후 CNN 처리의 방식을 사용하는 YOLOv3 알고리즘을 이용하여 실험을 진행했다.
비행장을 관심영역으로 학습시키기 위해 같이 Google Earth로 세계 각지의 다양한 규모의 비행장 위성영상을 수집하여 데이터셋을 작성했으며 각 이미지의 크기는 모두 1024×768 픽셀로 동일하다. 총 375매를 대상으로 Python 기반 Labeling 소프트웨어를 이용하여 비행장 외곽부분을 라벨링했다. 학습과 테스트에 사용된 데이터는 8:2의 비율을 적용하였다.
항공기를 식별해내기 위한 데이터셋도 마찬가지로 Google Earth 영상을 이용했다. 영상의 크기 및 매수는 비행장 학습데이터와 동일하게 모두 1024×768 픽셀에 총 375매이며, 학습과 테스트에 사용된 데이터 역시 8:2의 비율을 적용했다.
CNN 알고리즘의 학습 효과 증대를 위해 전환학습 및 Data Augmentation 기법을 함께 사용하였다. 학습은 MIcrosoft COCO와 VOC2012 데이터셋 등으로 사전 학습된 가중치에 상기 데이터셋을 학습시킨 뒤, 90도 회전된 이미지가 포함된 데이터셋을 추가 학습시키는 순으로 진행했다.
이와 같이 학습 완료한 CNN 알고리즘으로 데이터셋에 미포함된 비행장 5곳의 주변 지역 대형 이미지를 준비하여 객체 식별 실험을 진행했다. 비행장 데이터셋으로 학습된 가중치를 통해 대형 이미지로부터 관심영역을 잘라낸 뒤, 이를 분할하여 항공기 데이터셋으로 학습된 가중치로 객체를 식별했다.
확신도 98% 이상의 객체만 표시하였으며 주요 분할 크기 별 식별 결과는 위의 그림 9~ 12와 같다.
이렇게 관심영역 식별 및 분할 기법을 추가 적용하면 아래 그림 13과 같이 기존의 CNN 알고리즘으로도 위성영상과 같은 대형 이미지에 대하여 충분히 우수한 객체식별 결과를얻을 수 있다. 또, 식별하고자 하는 소형 객체와 관련이 없는 영역을 초기 단계에서 배제함으로써 신속한 처리속 도와 시스템 부담 경감을 기대할 수 있다.
물론 다른 객체를 항공기로 잘못 식별한 경우도 있는데 이는 향후 학습 데이터셋의 정밀화 등의 새로운 연구가 필요하다.
대형 이미지에서 소형 객체를 식별하기 위한 최적의 분할 조건은 최소 개수로 나뉘어짐과 동시에 각 조각이 최대의 식별률을 유지하는 것이다. 이를 도출하기 위해 본 논문은 이미지를 2^n개의 조각으로 등분하며 결과를 비교했다.
그 결는 위의 표 6과 같으며 최적의 이미지 분할 조건에 부합하는 조각의 크기는 약 3,200×1,200 픽셀 이하인 것으로 판단되어 분할 모델에 반영했다.
6. Conclusions
본 논문은 기존의 CNN 알고리즘이 대형 이미지에서 소형 객체를 식별할 수 없는 문제를 해결하기 위해 관심영역 식별 및 분할 기법을 적용한 CNN 알고리즘의 개선 모델을 제안했다.
본 모델은 관심영역과 객체로 사전학습이 이루어진 CNN 알고리즘을 바탕으로 Preprocessing Layer에서의 관심영역 식별과 최종적인 객체식별을 서로 독립적으로 진행하므로 최상의 결과를 얻기 위해 다양한 종류의 CNN 알고리즘을 혼합 가동할 수 있다는 장점이 있다.
본 연구에 사용된 YOLOv3과 Faster R-CNN 알고리즘의 성능을 비교하여 본 결과, 표 6~8에서 보는 바와 같이 YOLOv3의 객체 식별률이 더 높음을 확인할 수 있었다. 만약 더 많은 횟수의 Epoch로 학습을 진행하였다면 Faster R-CNN도 식별률 개선의 여지가 있을 것으로 예상된다.
하지만 신속성도 중요한 가치를 가지기 때문에 주어진 시간 내에 더 우수한 성과를 도출해내는 것이 매우 중요하다. 그런 측면에서 보면 YOLOv3 알고리즘이 좀 더 효과적이라고 판단할 수 있다.
논문을 읽은 후 주관을 가지고 요약, 정리한 글이므로 해당 포스팅에 대한 이의 제기, 다른 의견 제시 등 다양한 지적, 의견은 언제나 대환영입니다!
댓글로 남겨주시면 늦더라도 확인하겠습니다!!!