brunch

자동차의 눈: Object Detection 알고리즘

by 아이나비시스템즈
맵스플랫폼 사업팀_브런치 (31).png


Ep.31


자동차에는 다양한 센서가 탑재되어 있어, 실시간으로 수집되는 센서의 정보 조합을 통해 차선 인식, 주변 차량과의 거리, 사물 인식 등을 수행하게 됩니다. 대표적으로는 LiDAR, RADAR, Camera, 초음파 센서가 양산형 차량에 사용됩니다.


대부분의 자동차 회사에서는 단가를 고려하여 전방의 RADAR 센서와 전, 측, 후방 초음파 센서, 전방의 카메라를 탑재하는 것이 보편적인데요. 이 외에 사각지대를 해소하기 위해 추가로 카메라나 초음파 센서를 달기도 합니다.


차량 주변에 물체가 있는지 단순히 “인식”만 하기 위해선, 초음파 또는 RADAR 센서를 통해서도 충분합니다. 하지만 최근에는 상황을 인식하고 어떤 물체인지 탐지하는 것이 중요한 정보가 되었습니다. 그렇다면 차량 주변의 사물이 무엇인지 어떻게 파악할 수 있을까요? 바로, 차량에 탑재된 카메라를 이용하면 주변 사물을 “탐지”할 수 있습니다. 본 편에서는 카메라를 이용하여 객체를 인식하는 주요 알고리즘을 간단하게 톺아보는 시간을 가져보고자 합니다.

그림1.png 그림 1. 차량 센서 모식도



카메라로 사물을 인식하는 Object Detection란?

그림2.png 그림 2. 테슬라 차량의 주행화면

우선, 카메라를 활용하는 자동차라고 하면 '테슬라'가 떠오를 것입니다. 테슬라는 카메라, 초음파 센서, 전방 레이더 센서를 차량에 탑재하여 사용해 왔지만, 최근에는 초음파 센서와 전방 레이더 센서는 제외하고 오직 카메라만을 이용하여 반자율주행(Autopilot) 및 자율주행(Full-Self driving) 기능을 수행하고 있습니다. 그렇다면, 어떻게 카메라를 이용하여 사물을 인식하고 있을까요?


보통 카메라를 통해 이미지를 전달받고, 이미지 분석을 진행합니다. 이미지 분석을 통해, 특정 영역에 물체가 있음을 확인하고 해당 영역의 물체가 어떤 물체인지 분류 과정을 거친 후 알려줍니다. 이를, object detection(객체 탐지)이라고 하며, region regression 과 classification을 기반으로 합니다. 이는 비전 알고리즘의 기본적인 분류 방식 중 하나입니다.



Object Detection 알고리즘의 종류

그림3.png 그림 3. 이미지 인식과 사물 인식의 차이점

Object detection(객체 탐지) 알고리즘은 크게 2 stage-detection 알고리즘1 stage-detection 알고리즘으로 분류되고 있습니다.


먼저, 2 stage-detection 알고리즘은 region proposal network(이하 RPN)와 이를 기반으로 classification이 분리되어 있는 알고리즘입니다. RPN이 분리되어 있기 때문에 조금 더 높은 정확도를 기반으로 사물의 영역을 찾을 수 있다는 장점이 있지만, 그만큼 많은 연산 과정을 거치기 때문에 속도가 느리다는 단점을 가지고 있으며, 주로 R-CNN 계열의 알고리즘들로 구성되어 있습니다.


대표적으로 Faster R-CNN 알고리즘에 대해 설명 드리면 CNN(Convolution Neural Network)이 활성화됨에 따라, 이미지에서 객체를 인식하는 연구들이 활발히 진행되었으며, R-CNN, Fast R-CNN 등 CNN 연산을 반복적으로 수행하여 느려질 수밖에 없는 기존의 단점을 보완하기 위해 다양한 방식들이 제안되었습니다.


Faster-RCNN 알고리즘은 공유해서 사용하는 feature map과 물체가 있을법한 영역을 탐지하는 네트워크를 통해 N개의 RoI(Region of Interest)를 획득합니다. N개의 RoI는 NMS(Non-Maximum Suppression)를 통해 걸러지며, 최종 획득한 RoI 영역과 feature map을 detector를 통해 어떠한 물체인지 최종적으로 classification 하게 됩니다.

그림4.png 그림 4. R-CNN 알고리즘 변화도

1 stage-detection 알고리즘은 region proposal과 classification을 동시에 처리하기 때문에 속도가 빠르지만 정확도가 떨어진다는 단점이 존재합니다. 대표적으로 Yolo(You Only Look Once), SSD(Single Shot Multibox Detector) 계열의 알고리즘들로 구성되어 있습니다.


간단히 Yolo 알고리즘에 대해서 살펴보면, 원본 이미지를 동일한 크기의 그리드로 나눈 후, 각 그리드 중심을 기준으로 미리 정의된 형태의 anchor box의 개수를 예측하고 그 신뢰도를 계산합니다. 이후 계산된 신뢰도를 기반으로 최종적인 box와 해당 영역의 물체를 판단합니다. 앞전에 소개한 Faster R-CNN 알고리즘과 달리, Yolo 에서는 단일 신경망 구조를 사용하기 때문에 훨씬 빠른 속도로 수행할 수 있습니다.

그림5.png 그림 5. Yolo 알고리즘 모식도

물체 인식을 위한 객체 탐지와 영역 분할

그림 6. 1, 2 stage detector의 차이점

결론적으로, 2-stage dectectorregion proposal과 classification이 순차적으로 수행되며, R-CNN 계열의 알고리즘이 주로 사용되고 있습니다. 1-stage detectorregion proposal과 classification이 동시에 이루어져, 처리 속도가 빠르다는 장점이 있으며 Yolo 및 SSD 계열의 알고리즘이 사용되고 있습니다.


또한, 차량에서는 객체를 인식하는 것도 중요하지만 단순히 박스 형태로 구분하는 것뿐만 아니라 실제로 어느 정도 영역을 차지하는지 파악하는 것도 중요합니다. 이를 semantic segmentation이라고 하며, 그림 7과 같이 카메라로 탐지한 객체 box 안에서 객체가 차지하는 영역을 명확하게 아는 것이 중요합니다.

그림7.png 그림 7. semantic segmentation 예시

간단하게 object detection 및 semantic segmentation을 체험해 볼 수 있는 예시를 공유드립니다. Yolo(https://docs.ultralytics.com/ko/)에서 간단하게 테스트할 수 있도록 다양한 환경을 제공하고 있으며, 간단한 설치 후 손쉽게 모델을 호출하고 적용할 수 있습니다. 우선, 본인의 환경에서 python 설치 및 pip install ultralytics 만 수행하면 됩니다. 이후 아래의 코드를 입력해 줍니다.

그림8.png 그림 8. 예시 코드
그림9.png 그림 9. 예시 코드 결과 화면

그럼, 간단하게 예시 이미지를 통해 방금 설명해 드린 object detection 및 semantic segmentation의 수행 결과를 확인하실 수 있습니다. 이러한 알고리즘의 결과물을 통해 차량에서 사물을 인식하여 최종적으로 사용자에게 전달되거나 차량의 행동을 판단하기 위한 정보로써 활용할 수 있게 됩니다.



마치며


지금까지 카메라를 활용한 객체 인식 알고리즘을 간단히 살펴보았습니다. 자동차에는 다양한 센서들이 탑재되어 있지만, 날씨와 주변 상황에 따라 영향을 많이 받습니다. 카메라 역시 여러 장단점이 존재하지만 사람의 눈처럼 주변을 인식할 수 있다는 점에서 중요한 역할을 합니다. 따라서 주변 상황을 신속하고 정확하게 인지하는 기술이 필수적이며, 이에 기반이 될 수 있는 알고리즘을 간단히 톺아보았습니다. 앞으로도 아이나비시스템즈는 다양한 지도 기술뿐만 아니라 여러 센서들을 이용한 알고리즘 연구에 꾸준히 힘쓰겠습니다.


by 아이나비시스템즈 오토모티브개발팀 정주호

iMPS배너_최종본_2509.png

객체 인식 알고리즘처럼 신속·정확함이 필요할 때, 해답은 위치 기반 서비스 iMPS!


#object detection #semantic segmentation #객체탐지 #yolov5 #아이나비 #아이나비내비게이션 #아이나비시스템즈 #지도


--

<출처>

그림 1. https://blog.naver.com/lagrange0115/223021143937

그림 2. https://wikidocs.net/163639

그림 3. https://choo-sweet.tistory.com/90

그림 4. https://seongkyun.github.io/papers/2019/01/06/Object_detection/

그림 5. https://arxiv.org/abs/1506.02640

그림 6. https://velog.io/@qtly_u/Object-Detection-Architecture-1-or-2-stage-detector-%EC%B0%A8%EC%9D%B4

그림 7. https://superb-ai.com/en/resources/blog/a-deep-dive-into-instance-segmentation-best-practices-and-frameworks

keyword
작가의 이전글GPS 보정의 핵심: 서버 기반 경로 추론 기술