건프의 소소한 개발이야기

[RapidCheck] 지능형 영상 분석 솔루션 - Detection & Tracking Summary 본문

프로젝트 이야기

[RapidCheck] 지능형 영상 분석 솔루션 - Detection & Tracking Summary

건강한프로그래머 2017. 7. 9. 21:01

안녕하세요, 건프입니다.

지능형 영상 분석 솔루션 RapidCheck 의 기술 문서를 정리하였습니다.

이번편은 RapidCheck 의 Deep Learning 을 이용한 Object Detection & Tracking 기법에 대한 설명입니다.



detection_tracking_summary.md

Detection & Tracking Summary

RapidCheck tech documents about Detection Engine powered by Junsu Lee (ljs93kr@gmail.com)

개요

영상이란 기본적으로 연속된 이미지의 나열이므로, 기존 산업의 기술적 관점에서보면, 영상 분석이란 이미지를 다루는 컴퓨터 비전(Computer Vision)의 영역이라고 할 수 있었다. 하지만, 이미지에서 단순한 수학적 연산을 통한 패턴매칭 알고리즘으로는 다양한 환경에서 객체를 정확하고 빠르게 검출하기 힘든 한계가 있었다. RapidCheck 는 최근 세상을 바꿀 첨단기술로 손꼽히는 딥러닝 기술을 "영상 분석" 방면에서 응용하다. RapidCheck 객체 인지 엔진은 지도학습을 기반으로 성능이 강화된다. 즉, 다양한 환경에서 학습할수록, 더 똑똑한 인공지능이 된다는 의미이다. RapidCheck 는 이 영상 딥러닝 기술을 강화해서, 기존 기술의 '정확성 부재'와 '느린 처리 속도 문제'를 해결하는 고유한 원천기술을 확보했다.

객체 인지 기반 추적 알고리즘

RapidCheck의 객체 인지 알고리즘을 자세하게 풀어쓴다면 “Object Detection on a Single Frame in Video” 라고 할 수 있다. 즉, 영상에서 객체를 검출함에 있어, 일반적으로 사용하는 여러 프레임간의 차이를 이용해 움직이는 객체만 검출할 수 있는 알고리즘과 근본적인 차이점과 난이도를 가지고 있다.

여러 프레임 간의 차이를 이용해서 객체를 검출하는 방법은 기본적으로 고정된 영상 분석을 전제 로 한다. 한 영상에 서 인접한 두 프레임 이미지 간의 차이(Difference)를 구해, 배경을 제거하고 움직이는 물체의 위치를 찾아내는 원리 이다. 이 과정에서 더 깨끗한 영역을 검출하기 위해 노이즈 제거, 근접한 프레임들의 평균값으로 정규화하는 등 컴퓨터 비전(Computer Vision) 적인 전처리를 동반한다. 언뜻보면 간단한 원리이지만, 실제로 현장에서 적용하기에는 심각한 한계점이 있다. 이는 다음과 같다.

- 영상 속에서 멈춰있는 객체는 검출하지 못함
- 카메라의 화각이 고정되어 있어야 함 (배경이 움직이는 영상에서는 사용할 수 없음) - 야간 영상에서는 전혀 사용할 수 없음
– 비전(Vision) 전처리를 위해서 엄청난 CPU Computing Resources 를 요구함
– 객체의 위치를 검출할 뿐, 객체가 무엇인지는 검출할 수 없음 (이 단계를 위해서는 추가적인 단계가 필요 함)

따라서, RapidCheck 객체 인지 알고리즘은 Single Frame in Video Detection 기술구현에 집중하다. 다 양한 환경에서 보다 정확하고, 많은 객체를 찾아내기 위해서 수많은 시도와 실험을 시도하고, 결론적으로 RapidCheck 의 객체 인지 엔진은 딥러닝 방법론 중 지도학습(Supervised Learning) 으로 대량의 이미지 데이터 들을 학습함으로써 성능을 강화한다. RapidCheck 객체 인지 엔진 모델의 구조도면은 다음과 같다.

new_rcnet_arch2.png

RCNet 구조도면

위에 보이는 모델도면은 좌측부터 우측으로 깊어지는 구조이며, 특징추출계층은 처음에는 점, 선과 같은 간단한 특징 들로부터 시작해, 모델의 심층으로 내려갈수록, 얼굴모양, 자동차 바퀴, 걷는자세 등의 다소 복잡한 정보도 추출하게 된다.

FC(Fully Connected) 로 표현된 계층은 앞서 특징추출계층에서 뽑혀나온 의미있는 특징정보를 선형결합으로 표현 해, 뽑혀진 정보의 경중을 결정하며 이들의 결합으로 비로소 의미있는 객체의 위치정보와 분류값을 얻어낼 수 있다.

RapidCheck 객체 인지 알고리즘의 우수성은 다음과 같다.

- 이미지 픽셀의 변화를 특징으로 잡는 방법이 아니라, 사람과 자동차의 공통된 특징을 잡아내므로, 다양한 환경에서 더 정확한 인지 결과를 도출함
- 따라서 야간 영상에 대해서도 인지 방면에서 우수한 성능을 보임
– 학습될수록 지능이 고도화되는 구조
– GPU 가속을 이용할 수 있으므로 검출 속도 비약적 증가
– 후발 경쟁사가 쉽게 도달하기 힘든 기술적 난이도

객체 인지 엔진이 학습하는 이미지의 처리 방법과 결과를 가시화하면 다음과 같다.

스크린샷 2017-07-01 오후 9.34.16.png

RCNet 객체 검출 원리

먼저 위와 같이 이미지가 들어왔을 때, 객체의 중앙정보(Central Infomation)을 포함할 Grid Cell 로 논리분할한 다. 분할된 Grid Cell 은 이미지내 상대위치를 대표할 수 있고, 객체가 존재하는 중앙 위치는 반드시 분할된 Grid Cell 중 하나 속에 특정된다. 이로써, 객체의 중앙위취정보는 이미지내 상대위치값과 전체이미지 대비 가로 크기와 세로 크기의 비율을 상대값으로 표현이 가능하다. RapidCheck 객체 인지 엔진의 결과물이다.

rcnet_result_all.png

RapidCheck 는 이러한 객체 인지 엔진을 기반으로 고도의 객체 추적(Object Tracking) 알고리즘을 구현했다. 객 체 추적이란 영상속에서 등장하는 객체의 정체성(Identity) 를 유지하여, 위치정보를 따라가는 일련의 작업이다.

기존 추적 알고리즘의 접근 방법 역시 "움직임"이었다. 움직임 기반의 추적 알고리즘은 원리는 단순하나 다음과같은 심각한 문제로 실전에서 사용하기 힘들다.

- 사람이 추적하고자 하는 대상을 처음에 직접 명시해주어야 함
- 명시된 객체를 인접한 프레임의 위치변경정보를 계산하여 따라가는 형식이기 때문에, 급하게 움직이거나 장애물에 가려짐, 기상현상으로 인한 방해 등 다양한 원인으로 추적상태를 상실함
– 한번 추적 상태를 상실하면, 복구할 방법이 없음

RapidCheck 추적 알고리즘은 인지 기반으로 동작하기 때문에, 위 문제들을 해결할 수 있다.

tracking_1.png

Tracking 과정

위 그림에서 붉은색 옷을 입은 여성을 주목한다. Frame1,2,5 에서는 정상 검출이 되었으나, Frame 3,4 에서는 장애물에 가렸고, Frame6 에서는 비정상검출이 된 상황이다. RapidCheck는 이런 상황에서도 객체 추적이 가능하다.

tracking_5.png

Tracking 결과

따라서 RapidCheck 추적 알고리즘 효과의 우수성은 다음과 같다.

- 다양한 원인에 의해서 가려지거나, 인지되지 않는 객체에 대해서도 추적을 할 수 있기 때문에 서비스의 안전성이 극대화
- 다양한 원인에 의해서 추적 상태를 상실하더라도, 그 다음 인지 엔진에서 객체의 정확한 위치를 바로 잡 아주기 때문에, 추적상태를 자가 회복할 수 있음
- 영상의 모든 프레임을 분석할 필요가 없기 때문에, 처리 속도 측면에서도 강한 우위 선점
- 이는 한 영상에서만 추적이 아니라, 같은 원리와 알고리즘으로 여러 카메라에서 대상을 추적하는 것이 가능함
Comments