d라이브러리









[논문탐독] 카메라 단 한 대로 보행자 찾는 자율주행

 

모든 사람은 재능이 각기 다릅니다. 누군가에겐 아주 쉬운 일이 다른 누군가에겐 어려운 일이 될 수도 있습니다. 운전도 마찬가지입니다. 수십만 원을 들여 면허를 따고도 운전대를 잡지 못해 면허증을 신분증으로만 쓰는 사람도 있습니다. 문제가 생기면 뜯어고쳐야 직성이 풀리는 공학자들이 이를 두고 볼 리 없습니다. 운전대를 누구에게 맡겨야 모두가 행복하게 자동차를 탈 수 있을지 고민했습니다. 그 결과, 컴퓨터에게 운전을 맡기자는 결론에 도달했습니다. 컴퓨터가 판단을 하는 기술, 인공지능(AI)입니다.


컴퓨터에게 판단을 맡기기 위해서는 컴퓨터를 교육하는 과정이 필요합니다. 이런 시도를 ‘머신러닝’이라고 부릅니다. 머신러닝은 탄생 80년을 앞둔 역사 깊은 학문이지만 암흑기가 길었습니다. 머신러닝을 구현하기엔 컴퓨터가 충분히 똑똑하지 않았기 때문입니다. 이 문제는 21세기 들어서 그래픽처리장치(GPU) 등 하드웨어의 발전에 힘입어 해결됐습니다. 머신러닝이 폭발적으로 발전했고, 공학자들은 컴퓨터에게 운전 교육을 할 수 있게 됐습니다. 그렇게 ‘자율주행’이 탄생했습니다.

평범한 카메라로 비싸고 복잡한 센서 대체


운전은 단순히 액셀러레이터를 밟고 핸들을 돌리는 작업이 아닙니다. 신호등도 보고 장애물을 피하는 등 생각보다 신경 쓸 부분이 많습니다. 특히 불시에 나타나는 사람을 제대로 피하지 못한다면 끔찍한 사고로 이어질 수 있습니다. 도로 위 장애물의 종류와 위치를 파악하는 일이 무엇보다 중요합니다.


주변 상황을 알아내려면 3차원 공간 정보를 정확히 분석해야 합니다. 대부분의 사람들은 눈이 두 개라서 물체의 3차원 위치를 쉽게 파악할 수 있습니다. 컴퓨터에도 이렇게 두 개 이상의 센서가 있다면 공간 정보 파악이 더 쉽겠죠. 실제로 이런 전략을 적용한 시스템을 ‘스테레오 카메라’라고 합니다. 두 카메라에 찍힌 물체의 위치 차이를 이용해 물체의 3차원 위치를 파악합니다. 레이저를 이용하는 방법도 있습니다. ‘라이다(LiDAR)’는 레이저가 물체에 반사돼 돌아오는 시간을 측정해 물체의 위치를 계산합니다. 학교에서 로봇 만들기 실습을 할 때 사용하는 초음파 센서와 비슷한 원리입니다.


스테레오 카메라와 라이다는 모두 현재 자율주행 구현을 위해 널리 사용되고 있는 기술입니다. 하지만 가격이 비싸다는 치명적인 단점이 있습니다. 예를 들어 라이다의 경우 꾸준한 개발로 많이 저렴해졌음에도, 여전히 한 대에 수백만 원 수준으로 가격이 만만치 않습니다. 자율주행 자동차를 만들려면 이런 센서가 여러 개 필요한 만큼 상용화에 큰 걸림돌로 작용하고 있습니다.


공학자들은 비싼 기기 대신 싸고 구하기 쉬운 일반 카메라를 공간 인식과 자율주행에 이용할 방법을 찾기 시작했습니다. 처음 찾은 답은 삼각함수였습니다. 중학교 때 배우는 간단한 삼각함수를 이용하면 평면 위에 위치한 2차원 좌표에서 3차원 좌표를 추정할 수 있습니다. 다만 삼각함수는 ‘카메라의 높이와 각도가 일정할 것’ ‘바닥이 수평일 것’ 등 조건이 까다로워, 인도가 차도보다 높고 오르막길 등 경사진 곳이 있으며 과속방지턱이 존재하는 변화무쌍한 실제 도로에서 활용하기 어렵습니다. 이에 따라 현재는 도로 주행 상황에서 보행자의 경로를 자동차의 경로와 분리하는 등, 세부 조건을 조절하는 방법으로 보행자의 위치를 추정하는 기술이 연구되고 있습니다.

머신러닝으로 보행자 위치 파악


오늘 소개할 논문은 보행자의 3차원 위치를 추정할 새로운 방법을 설명하고 있습니다. 알렉산더 알라히 스위스 로잔연방공대 전자공학과 교수팀은 인공신경망을 이용해 단안 카메라로도 보행자의 위치를 정확히 도출하는 방법을 고안해 2019년 논문 사전 등록 사이트 ‘아카이브’에 공개했습니다.arXiv:1906.06059


보행자를 찾으려면 일단 어떤 것이 ‘사람’인지 구분해야 합니다. 우리는 사진에 찍힌 보행자를 한눈에 알아볼 수 있지만, 컴퓨터에게 사람을 인식시키는 것은 생각보다 복잡합니다. 연구팀은 여기에 ‘골격 검출(skeleton detection)’이라는 합성곱신경망(CNN)을 적용했습니다. 골격 검출은 이미지 검출에 주로 사용되는 인공신경망 중 하나로 사람의 관절 부위를 찾은 뒤 이들을 서로 이어 골격의 모양을 유추합니다. ‘마스크(Mask) R-CNN’ ‘오픈포즈’ 등의 기술이 대표적입니다. 국내에서도 지난해 카카오브레인이 공개한 ‘포즈 API’로 이 기술을 간단히 체험해볼 수 있습니다.


연구팀은 ‘PifPaf’라는 골격 검출 기술로 이미지에서 보행자의 머리와 어깨, 무릎, 발의 관절을 검출했습니다. 관절을 연결하면 보행자의 신체 크기와 자세를 파악할 수 있습니다.


이때 카메라가 찍은 사진을 100% 신뢰할 수는 없다는 문제가 있습니다. 어떤 카메라는 아주 넓은 범위를 담아내고 어떤 카메라는 좁은 범위를 커다랗게 담아내는데, 인간과 달리 컴퓨터는 이렇게 다양한 종류의 사진에서 실제 물체의 크기를 유추하지도, 원근을 구별하지도 못합니다. 


연구팀은 카메라의 초점거리와 주점(주요 위치를 나타내는 점)을 사용해 이미지 평면의 좌표를 ‘정규화’하는 방법으로 이 문제를 해결했습니다. 정규화를 거친 좌표는 카메라의 종류와 관계없이 실제 크기와 비례하는 가상의 좌표계에 나타납니다. 이후 정규화한 보행자의 골격 좌표에 딥러닝을 적용해 보행자의 3차원 좌표를 추정합니다. 


연구팀은 여기에 인공신경망을 설계했습니다. 완전 접속망(fully connected network)이라는 아주 기본적인 형태의 딥러닝 모델에, 입력값은 그대로 출력하고 출력값과 입력값의 차이만을 학습하는 잔류연결(residual connection) 신경망을 촘촘히 연결했습니다. 잔류연결은 깊은 인공신경망도 잘 훈련되도록 돕는 역할을 합니다. 이렇게 완성된 신경망은 보행자가 기준 바닥보다 더 높거나 낮은 곳에 있어도, 보행자가 앉는 등 자세를 바꿔도 높은 정확도로 검출할 수 있습니다. 이를 통해 오르막길을 오르면서도 카메라가 보행자의 위치를 검출할 수 있게 됐습니다.


다음으로는 안전을 위해 검출 결과의 정확성을 검증하는 과정이 필요합니다. 흔히 인공신경망의 일부분을 무작위로 선택해 마비시킨 뒤 결과물을 도출하도록 하고, 이후 이를 모아 평균(m)과 분산(v)을 계산하는 방법을 사용합니다. 이를 통해 ‘보행자는 대략 m이라는 위치에 존재하는 것으로 추정되며, 실제 위치는 대략 v 정도 벗어나 있다’라는 식의 확률분포로 위치를 나타낼 수 있게 됩니다.

 

하드웨어 문제를 소프트웨어로 해결하다


이 논문에서는 스테레오 카메라나 라이다가 아닌 일반 카메라로 보행자의 3차원 좌표를 계산했습니다. 바닥이 수평이라는 전제 하에만 적용되는 삼각함수를 사용하는 방식과 달리, 바닥이 울퉁불퉁하거나 기울어져 있어도 측정이 가능하다는 게 장점입니다. 다만 실시간으로 사용하기에 다소 느리다는 점은 아직 한계로 꼽힙니다.


이번 논문은 단안 카메라의 하드웨어 한계를 머신러닝이라는 소프트웨어로 극복하려는 시도라는 점에서 의미가 있습니다. 이런 시도들이 빛을 발해 언젠가 모든 사람이 운전 실력과 상관없이 자율주행을 통해 편안하고 안전하게 자동차를 이용할 날을 꿈꿔 봅니다. 

이 기사의 내용이 궁금하신가요?

기사 전문을 보시려면500(500원)이 필요합니다.

2021년 07월 과학동아 정보

  • 이귀용 울산과학기술원(UNIST) 전기전자공학과 석사과정 연구원
  • 에디터

    이영애 기자

🎓️ 진로 추천

  • 컴퓨터공학
  • 전자공학
  • 정보·통신공학
이 기사를 읽은 분이 본
다른 인기기사는?