관련 포스팅
5. 결과
5.1 전체 시스템 소개
3D scanner image
3D scanner operating diagram
이번 프로젝트에 제작한 3D 스캐너는 그림과 같이 원통 좌표계를 따라 IR 거리 센서가 점을 스캔하고 이를 직교 좌표계로 변환한 pointcloud로 저장합니다. 이를 위해, 물체를 시계 방향으로 회전시키는 스텝 모터와 IR 거리 센서를 z 방향으로 움직이는 리드 스크류를 회전시키는 스텝 모터가 사용되었습니다. Plate의 z=0 지점부터 미리 설정한 θ-해상도에 맞춰 일정 각도마다 점을 스캔합니다. IR 거리 센서가 센서 carriage로부터 물체의 표면까지 거리를 측정하면 이미 알려진 plate 회전 중심과 carriage 사이 거리 $L_0$에서 측정한 거리 값 $L$의 차를 구해 $r = L - L_0$로 산출합니다. 그 후, $x = r \cos{\theta}, y=r \sin{\theta}$에 따라 직교 좌표로 변환한 다음, SD 카드에 $(x,y,z)$ 형식으로 점을 저장합니다. 한 바퀴 회전을 마치고 나면 미리 설정한 z-해상도에 따라 거리 센서 carriage를 z 방향으로 일정 거리 증가시킵니다. 이를 반복하여 모든 z-slices에 대해 스캔을 수행하여 pointcloud를 저장합니다. SD 카드에 저장된 pointcloud 데이터는 PC에서 Python 프로그램을 실행하여 시각화할 수 있고, meshlab 소프트웨어를 사용해 mesh로 변환하여 stl 파일로 저장할 수 있습니다.
5.2 설정값 변화에 따른 스캔 퀄리티 비교
θ-해상도와 z-해상도를 LOW, MEDIUM, HIGH로 변화시킬 때의 스캔 퀄리티를 비교하였습니다.
5.2.1 두꺼비 모형
(a) Frog original image
(b) LOW (c) MEDIUM (d) HIGH resolution pointcloud, (e) LOW (f) MEDIUM (g) HIGH resolution mesh
높은 해상도로 갈수록 스캔된 점의 개수가 증가하여 더욱 세밀한 부분까지 묘사되었습니다. 특히 입 쪽에 뚫려있는 구멍과 등의 돌기를 관찰하면 높은 해상도일수록 뚜렷하게 드러남을 확인할 수 있습니다.
5.2.2 플라스틱 컵
(a) Plastic cup original image
(b) LOW (c) MEDIUM (d) HIGH resolution pointcloud, (e) LOW (f) MEDIUM (g) HIGH resolution mesh
컵의 손잡이와 컵 표면 중간의 굴곡을 보면 높은 해상도일수록 뚜렷하게 드러남을 확인할 수 있습니다. 그러나 HIGH 해상도의 경우 너무 많은 점을 스캔하여 매끄러운 컵의 표면이 오히려 울퉁불퉁하게 모델링되었습니다.
5.3 그 외 스캔 결과 정리
5.3.1 다이캐스트 자동차 모형
Diecast model car (a) original image (b) MEDIUM resolution pointcloud (c) MEDIUM resolution mesh
MEDIUM 해상도로 스캔하였습니다. 자동차의 하체 부분의 경우 타이어와 차체의 바디가 잘 스캔되었으나, 상체 부분은 형상이 왜곡되었습니다. 이는 투명한 재질의 창문에 의해 적외선이 차체 내부로 투과되어 발생한 오류라고 판단됩니다.
5.3.2 납땜보조제 케이스
Paste case (a) original image (b) LOW resolution pointcloud (c) LOW resolution mesh
LOW 해상도로 스캔하였습니다. 기울어진 뚜껑과 중간의 홈 형상이 비교적 잘 스캔된 것을 확인할 수 있습니다.
5.3.3 알람 시계
Alarm clock (a) original image (b) MEDIUM resolution pointcloud (c) MEDIUM resolution mesh
MEDIUM 해상도로 스캔하였습니다. 앞부분의 액정이 왜곡되어 스캔되었는데, 이는 자동차 모형과 마찬가지로 적외선이 액정으로 투과되어 발생한 것으로 추정됩니다.
5.3.4 약통
Medicine case (a) original image (b) HIGH resolution pointcloud (c) HIGH resolution mesh
HIGH 해상도로 스캔하되, 스캔 시간을 단축시키기 위해 의도적으로 z=0 지점을 위로 조정하였습니다. 전체적으로 잘 스캔되었으나, 옆면 중간에 홈이 생성되었습니다. 이는 라벨 스티커의 영향으로 추정됩니다.
정리하면, 저가형 IR 센서를 사용했음에도 불구하고 비교적 복잡한 형상도 잘 스캔함을 확인할 수 있었습니다. 복잡한 형상이 많은 물체일수록 높은 해상도로 스캔하는 것이 유리하지만, 표면이 매끄럽고 단순한 형상인 물체는 낮은 해상도로 스캔하는 것이 오히려 유리하였습니다. 또한 물체에 다양한 재질이 섞여있거나 투명한 재질이 존재하는 경우 스캔 퀄리티가 저하된다는 아쉬운 점이 존재하였습니다. 이는 고가의 거리 측정 센서를 사용하거나, 데이터 후처리를 심도있게 하여 해결할 수 있을 것으로 예상됩니다.