객체 탐색 문제와 딥러닝 기반 YOLO
이번 호에서는 인공지능 기반 비전 기술의 핵심이 되는 객체 추출 방법을 설명한다. 지난 호에서 비전에 가장 많이 활용되고 있는 기술인 CNN(Convolutional Neural Network)과 다양한 응용 사례를 다루었기 때문에 이번 호에서는 좀 더 자세한 기술 요소를 확인해 보겠다. 특히, 카메라에서 얻은 이미지의 객체 추출을 위한 경계 상자(그리드) 개념과 YOLO(You Only Look Once), SSD(Single Shot Detector) 등 알고리즘을 간략히 설명한다.
최근 건설 자동화 이슈가 다시 부상하고 있다. 이는 인공지능, 빅데이터, BIM, IoT, 드론, 비전 및 역설계와 같은 기술이 실용화되면서 지금까지 현장 컨트롤이 어려웠던 건설 분야에 이 기술을 활용하고자 하는 요구가 많아지고 있기 때문이다. 필드 BIM 관점에서 건설 현장의 다양한 객체 변화를 기록하고, 변화 패턴을 확인할 수 있으려면 최근 급격히 발전하고 있는 딥러닝 기반의 비전 기술을 활용해 볼 수 있다.
이번 호에서는 인공지능 기반 비전 기술의 핵심이 되는 객체 추출 방법을 설명한다. 특히 카메라에서 얻은 이미지의 객체 추출을 위한 경계 상자 개념과 YOLO(You Only Look Once), SSD 등 알고리즘을 간략히 설명한다.
그림 1. YOLO 기반 비전 데모(영화 장면의 객체 실시간 탐색 사례. Joseph Redmon, 2016)
1. 객체 탐색 영역 문제
이미지에서 객체들은 다양한 영역에 분포되어 있다. 이러한 이유로 이미지에서 객체를 추출하기 전에 객체가 어느 범위 내에 있는 지를 경계 상자를 먼저 확인해야 한다.
<그림 2>는 객체의 위치와 크기를 포함하는 경계 상자 예이다.
그림 2. 경계 상자와 객체 탐색(CV-Tricks.com)
일반적으로 경계 상자를 식별하기 위해서 다음 변수를 사용한다.
■ object_class_name : 객체 유형. 객체 유형을 의미하는 라벨(Label)
■ bounding_box_top_left_x_coordinate : 경계 상자 좌측상단 x
■ bounding_box_top_left_y_coordinate : 경계 상자 좌측상단 y
■ bounding_box_width : 경계 상자 폭
■ bounding_box_height : 경계 상자 높이
그림 3. 슬라이딩 알고리즘 기반 윈도 검출기 데모(CV-Tricks.com)