컴퓨터 비전을 통해 기계가 LEGO 설명서를 읽도록 교육하기

Reading Time: 3 minutes

복잡한 과정 때문에 조립 설명서를 읽으면서 머리를 긁적이던 LEGO 애호가들이 이제 스탠포드 대학과 MIT 및 Autodesk의 새로운 연구 덕분에 수월하게 조립을 할 수 있을 것입니다. 연구원들은 2D 설명서를 기계가 이해하여 3D LEGO 키트를 만들 수 있는 여러 단계로 변환해주는 딥 러닝 프레임워크를 설계했습니다. 이 작업은 사람들이 블럭을 조립하는 것을 도와주는 기계를 만드는 데 초점을 맞춘 연구를 진척시킬 수 있을 것입니다. 

“LEGO 설명서는 지시에 따라 작업을 완수하는 인간의 핵심 기술의 전형을 보여주는 독립적인 환경을 제공합니다. 우리는 시각적 장면 파싱 및 프로그램 합성 분야의 최신 기술을 활용하여 LEGO에서 시작해서 최종적으로 현실 세계의 시나리오를 목표로 하는 이와 유사한 기술을 지닌 기계를 만드는 것을 목표로 하였습니다.”라고 스탠포드대학교 컴퓨터공학과 조교수이자 본 논문의 책임저자인 Jiajun Wu는 말했습니다.

연구원들에 따르면, AI로 2D 설명서를 변환하는 데 있어서 두 가지 주요 과제가 있습니다. 첫째, AI는 2D 설명서의 그림들을 기반으로 각 조립 단계의 3D 모양들 사이의 조화 여부를 배우고 이해해야 합니다. 여기에는 조각들의 방향과 정렬에 대한 이해가 포함됩니다. 

또한 벽돌들을 정렬하고 반조립 모델 안에서 벽돌의 3D 배치를 추론할 수 있어야 합니다. LEGO 만들기에서는 작은 조각들이 결합되어 기타의 머리와 목, 몸체 등 더 큰 부분을 형성합니다. 이러한 더 큰 부분들이 결합되어 전체 프로젝트가 완성됩니다. 이러한 특성 때문에 기계가 LEGO의 모든 벽돌을 파악해야 하고 심지어 LEGO 블럭의 튀어나온 부분과 움푹 패인 부분처럼 보이지 않을 수도 있는 것들까지 파악을 해야 한다는 점에서 어려움이 더 큽니다.

연구팀은 2D 설명서를 기계가 실행할 수 있는 계획으로 변환하여 정의된 대상을 만들 수 있는 모델을 구축하기 위해 노력했습니다. 이 작업을 수행하기 위한 방법으로 현재 검색에 기초한 방법과 학습에 기초한 방법의 두 가지 접근 방법이 있는데, 두 가지 모두 한계가 있습니다. 

검색 기반 방법은 조각들과 설명서 그림들의 가능한 3D 배치를 연구하여 올바른 배치를 찾아내는 것입니다. 이 방법은 계산 집약적이고 느리지만 정확합니다.  

학습 기반 모델은 뉴럴 네트워크를 이용하여 특정 구성 요소의 3D 배치를 예측합니다. 이 방법은 빠르지만 정확하지가 않은데, 보이지 않는 3D 형태를 사용할 때 특히 그렇습니다.

이러한 한계점을 해결하기 위해 연구원들은 설명서를 실행 가능한 계획으로 바꿔주는 네트워크(MEPNet)를 개발하였는데, 이것은 연구에 따르면 딥 러닝과 컴퓨터 비전을 사용하여 “뉴럴 2D 키포인트 감지 모듈과 2D-3D 투영 알고리즘”을 통합하는 것입니다. 

이 모델은 각 단계마다 예측 시퀀스를 작업하면서 설명서를 읽고 조각들을 추가할 위치를 결정하고 3D 포지셔닝을 추론합니다. 이 모델은 각 단계에서 조각을 어떻게 배치할지를 예측하고 나서 설명서를 처음부터 분석하여, 로봇이 LEGO 형상을 만들 때 참고할 수 있는 만들기 계획을 수립할 수 있습니다.

“각 단계마다 입력 정보는 1) 이전 단계에 만들어진 원시 벽돌과 부품들의 세트를 3D로 표현한 것, 그리고 2) 구성 요소들을 어떻게 연결해야 하는지를 보여주는 목표 2D 이미지로 구성됩니다. 예상되는 출력은 이 단계와 관련된 모든 요소들의 (상대적인) 배치 정보입니다.”라고 연구원들은 논문에 적었습니다.

그림 1. 연구원들은 LEGO 설명서(a)를 기계가 실행할 수 있는 계획(b)으로 변환하여 목표로 하는 형태(c)를 만들어주는 MEPNet 모델을 생성합니다.

이들은 72가지 유형의 벽돌로 구성된 LEGO 키트에서 최초의 합성 교육 데이터를 만들었고 “LEGO 스타일의 디지털 만들기 설명서를 생성”하기 위해 오픈 소스 애플리케이션인 LPub3D의 이미지 렌더링을 사용했습니다. 

연구원들은 검증을 위해 10세트, 테스트를 위해 20개의 세트를 사용하여 총 8,000개의 교육 설명서를 생성했습니다. 데이터 세트별로 약 200개의 개별 단계가 존재하므로, 교육 시 약 20만 개의 단계가 진행되게 됩니다.  

“우리는 합성을 통해 생성한 데이터 세트(데이터의 실제 키포인트, 마스크, 회전 정보가 있음)를 철저히 감독하여 MEPNet을 학습시킵니다.”라고 연구원들은 논문에 적었습니다. MEPNet 모델은 NVIDIA Turing 아키텍처 기반의 NVIDIA TITAN RTX GPU 4개에서 5일 동안 트레이닝되었습니다.

그리고 연구원들은 만들기 유형이 LEGO와 비슷한 Minecraft 집 데이터 세트에서 이 모델을 테스트했습니다. 

MEPNet을 기존의 모델들과 비교하여 연구원들은 이 모델이 실제 LEGO 세트나 합성으로 생성된 설명서, Minecraft 예시의 다른 모델들보다 더 우수하다는 것을 발견했습니다. 

MEPNet은 블럭을 어떻게 배치해야 할지를 추정하는 부분에서 더 정확했으며 보이지 않는 조각들을 가지고 만드는 과정도 더 잘 파악할 수 있었습니다. 그리고 연구원들은 이 모델이 합성으로 생성된 설명서에서 학습한 내용은 실제 LEGO 설명서에 적용할 수 있다는 것을 발견하였습니다.  

계획을 실행할 수 있는 로봇을 만드는 것도 필요한데, 연구원들은 이 작업을 출발점으로 생각하고 있습니다.

“우리의 장기적인 목표는 사람이 복잡한 대상을 만들고 조립하는 데 도움을 줄 수 있는 기계를 만드는 것입니다. 우리는 우리의 접근법을 IKEA 가구 같은 다른 조립 분야로 확장하는 것을 생각하고 있습니다.”라고 스탠포드대학교 컴퓨터공학과에서 박사 과정을 막 시작한 주 저자 Ruocheng Wang은 말했습니다. 

lego_release 코드는 GitHub에서 사용할 수 있습니다.

LEGO 그림 설명서를 기계가 실행할 수 있는 계획으로 변환하기 논문을 읽어보세요.
연구 프로젝트 페이지를 확인하세요.

이 블로그에 열거된 SDK의 대부분의 독점 액세스, 얼리 액세스, 기술 세션, 데모, 교육 과정, 리소스는 NVIDIA 개발자 프로그램 회원은 무료로 혜택을 받으실 수 있습니다. 지금 무료로 가입하여 NVIDIA의 기술 플랫폼에서 구축하는 데 필요한 도구와 교육에 액세스하시고 여러분의 성공을 가속화 하세요.

Discuss (0)

Tags

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다