[스트라드비젼=유동규 알고리즘 엔지니어] 자율 주행차를 실제 환경에서 주행이 가능하게 하기 위해서는 크게 인지, 판단, 제어가 필요하며 이 중 가장 선행되어야 할 것은 주변 환경에 대한 인지다.

주변 환경을 인지하기 위한 대표적인 센서로 카메라, 레이더, 라이다가 있다. 다만 차량과 사람, 표지판과 신호등을 인식하는 등 자율 주행 환경에서 주변 환경과 물체를 검출하고 인식하기 위해서는 색상과 형태에 대한 정보가 필요하다. 이러한 이유로 물체의 거리와 위치만을 알 수 있는 레이더와 라이다보다 카메라에서 취득된 이미지를 주로 사용하게 된다.

최근의 이미지 기반 인식 기술은 기존에 비해 월등한 성능과 하드웨어의 발전으로 인해 대부분 딥러닝 기술을 이용해 비전 인식을 하고 있고, 딥러닝 기반 비전 인식 기술 개발을 위해서 가장 중요한 부분은 많은 양의 잘 정제된 데이터이다.

[이미지=게티이미지뱅크]
[이미지=게티이미지뱅크]

딥러닝은 기본적으로 여러 개의 매개 변수를 가진 일종의 함수로 볼 수 있는 네트워크에 수많은 데이터를 입력으로 주어 나오는 출력들과 목푯값들 사이의 에러를 계산하는 손실 함수를 이용한다. 손실 함수의 출력 에러를 낮추는 방식으로 데이터의 다양한 특징과 특징들의 분포를 자동으로 학습하며 목표로 하는 기능의 성능을 달성하게 된다.

다양한 환경에서의 인식 성능을 높이기 위해서 네트워크의 매개 변수는 굉장히 많아지고 있기 때문에 충분하지 않은 수의 데이터를 기반으로 학습을 진행하게 되면 학습 데이터에 과적합(Overfitting) 되게 되고, 일반화 성능이 낮아진다. 학습 데이터에 대한 성능은 과도하게 높아지지만 이를 제외한 다양한 환경에서의 인지 성능이 떨어지게 된다. 하지만 많은 양의 데이터가 있더라도 데이터가 잘 정제되지 않고 데이터마다 서로 일관되지 않은 기준으로 라벨링 되게 된다면 네트워크 또한 일관되지 않은 기준으로 학습되기 때문에 데이터에 잘 적합 되지 못하고 성능이 낮아지게 된다. 이 때문에 잘 정제되고 정리된 많은 양의 데이터가 필수이다.

하지만 많은 양의 데이터는 많은 양의 비용과 노력이 들어 쉽게 취득하기가 어렵고, 충분한 양의 데이터가 있다고 하더라도 해당 데이터를 일관된 기준으로 라벨링 하기는 더욱 어려운 일이다. 자율주행 시나리오에서 동물이나 유모차가 도로 위에 있거나, 자주 등장하지 않는 표지판 등 일반적이지 않은 시나리오의 데이터는 절대적인 양 자체가 적거나 취득이 굉장히 힘들기 때문에 아무리 데이터를 취득한다고 하더라도 데이터 사이의 불균형이 나타날 수밖에 없으며 이 때문에 결국 인식 네트워크의 성능에도 불균형이 나타나 성능이 떨어질 수밖에 없다. 이를 개선하기 위해서 데이터를 생성하거나 변형하는 방법이 주로 이용된다.

데이터를 늘리는 방법에는 여러 가지가 있다. 자주 등장하지 않는 데이터를 간단하게 변형 후 복사하여 수량을 늘리는 방식으로 전체 데이터에서 해당 데이터의 비율을 늘리는 데이터 증강(Augmentation), 가상의 시뮬레이터를 이용해서 데이터를 생성하고 취득하는 가상 데이터(Synthetic data), 딥러닝 네트워크를 이용해 기존 데이터의 스타일을 바꾸거나 변형하는 데이터 전이(Transfer) 및 데이터를 생성하는 데이터 생성(Generation) 기술이 대표적이다.

데이터 증강의 경우 기존 데이터를 간단한 알고리즘을 사용해 복제 및 변경하는 것이다. 이미지에서는 명암 및 대조 변경, 이미지 좌우 반전, 노이즈를 추가하는 등의 방법이 적용되고 있지만 기존의 데이터 형태에서 크게 벗어나지 못하므로 네트워크의 일반화 성능을 높이기에는 한계가 있다. 특히 기존에 데이터가 없는 물체나 표지판을 인식해야 하는 경우는 적용이 불가능하다.

가상 데이터의 경우 3D 시뮬레이터를 이용해 데이터를 취득할 수 있다. 특이한 시나리오의 데이터를 만드는 것이 가능하고 데이터 라벨링 작업도 자동으로 가능하다는 매우 큰 장점을 가지고 있다. 다만 실제와 유사한 데이터를 생성하는 것이 힘들고 시뮬레이터 구축에 필요한 비용이 많이 든다는 단점이 있다.

네트워크를 통한 데이터 생성 및 전이 기술의 경우 다양한 고품질의 데이터를 랜덤하게 생성하거나 원하는 스타일과 환경으로 전이할 수 있지만, 데이터 생성 및 전이 네트워크를 학습하기 위해서도 많은 양의 데이터가 필요하고 랜덤하게 데이터를 생성하거나 변환하는 경우 사용자가 컨트롤할 수 있는 여지가 적어 원하는 상황의 데이터 생성이 쉽지 않다. 데이터 생성에서 사용자가 개입하고 컨트롤할 수 있는 여지를 만들어 원하는 환경과 원하는 물체를 생성할 수 있게 해준다면 네트워크의 성능을 크게 끌어올릴 수 있다.

[이미지=게티이미지뱅크]
[이미지=게티이미지뱅크]

최근의 생성, 전이 네트워크는 크게 생성기와 판별기가 대립해 고품질의 이미지 데이터를 생성하는 방법을 학습하는 GAN(Generative Adversarial Networks), 랜덤한 노이즈에서 반복적인 노이즈 제거를 통해 이미지를 생성하는 확산 모델(Diffusion Model), 이미지의 통계적 분포를 학습해 이미지를 생성하는 VAE(Variational AutoEncoder), 출처 이미지에서 스타일을 추출해 목표 이미지에 적용시켜주는 스타일 변환 모델(Style Transfer) 등이 있다.

최근 들어 해당 모델들을 컨트롤할 수 있게 만드는 논문들이 많이 등장하고 있는데, 대표적으로 멀티모달 GAN 및 확산 모델들이 있다. 멀티모달 GAN은 생성 네트워크의 입력으로 스타일 혹은 잠재(Latent) 벡터를 입력받아 여러 도메인 중 원하는 도메인의 이미지를 생성한다. 멀티모달 확산 모델들의 경우 주로 대형 언어 네트워크 모델의 출력값들을 입력으로 받아 원하는 프롬프트에 대응하는 이미지를 생성할 수 있다.

스트라드비젼에서는 위와 같은 방법론들을 응용 및 활용해 자율 주행 시 필요한 데이터를 생성하고 특이 케이스 상황에서 성능을 끌어올릴 수 있었다. 대표적으로 표지판 인식과 휠체어 및 유모차, 동물 검출이 있다.

표지판 인식의 경우 앞서 언급한 데이터에 따른 여러 문제점이 존재한다. 먼저 자주 등장하는 표지판의 경우 매우 많은 수의 데이터가 있지만 자주 등장하지 않는 표지판의 경우 데이터가 매우 적거나 심지어 없는 경우도 있다. 예를 들면 한국에서 시속 30, 50Km 속도 제한 표지판의 경우 전체 데이터에서 매우 큰 비중을 차지한다. 그만큼 자주 도로에서 등장하기 때문이다. 반대로 공사구역 표지판, 야생 동물 출현 안내 표지판 혹은 시속 110Km 표지판 등의 경우는 일정 구간에서만 등장하는 경우가 많아 출현 빈도가 낮고 데이터의 비율이 상대적으로 낮은 편이기 때문에 극소수만 존재하는 경우가 많다. 그나마 다행인 것은 표지판의 경우 표지판의 규정을 국가에서 관리하기 때문에 어떤 종류가 있는지, 표지판마다 심볼의 생김새가 어떠한지 파악하기는 용이하다.

그림 1. 표지판 심볼과 생성된 이미지 [사진=스트라드비젼]
그림 1. 표지판 심볼과 생성된 이미지 [사진=스트라드비젼]

스트라드비젼에서는 수집된 실제 이미지와 더불어 표지판 생성 GAN 네트워크를 사용하여 원하는 표지판을 생성하고 표지판 인식 네트워크 학습 시 이용해 실제로 제품에 활용하고 있다. 단순한 GAN 네트워크를 이용해 표지판을 생성하도록 하면 잠재 벡터에 따라 랜덤한 데이터가 생성될 뿐이다. 생성된 데이터조차 원래 존재하는 표지판의 종류에 가까울뿐더러 원하는 종류의 표지판을 생성하는 것이 불가능하다.

하지만 랜덤하게 현실적인 이미지를 출력하는 네트워크가 아닌, 정해진 표지판의 심볼들을 기준으로 심볼 이미지를 네트워크 입력으로 주면 이를 변환해 실제 이미지와 유사하게 심볼에 해당하는 표지판과 배경을 생성하도록 네트워크를 학습시켰다. 생성을 원하는 표지판의 심볼만 있다면 해당 표지판에 해당하는 실제 이미지에 가까운 데이터들을 네트워크를 통해 무한정 생성할 수 있게 됐다. 심지어 데이터가 없는 표지판이라도 해당 표지판의 이미지가 어떻게 생겼는지 알기만 하면 원하는 표지판을 생성해 인식기를 학습할 수 있다.

휠체어와 유모차, 동물들은 기본적으로 수집하기도 힘든 편이며 특히 동물은 나라마다 등장할 수 있는 지역도 다르다. 예를 들면 우리나라의 도로에서 볼 수 있는 동물은 개나 고양이가 대부분이지만 인도에는 거리에 많은 수의 소가 돌아다닌다. 휠체어와 유모차의 경우도 데이터 수집 시 자주 등장하지 않고 특히 휠체어의 경우 도로나 인도에 등장하는 경우가 적기 때문에 학습하기가 힘들다. 검출기의 성능을 높이기 위해서는 해당 물체들의 데이터가 추가되어야 하고, 우리가 원하는 상황을 만들 수 있어야 한다.

그림 2. 배경과 어우러지도록 자동으로 변경된 유모차 [사진=스트라드비젼]
그림 2. 배경과 어우러지도록 자동으로 변경된 유모차 [사진=스트라드비젼]

스트라드비젼에서는 휠체어, 유모차 및 동물 등을 검출할 때 전이 네트워크와 이미지 분할 네트워크를 사용해 데이터를 보강 및 특이 시나리오를 제작하여 검출기 학습에 사용했다. 일반적으로 우리가 수집한 데이터셋에 추가로 공개된 데이터셋을 수집해 사용하더라도 한계가 많다. 공개된 도로 환경의 데이터는 결국 우리가 수집한 데이터와 마찬가지로 동물 등의 데이터 비율이 적기는 마찬가지다. 동물들의 데이터를 모아 놓은 데이터는 많지만 대부분 분류기 학습을 위한 데이터들이고, 그렇기 때문에 물체의 위치를 파악해야 하는 검출기 학습에는 부적절하다. 그렇기 때문에 앞선 데이터를 검출기 학습에 활용하기 위해서 데이터를 생성 및 보강하는 프레임워크를 제작했다.

우선 수집한 데이터 혹은 공개된 데이터에서 원하는 물체를 사용자의 가이드에 따라 이미지에서 분할할 수 있는 네트워크를 제작한 후 분할된 물체를 배경 이미지 위 원하는 위치에 붙여넣어 데이터를 추가했다. 원하는 배경의 원하는 위치에 새로운 물체를 추가할 수 있고 라벨링 작업도 추가로 할 필요 없이 붙여 놓은 위치가 학습을 위한 타깃이 되게 된다.

다만 단순히 물체를 배경에 붙여넣는 경우 주변과 어울리지 않고, 물체의 가장자리 부분이 구분이 명확하게 되기 때문에 해당 데이터를 네트워크에 학습 시 과적합 되어 오히려 성능이 떨어질 수 있다. 물체를 붙여넣은 후 추가로 주변 환경의 특징과 어우러지도록 변환하는 전이 네트워크를 사용해 물체를 변형해주었고 실제 검출기의 성능을 높일 수 있었다.

자율주행차의 비전 인식 기술 개발을 위해서는 다양한 환경의 많은 데이터가 필요하다. 하지만 단순히 데이터를 다량 수집하고 만드는 것은 비효율적이고 결론적으로 원하는 성능을 달성하기도 힘들다. 잘 정제되고 제어할 수 있는 데이터 생성 및 라벨링 프로그램과 프로세스를 갖추는 것이 중요하다.

회원가입 후 이용바랍니다.
개의 댓글
0 / 400
댓글 정렬
BEST댓글
BEST 댓글 답글과 추천수를 합산하여 자동으로 노출됩니다.
댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글수정
댓글 수정은 작성 후 1분내에만 가능합니다.
/ 400
내 댓글 모음
저작권자 © 테크월드뉴스 무단전재 및 재배포 금지