사냥꾼의 IT 노트

[논문 리뷰]CycleGAN을 이용한 야간 상황 물체 검출 알고리즘 본문

논문 리뷰

[논문 리뷰]CycleGAN을 이용한 야간 상황 물체 검출 알고리즘

가면 쓴 사냥꾼 2023. 4. 13. 18:43

https://scienceon.kisti.re.kr/commons/util/originalView.do?cn=JAKO201911338887012&oCn=JAKO201911338887012&dbt=JAKO&journal=NJOU00292076 

 

원문보기 - ScienceON

 

scienceon.kisti.re.kr

Abstract

YOLO를 포함한 데이터 기반 탐지 방법은 많은 수의 학습 데이터 없이는 좋은 성능을 보장할 수 없다는 근본적인 문제를 가지고 있다.

본 논문에서는 input 이미지의 특성을 유지하면서 스타일을 변환할 수 있는 cycleGAN을 사용한 데이터 샘플링 방법을 제안한다.

주간 및 야간 도로 이미지를 사용하여 광범위한 실험 결과를 만들고 제안된 방법이 야간 갹체 데이터베이스를 훈련하지 않고도 야간의 객체 감지 정확도를 향상 시킬 수 있음을 검증하는 것이 본 논문의 최종 목표라 볼 수 있겠다.


관련 연구 - GAN

GAN (Genaritive Adversarial Network) 은 2개의 적대적인 네트워크로 구성되어 있다. 생성자 네트워크 G는 기존의 데이터 분포를 학습하여 이와 최대한 유사한 데이터를 생성해내는 것이 목적이며, 구별자 네트워크 D는 입력으로 주어진 데이터가 G가 생성한 것인지 실제 데이터 분포에서 추출한 것인지 구분하는 것이 목적이다.

즉, GAN의 최종 목적은 생성자 네트워크 G로부터 생성된 결과가 실제 데이터로 판별될 확률을 최소한으로 줄이는 방향으로 학습되는 것이다. 이것을 동시에 이루면 생성자와 구별자 두 플레이어 (네트워크)의 mini-max game의 형태가 된다.

 

mini-max game의 formula

GAN의 경우 MNIST와 같이 비교적 단순하면서도 작은 해상도를 지닌 이미지는 언뜻 보기에 자연스러운 이미지를 생성할 수 있다. 하지만 CIFAR-10과 같이 보다 복잡하고 상대적으로 큰 해상도 이미지에 대해서는 자연스러운 이미지를 생성하기는 어렵다.


관련 연구 - cGAN

cGAN (conditional GAN) 에서는 기존 GAN에 조건부 확률의 개념을 도입하여 원하는 데이터를 생성할 수 있도록 네트워크를 개량한다. input 으로 사용하는 random noise z에 부가 조건 y를 추가해 y를 통해 생성된 결과를 조정할 수 있다.

cGAN의 formula


관련 연구 - Image to Image Translation

비지도 학습에서의 학습 성능이 지도 학습보다는 떨어질 수 밖에 없다는 사실은 GAN의 학습 측면에서도 마찬가지다.

이런 문제점을 해결하기 위해서 데이터가 서로 짝을 이루지 않는 도메인 사이의 이미지 변환인 네트워크들이 제안되어 왔다. 그 중 Coupled GAN (CoGAN) 은 가중치를 공유하는 2개의 생성자를 사용해 짝을 이루지 않는 시작 도메인과 목표 도메인의 공통된 분포를 학습하고자 시도했고, 시작 도메인과 목표 도메인의 각 데이터를 동일한 노이즈 분포의 데이터로 변환되도록 하는 제약 조건을 추가했다.


관련 연구 - Neural Style Transfer

Neural Style Transfer는 Image to Image Translation을 수행 가능한 또 다른 연구이다. 이는 서로 다른 도메인을 연결하는 매핑 함수 (생성자)를 학습한다는 측면에서 Image to Image Translation과 공통점을 가진다.

그러나 특정 노이즈 분포에서 임의의 노이즈를 추출하는 방식이 아닌, 이미지를 기반으로 해당 이미지의 주요 특징과 다른 도메인에서의 스타일을 합성하는 방식을 사용한다.


제안 방법 - Adversarial loss

cycleGAN의 학습 목적은 두 도메인 사이를 오갈 수 있는 두 개의 생성자와 두 개의 구별자를 학습하는 것이다. 2개의 도메인을 각각 X, Y라 하고 X -> Y 방향으로의 생성자를 F, Y -> X 방향으로의 생성자를 G라 한다. 이때 X 도메인의 데이터 x와 Y 도메인의 생성자 G를 통해 변환된 G(y)를 보다 잘 판별하는 것을 목표로 한다.

Adversarial loss의 formula


제안 방법 - Cycle Consistency loss

이 loss는 두 도메인의 데이터가 불균형한 경우에도 학습할 수 있도록 만들었다. 한 방향으로의 매핑만이 아니라, 변환되었다가 다시 복원되는 매핑까지를 고려하여 제대로 복원됐는지 확인하는 것이다.

cycle consistency loss의 formula


제안 방법의 개요

이 제안 방법들의 목적은 cycleGAN을 이용하여 특정 도메인의 데이터를 생성한 후 이를 분류 혹은 감지 네트워크에 사용하는 것이다. 

  1. 도메인 X를 상대적으로 많은 데이터셋 혹은 변환하는 시작 도메인에 대응
  2. 반대로 도메인 Y를 상대적으로 적은 데이터셋 혹은 변환하는 목표 도메인에 대응

cycleGAN의 학습 과정을 그림으로 표시한 것


실험 결과 - BDD dataset

BDD dataset은 테스트 셋 2만장을 포함한 총 10만장의 이미지와 그에 대한 annotation을 포함한 데이터셋이다.

본 논문에서는 BDD dataset의 시간 도메인 중 day, night를 선택하여 사용한다.

BDD dataset의 시간대별 도메인 구성

cycleGAN의 경우 training set의 day와 night 도메인의 이미지를 전부 사용하여 학습시킨다. 

BDD dataset을 이용해 학습 시킨 예시


실험 결과 - 실험 프로토콜

위에서 설명했듯이, 본 논문에서는 cycleGAN을 사용하여 생성한 데이터의 학습 데이터로써의 유효성을 입증하기 위해 총 세 가지 프로토콜로 YOLO 학습을 진행했다. 학습을 위한 프로토콜은 다음과 같다.

  1. day 클래스의 이미지만 추출하여 학습
  2. day 클래스와 night 클래스의 이미지를 균등하게 추출하여 학습
  3. day 클래스를 추출하고 이와 별개로 다른 day 클래스의 이미지를 night 클래스로 변환하여 학습에 사용하는 방식

이후 학습된 YOLO를 이용하여 day 도메인과 night 도메인에서의 테스트를 진행한다. 그리고 테스트 결과로 각 클래스별 mAP (mean Average Precision) 을 계산해 프로토콜별로 그 성능을 비교한다.

YOLO를 학습시키기 위한 이미지 분포
테스트를 위해 추출된 이미지 분포


실험 결과 - cycleGAN

cycleGAN을 사용하여 데이터를 변환하기 전과 변환 후의 이미지를 비교해보면 이미지의 명암 문제가 큰 것을 알 수 있다. 이 문제는 붉은 색을 표현하는 R channel에서 두드러지게 나타났다. 

Fig. 5에서 볼 수 있듯이 붉은 색을 표현하는 R channel의 변환 전 후 차이가 큰 것을 확인할 수 있다.


실험 결과 - YOLO

제안된 방법의 전반적인 성능

Table 4는 제안 방법의 전반적인 성능을 표기한 것이다. day의 경우 YOLO 학습 시 성능이 오히려 감소함을 보인다. 반면 night의 경우는 변환시키지 않은 기존의 day만 사용했을 때보다 성능이 개선됐음을 확인 가능하다.

왼쪽이 day 도메인만, 오른쪽은 day와 변환 night 도메인을 혼합해 학습 시킨 사진


결론

본 논문에서는 네트워크의 학습에 있어서 데이터 샘플이 적은 클래스 혹은 데이터셋의 데이터 부족으로 인한 문제를 해결하기 위해 cycleGAN을 기반으로 하는 데이터 샘플링 기법을 제안한다.

이 샘플링으로 생성한 데이터의 유효성을 입증하기 위해 기존의 데이터셋에서 학습시킨 YOLO와, cycleGAN으로 생성한 데이터를 포함한 데이터셋으로 학습시킨 YOLO를 비교하는 실험을 진행한다. 이로써 성능이 크게 상승하진 않지만 어느정도 유효한 성능 향상이 이뤄진 것을 확인할 수 있다.

결과적으로 cycleGAN으로 생성한 데이터들도 학습에 활용할 수 있음이 입증됐다고 할 수 있겠다. 이를 활용해 향후 데이터 샘플이 부족한 데이터셋의 문제를 해결할 수 있을 것을 보인다.


평가 및 최종 리뷰

GAN은 연구자와 대중 모두의 상상력을 자극한 혁신적인 연구였다. 아마 이미지 대 이미지 변환 (Image to Image Translation) 성과가 크지 않았나 싶다. 이를 가능하게 하는 것이 cycleGAN 모델이다.

야간 주행의 경우 굉장히 사고가 많이 발생하지만 그에 반헤 필요한 데이터셋이 부족한 게 현실이다. 요즘 부쩍 상승하는 연구 분야인 자율 주행을 위해서라도 데이터셋을 최대한 많이 확보해야 한다. 본 연구는 그런 '약점'에서 비롯된 것이다. cycleGAN을 이용해 부족한 데이터셋을 제작해 YOLO로 학습 시킨 후 사용한다. 상당히 멋진 아이디어가 아닌가?