얼마 전에 회사 내에서 AI 관련 경연이 진행되었다. 주제는 Object detection이고, 특정 사물에 대해서 5가지 Class로 구분하고, 찾아내는 Task였다. 경연 시간은 1 달이었으며, 가상 환경이 참가자에게 모두 제공되었다. 참가를 망설이고 있었는 데, 가상 환경을 동등하게 제공한다는 이야기에 참가를 결정하였다. 그 이유는 요새 많인 쓰이는 AI 알고리즘은 GPU를 사용하지 않으면 Run-Time이 어마 무시하기 때문이다. GPU의 유무, 얼마나 많은 GPU를 가지고 있는지가 경연에 큰 영향을 줄 수 있다. 그런데 이번 경연에서는 모두 동일한 환경(GPU 1개)을 가지고 수행하여 동일 위치에서 시작할 수 있었다. 다만, Object detection이라는 분야를 10년 만에 다시 들여다봐야 한다는 점이 큰 문제였다. 그래서 이번 경연에서의 목표는 '기존 알고리즘을 가져와서, Task에 맞게 Train을 수행하고, Test를 한다'로 정하였다. 1 달이라는 시간 내에 알고리즘을 변형시키는 건 무리라고 생각했다. 이번 Object Detection 관련 포스트들은 해당 경연에 참가하면서 알게 된 점들을 기록하고, 구글 코랩 환경에서 다시 재현하는 과정을 남겨두려고 한다. 비슷한 경연이나 공부를 시작하시는 분들에게 도움이 되었으면 좋겠습니다.
그럼 Object detection이란 무엇인가? 말 그래도 물체를 검출하는 것을 의미한다. 사진 혹은 동영상에서 특정 물체를 찾아 내고, 어떤 물체 인지도 구별하는 것도 포함된다. 이런 Task로 주제로 많은 경연들이 존재했다. 그중에 하나인 VOC(Visual Object Classes) Challenge를 살펴보면 Object detection이 어떤 Task인지 감이 온다. 아래 예제는 가장 기본적인 사진에서 Object detection이 수행된 결과를 나타낸다. 사진안에 말 한 마리가 있고, 해당 물체를 감싸는 노란 Box와 Box 왼쪽 위에 horseleft라는 label이 붙어 있다. 즉, 저 노란색 box와 그에 대응하는 label을 찾아내는 것이 목표이다.
위의 사진은 매우 간단한 예제였고, 아래와 같은 사진에서도 Object detection을 수행할 수 있어야 한다. 사진 한 장에 다양한 크기의 box와 label이 존재한다. class도 window, flower, houseplant 등 다양하며 box 안에도 다른 box가 존재하기도 한다. 이렇게 multi-class object 와 다양한 size의 object도 검출 가능해야 한다.
이렇게 많은 경연들이 있었고, 좋은 성능을 내기 위해서 많은 알고리즘이 제안되고, 개발되었다. 알고리즘은 크게 neural network를 기반으로 하는 알고리즘과 neural network 이전의 전통적인 machine learning을 기반으로 하는 알고리즘으로 구분되었다. neural network 기반의 알고리즘이 전통적인 machine learning 기반의 알고리즘보다 좋은 성능을 내기 시작하면서 최근의 알고리즘은 모두 neural network를 기반으로 하고 있다. 여기에 대해서 neural network 기반의 알고리즘은 localization과 classification이 따로 진행되는 지 함께 진행되는지에 따라서 2-Stage detector/1-Stage detector로 나뉠 수 있다. 자세한 내용은 다음 포스트에서 Object detection 알고리즘의 History을 다루면서 알아보고자 한다.
# Reference
[1]
@misc{pascal-voc-2012,
author = "Everingham, M. and Van~Gool, L. and Williams, C. K. I. and Winn, J. and Zisserman, A.",
title = "The {PASCAL} {V}isual {O}bject {C}lasses {C}hallenge 2012 {(VOC2012)} {R}esults",
howpublished = "http://www.pascal-network.org/challenges/VOC/voc2012/workshop/index.html"}
[2] https://storage.googleapis.com/openimages/web/challenge.html
'IT_Study > AI_Study' 카테고리의 다른 글
[Object Detection] 03. mAP(Mean Average Precision) (9) | 2022.08.09 |
---|---|
[Object Detection] 02. VOC and COCO dataset (1) | 2022.08.03 |
[Object Detection] 01. Object Detection History (1) | 2022.08.02 |
댓글