Pollen-Vision: 로봇 분야 제로샷 비전 모델을 위한 통합 인터페이스
Pollen-vision은 로봇이 알 수 없는 물체를 잡을 수 있는 자율성을 제공하도록 설계된 오픈소스 라이브러리로, 선별된 제로샷 비전 모델 컬렉션을 제공합니다. 이를 통해 사전 학습 없이 물체의 공간 좌표 (x, y, z)를 결정할 수 있는 3D 객체 감지 파이프라인을 만들 수 있습니다.
Pollen-Vision의 핵심 비전 모델
소비자용 GPU에서도 다양성과 실시간 성능을 보장하기 위해, 이 라이브러리는 세 가지 주요 제로샷 모델을 통합합니다:
- OWL-ViT (Open World Localization - Vision Transformer): Google Research에서 개발한 이 모델은 텍스트 조건부 2D 객체 위치 추정을 RGB 이미지에서 수행하며, 바운딩 박스를 생성합니다.
- Mobile SAM (Segment Anything Model): Meta AI의 SAM을 경량화한 버전으로, 바운딩 박스나 포인트를 입력하면 제로샷 이미지 분할을 제공합니다.
- RAM (Recognize Anything Model): OPPO Research Institute에서 만든 RAM은 텍스트 설명을 기반으로 물체 존재 여부를 식별하는 제로샷 이미지 태깅을 수행하여 다른 모델의 성능을 최적화하는 데 도움을 줍니다.
3D 객체 감지 파이프라인 및 구현
pollen-vision은 개발자가 독립적인 모듈을 결합하여 2D 이미지 데이터를 3D 공간 좌표로 변환하는 파이프라인을 만들 수 있게 합니다.
2D 감지에서 분할까지
라이브러리를 사용하면 OWL-ViT가 객체(예: "paper cups")를 감지하고 바운딩 박스를 생성한 뒤, 이를 Mobile SAM에 전달하여 정밀한 분할 마스크를 만들 수 있는 파이프라인을 구축할 수 있습니다.
3D 위치 계산
2D 이미지를 3D 좌표로 변환하기 위해, 라이브러리는 다음 과정을 사용합니다:
- Centroid Estimation: 이진 분할 마스크의 중심점을 계산하여 픽셀 공간의 (u, v) 위치를 추정합니다. 바운딩 박스 대신 마스크를 사용하면 배경 픽셀이 깊이 평균을 왜곡하는 것을 방지합니다.
- Depth Integration: 픽셀 좌표와 깊이 정보(미터 단위) 및 카메라의 내부 행렬(K)을 결합하여, 시스템은 카메라 기준 프레임에서 객체 중심점의 (x, y, z) 위치를 계산합니다.
- Robot Frame Transformation: 카메라가 로봇 기준점에 대해 어느 위치에 있는지 알 경우, 좌표를 로봇 프레임으로 변환하여 엔드 이펙터가 물체 위치로 이동해 잡을 수 있게 합니다.
성능 및 최적화
OWL-ViT의 추론 시간은 제공된 프롬프트 수에 따라 달라집니다. RTX 3070 GPU가 장착된 노트북에서 테스트한 결과는 다음과 같습니다:
- 1 프롬프트: 프레임당 약 75ms
- 2 프롬프트: 프레임당 약 130ms
- 5 프롬프트: 프레임당 약 330ms
- 10 프롬프트: 프레임당 약 650ms
지연 시간이 선형적으로 증가하기 때문에, RAM 모델을 사용해 이미지에 존재하는 물체만을 먼저 식별한 뒤 OWL-ViT에 프롬프트를 전달함으로써 처리 속도를 최적화합니다.
현재 제한 사항 및 향후 로드맵
pollen-vision이 기본 로봇 조작을 위한 기반을 마련했지만, Pollen Robotics 팀은 개선이 필요한 여러 영역을 확인했습니다:
- Detection Consistency: OWL-ViT는 일관성이 부족해 모든 물체를 감지하지 못할 수 있으며, 팀은 더 나은 대안을 찾고 있습니다.
- Temporal and Spatial Consistency: 현재 모든 데이터가 매 프레임마다 재계산됩니다. 팀은 일관성을 높이기 위해 포인트 트래킹을 통합하는 작업을 진행 중입니다.
- Grasping Sophistication: 현재는 정면 잡기에만 제한됩니다. 향후 작업은 6D 감지와 향상된 그리핑 포즈 생성에 초점을 맞출 예정입니다.
- System Speed: 파이프라인 전체 실행 속도를 향상시킬 여지가 있습니다.