컴퓨터비전

객체 탐지에 있어 'YOLO' 알고리즘을 주목해야 하는 이유

#YOLO #객체 탐지 모델 #컴퓨터비전


시간이 지날 수록 인공지능(AI) 기술은 더욱 더 다양한 분야, 그리고 실생활에 직접적으로 접목되고 있는데요.
AI 분야에서 좀 더 세부적으로 들어가보자면, 최근 컴퓨터비전 분야에서는 객체 감지 알고리즘 모델인 YOLO의 중요성이 강조되고 있습니다. 그래서 오늘은 YOLO모델이 무엇인지와 그 중요성에 대해 연구중이신 강사님과 이야기를 나눠보았습니다.


Q. 안녕하세요. 먼저 간단히 강사님 소개 부탁드립니다.

안녕하세요. 저는 컴퓨터비전과 관련된 기술 연구 및 개발을 하는 연구원으로 주로 카메라, 라이다와 같은 센서를 통해 얻은 데이터를 이용하여 객체 인식/탐지/이상패턴 검출 후 데이터마이닝 등의 기법을 통해 서비스에 필요한 정보를 분석하는 일을 하고 있습니다.
이번에는 패스트캠퍼스에서 [가장 빨리 도달하는 객체 감지 알고리즘 YOLO!] 강의도 맡게 되었는데요, 만나뵙게 되어 반갑습니다!

Q. 'YOLO'를 구글링하면 최상단에 강사님 블로그 가 뜨는데요! YOLO에 관심있다면 한 번쯤은 방문해봤을 블로그라고 하던데 조금 더 자세히 블로그 소개해주실 수 있을까요?

[Daddy maker]는 제가 개인적으로 운영하는 소프트웨어 기술 개발 블로그입니다. 운영한지는 약 7년 정도 되었습니다. 제 관심사가 비전, 컴퓨터 그래픽스, 로보틱스와 소프트웨어 공학이다보니, 이와 관련해 직접 따라하고 개발할 수 있는 식으로 컨텐츠를 만들어 올리고 있습니다.

사실 이 블로그로 무엇을 해볼려고 시작한 것은 아니에요. 기술 개발을 하다보면 징검다리처럼 테크트리를 따라가야 해결될 때가 많은데요. 이를 다시 기억할 수 있게 정리해 놓은 것입니다. 늙어 죽을 때까지 취미처럼 무언가를 만들고 세상에 남기고 싶어 블로그 이름을 [Daddy Makers]로 하였습니다.

나름 블로그 모토가 무료(Copyright left)로 개발할 수 있는 테크트리를 정리하자는 컨셉이라, 모두 오픈소스를 이용한 기술 개발만을 다루고 있습니다. 지금은 많은 분들이 개발할 때 참고하는 블로그 중 하나로 알고 있어요! :) 특히 IoT, 딥러닝, 로보틱스 기술 구현 관련 블로그는 국내 관련 정보가 없어 많이 참고되고 있는 것 같습니다.

< 출처 : Daddy Makers 블로그 >

Q. 그럼 강사님이 연구하시고 있는 YOLO 모델에 대한 질문을 드리고 싶은데요! 최근 컴퓨터비전 분야에서 YOLO가 왜 중요한지, 그리고 다양한 산업 분야에서 어떻게 활용되고 있는지 설명 부탁드립니다.

YOLO는 가성비 있는 비전 객체 탐색 기술이라 볼 수 있습니다. YOLO보다 정확도가 높은 모델도 많지만, 실무에서 사용할 때는 실시간성도 중요하게 생각하기 때문에 YOLO를 사용하는 경우가 많습니다. YOLO는 빠른 속도와 상대적으로 높은 정확도로 비디오 등에 포함된 객체를 탐색할 수 있습니다. 스마트 CCTV 등에 사용되는 딥러닝 모델은 다수 YOLO나 YOLO의 아키텍쳐를 재활용해 개발된 것입니다.

YOLO는 빠른 속도와 상대적으로 높은 정확도를 가지고 있어서 다양한 산업 분야에서 정말 많이 활용되고 있는데요. 물류 소포 객체 분류, 지능형 교통제어, 건설 현장 안전 관리, 농작물 분류, 병충해 감지, 자율 주행 로봇, 병원 등 보안시설 보안 감지 등 우리가 눈으로 객체 종류, 위치나 갯수를 확인하는 데 필요한 모든 부분에 사용된다고 보시면 될 것 같습니다.


강사님께서 말씀해주신 것처럼 컴퓨터비전 분야에서 연구 및 개발을 하시는 분이라면 너무나 방대하고 다양한 산업군들에서 활용되고 있는 모델인 YOLO에 대한 지식은 꼭 필요할 것 같습니다.


Q. 기존 객체 감지 기존 모델로는 R-CNN이 있는데요. YOLO와 비교를 한다면 각각 어떤 특징이 있을까요?

YOLO는 주어진 이미지를 한 번의 스캔으로 객체의 특징과 경계선을 계산합니다. YOLO 이전의 모델, 예를 들어 R-CNN과 같은 경우에는 이미지 안에 객체가 있을 만한 부분을 미리 얻어, 컨볼루션 넷을 이용해 특징을 추출하는 등의 여러 과정을 거쳤지만, YOLO는 이러한 여러 단계를 간략화시켰습니다. 이로 인해 YOLO v5 같은 경우, 실시간 82 ~ 158 FPS(FRAME PER SECOND)까지 객체들을 탐지합니다. 학습된 YOLO모델을 실시간 처리가 필요한 엣지 컴퓨터에 설치해 다양한 서비스로 응용할 수 있어 YOLO는 인기 많은 딥러닝 모델이 된 것이죠!

Q. YOLO는 객체의 위치를 한 번만 보고 예측하는 강력한 특징이 있군요! 이 모델과 R-CNN의 성능을 비교해보고 싶으신 분들도 있을 것 같습니다.자료를 통하여 간단하게 설명해주실 수 있을까요?

YOLO는 오픈소스로 개발되었기 때문에, YOLO v1부터 YOLO x까지 다양한 버전이 있습니다. YOLO v3 기준으로 보면 가장 빠른 이전의 모델 Faster R-CNN 보다 5배 이상 높은 처리 속도를 보입니다.

(Jonathan Hui, 2018, Object detection: speed and accuracy comparison (Faster R-CNN, R-FCN, SSD, FPN, RetinaNet and YOLOv3))

하기 이미지를 참고하시면 이해에 좀 더 도움이 되실 것 같습니다.

< 출처 : 패스트캠퍼스 [가장 빨리 도달하는 객체 감지 알고리즘 YOLO!] 강의 페이지 >

Q. 다른 모델들과 대비하여 YOLO는 빠르고 쉽게 객체 인식을 하기 때문에 조금 더 활용하기에 용이할 것 같은데요. 이러한 사유로 대중화될 가능성이 높다고 볼 수 있을지 강사님의 의견이 궁금합니다.

딥러닝 모델을 서빙하기 위해서는 프런트엔드 처리 부분이 필요할 수 있고, 탐색된 객체 정보를 데이터베이스에 저장하고 꺼내쓸 필요도 있습니다. 실시간성이 높다는 것은 이런 부분을 신속하게 처리할 수 있다는 말이고, 특히, 빠른 의사결정이 필요한 비지니스 서비스에서는 실시간성이 핵심 경쟁력이 됩니다. 이런 이유로, YOLO는 앞으로도 더욱 개선되고 많이 활용될 것이라 생각합니다.


Q. 강사님은 바로 이러한 YOLO에 관련해서 연구 중이시고, 이미 강사님께서 BIM, 스캔 및 역설계, 컴퓨터 그래픽스 소프트웨어 분야에서 총 11권의 책을 집필한 BIM 칼럼니스트이신 것으로 알고 있습니다. 이러한 연구 과정 및 칼럼니스트 활동 기간 동안 얻으신 인사이트나 러닝포인트를 공유해주실 수 있을까요?

저는 YOLO의 실용적인 v3 모델이 릴리즈 되었을 때 관심을 가지기 시작했는데요. 비즈니스 도메인이 위험한 현장이 많은 건설 분야라 YOLO를 이용하면 중대재해 방지에 필요한 안전 문제 등 다양한 유스케이스에 적용될 수 있다고 생각했습니다. YOLO를 이용해 해외 연구자들과 함께 교통 시설물 유지관리 분야 기술 연구 결과를 해외 유명 저널에 출판하기도 하여, 개인적으로는 많은 도움을 받은 딥러닝 모델 중 하나라고 할 수 있을 것 같습니다.

BIM은 쉽게 말하자면, 도시나 건축물을 가상의 디지털 모델로 표현한 데이터베이스로, 요즘에는 디지털트윈으로 자주 언급됩니다. 그래서, 건설정보모델의 약자인 BIM으로 불립니다. 스마트시티를 관제할 때 BIM 기술이 포함됩니다.

이 외에, 제가 저술한 책들은 제 전공인 소프트웨어 공학, 컴퓨터 그래픽스와 건설 공학을 융합한 내용을 다룹니다.

현재는 하나의 지식만으로는 가치를 만들기 쉽지 않습니다. 만약, 딥러닝과 같은 소프트웨어 도구를 이해하여 잘 다룰 수 있고, 의학, 건설, 교통, 물류와 같은 다른 전공분야에 이를 사용할 수 있다면, 큰 가치를 얻을 수 있다고 생각합니다.

Q. 그렇다면 딥러닝 엔지니어들이 YOLO를 주목해야 하는 이유에는 어떤 것들이 있을까요?

YOLO는 개선된 많은 버전이 나오면서 사용이 매우 편리해졌습니다. 모델을 사용할 때, 하이퍼 파라메터 튜닝 같은 도구도 함께 제공되는 오픈 소스도 릴리즈되었습니다. 딥러닝 모델이 사용이 어렵다면 실용성이 낮을 수 밖에 없겠죠. 이런 면에서 YOLO는 정확도과 실용성면에서 두 마리 토끼를 잡았다고 생각합니다.

YOLO 모델은 정말 다방면에서 활용도가 매우 높은 모델인 것 같네요! 이처럼 딥러닝 엔지니어를 꿈꾸시는 분들이 YOLO 강의를 통해 YOLO 모델에 대해 학습한다면 관련 실무 및 연구에서 더 폭넓은 시야를 가질 수 있을 것 같습니다.


Q. 이 강의를 통해 경력별 딥러닝 현업자/혹은 딥러닝에 관심이 있는 분들께서 어떤 인사이트를 얻어갈 수 있을지 설명해주실 수 있을까요?

본 강의를 수강하시면 기본적으로 YOLO란 도구를 사용할 수 있는 방법을 익히게 될 것입니다. 도구 개발 목적이나 구조를 알면 도구를 좀 더 편하게 사용할 수 있죠!
필요할 때는 서비스에 좀 더 적합한 딥러닝 구조를 탐색하고 싶을 때도 있을 겁니다. 그러므로, YOLO의 하이퍼 파라메터, 아키텍처를 공부하고, 간단히 YOLO 모델 구조를 코드로 구현해 보는 시간을 가질 겁니다.
아울러, YOLO 모델 개발에 필요한 다양한 개발 도구 사용 방법을 관련 자료와 함께 실습하며 직접 체화하는 시간을 가져볼 것입니다.

Q. 마지막으로 딥러닝 엔지니어로서 실무 역량을 쌓고자 하는 분들에게 해주실만한 조언이 있으실까요?

사실 유명한 딥러닝 모델은 대부분 오픈소스로 릴리즈되어, Keras, PyTorch로 구현되어 있습니다. CoLab같은 클라우드 기반 딥러닝 코드 실행 서비스를 이용하면, 본인이 직접 GPU 드라이버, 개발환경을 설치할 필요도 없어졌습니다. 하지만 실무에서는 직접 리눅스를 설치하고, GPU 등 개발 환경을 설정하는 등의 작업을 해야할 경우가 많습니다. 처음에는 이미 구현된 환경에서 딥러닝을 접해, 개념을 익히고, 간단한 서비스 부터 구현해 보십시요. 그리고, 좀 더 욕심이 생기면, 좀 더 복잡한 모델도 구현해보고, 딥러닝 서비스 환경도 직접 만들어보는 경험을 가지면 좋습니다. 딥러닝은 지금도 급격하게 발전하는 기술 분야입니다. 릴리즈된 모든 딥러닝 개념을 다 따라하려 하지 말고, 본인이 서비스하고 싶은 적절한 딥러닝 모델을 하나 정해, 처음부터 끝까지 구현해보는 과정을 거치는 것이 좋을 것입니다.


많은 산업분야에 활용되고 있는 YOLO를 단독 주제로 학습 및 실습해 볼 수 있는 이번 강의가 딥러닝 분야에 몸을 담고 계신 모든 연구자, 실무자, 또 딥러닝에 관심이 있으신 분들께 도움이 될 것 같습니다. 특히 실습을 진행하는 데에 필요한 코드까지 제공한다고 하니 효율적으로 학습하실 수 있는 기회인 것 같습니다.

여러분들이 이번 패스트캠퍼스의 '가장 빨리 도달하는 객체 감지 알고리즘 YOLO!' 강의를 통해 딥러닝 인사이트를 얻고 실무에 활용할 수 있는 수준으로 나아가시기를 바라겠습니다.


지금 패캐머들이 읽고있는 BEST 아티클이 궁금하다면

이 글과 연관된 주제의 추천 강의