사용자 도구

사이트 도구


3d_scanner

다방향 패턴을 이용한 구조광 기반의 3D 스캐닝 기법의 정밀도 개선

정보통신프로젝트 2014학년도 1학기
수행시기 2014.1 ~ 2014. 6
수행한 사람 이민혁, 정준영1)
플랫폼 C++ 2), Camera Devices, Projector.
주 참고문헌 ?
지도교수 박인규
소스코드주소 https://github.com/minhyeok/projStructuredLight.git

프로젝트의 수행

프로젝트는 방학 기간에서 부터 진행이 시작되었다. 지도교수인 박인규 교수님은 비전컴퓨팅을 전공하는 교수님이기 때문에 내심 'CUDA등을 이용한 병렬컴퓨팅'에 대한 공부를 해보기를 희망했지만, 기술을 배우고 싶다는 희망에 비해 이유가 뚜렷하지 못했고, 결국 교수님께서 '스캐닝 기법의 해상력 향상'에 대해 공부해 보기를 권해주셨다.

이론적 배경과 해결 목표

Structrued Light Scanning은, 3D 스캐닝을 할 수 있는 기법 중의 하나로 카메라 + Projector를 이용하는 것. 본디 카메라는 2차원 정보 만을 취득 할 수 있지만, 3차원(z축)의 정보를 Projector를 이용해서 얻어내는 것이다. 이때 Projector는 정보가 담긴 Structured Light를 피사체에 투영하고 영상장비가 이 정보를 취득해서 3차원 정보를 얻어낸다. 이때 투영되는 Structured Light는 흑백 정보인데, 투영되는 피사체의 화소 영역에 코드를 부여하기 위함인 것.

  1. Camera Calibration
  2. 순서화된 구조광을 피사체에 투영
  3. 카메라는 영상정보 취득.
  4. 구조광에 부여된 정보에 의해 Z축 정보 취득
  5. 연산 후 3차원 정보로 복원.

<순서정보 그림으로 삽입할 것.>

해결해야 할 문제는, 구조광이 피사체에 투영되면서, 피사체의 형태에 따라 구조광의 해상력을 저해할 여지가 있다는 점이다. 가령, 구조광의 패턴각과 피사체의 법선벡터의 방향이 직교 할 경우, 패턴의 면적이 넓어지게 됨에 따라 해상력이 저하될 수 있기 때문이다.

<문제점을 지적하는 그림 삽입>

따라서 이 프로젝트는 다음의 문제를 해결하고자 한다.

  • 본디 프로젝터와 웹캠을 활용하는 3D 스캐너는 주변에서 쉽게 사용하는 장비를 통해 고해상력을 얻어내는 것이 목표이기 때문에, 사용하기 쉬운 인터페이스를 가질 것.
  • 기존의 구조광 스캔 기법보다 높은 스캔 능력을 가질 것.

구현의 발달

<n주차별 교수님께 브리핑시간에 발표한 발표자료를 삽입할 것.>

프로그램 구현 궤적과 이론적 배경 변화를 설명할 것.

최종 발표

<발표 일자 명시.> 영어 발표였던게 함정.

한국방송공학회 발표

교수님의 추천으로 한국방송공학회에서 발표를 할 수 있는 기회를 가졌다. 제주도 제주대학교에서 포스터 발표를 수행했다.

혼자 제주도 여행도 즐기는 등 좋은 경험이 되었다.

기타사항은 추가예정

후일담

이 프로젝트를 기반으로 14년도에 삼성소프트웨어 멤버쉽에 지원하였으나, 기반기술에 대한 지식 부족으로 탈락했다.대신 소프트웨어 마에스트로에 붙었다.

교훈점

C++과 Win32라이브러리

물론 스캐닝을 수행하는 주 논리에도 공여한 부분이 있지만, 주로 C++을 활용한 리팩토링과, Win32 및 OpenGL을 활용한 인터페이스 프로그래밍을 주로 담당했다. 소스 버전관리를 제대로 수행하지 못했던것에서 나중에 아쉬운 생각이 들었다.

비전컴퓨팅 소양을 겸비?

이전 부터 박인규 교수님의 과목을 수강했던것이 이번 프로젝트 수행의 큰 동기가 되었고, 이것이 3D 스캐닝 공부에 이어지게 되었다.

최초의 영어발표, 최초의 대외발표

ABEEK프로그램의 한 부분이었던 프로젝트였기 때문에 프로젝트 발표를 '영어'로 수행해야 했던 프로젝트. 하지만 당연히도 네이티브 스피커가 아닌 우리들은 전문적인 발표내용을 영어로 하는데에 한계가 있었고, 발표장에는 'This'와 'As you can see'만 주구장창 들을 수 있었다. 다만 이건 반대로 한글 발표자료 였을때의 텍스트 떡칠을 바꾸어 그림, 그래프와 표 위주의 발표자료를 만드는 효과가 있었다(…) 교훈이 있다면, 스크립트를 작성하되 스크립트를 외울 것이 아니고, 화면의 내용과 흐름을 외울 필요가 있다는 것. 따라서 보여주는 내용에 유연하게 대처하는 것이 가능하다. 이것이 가능하려면 역시 영어실력이 필요할 듯.

제주도 학회 발표는 포스터 발표로 진행되었는데, 학회 관계자분께서 발표 자료를 확인하고 내용에 대해 질문하는 형태의 발표. 타 발표 주제들이 영상처리와 패턴 인식이었던 것에 반해 3D 스캐너 주제는 이 발표에서 유일한 내용이었기 때문에 관계자분들 께서도 흥미있어 하는 평가였다.

1)
정보통신공학부 08학번
2)
OpenCV, Win32, OpenGL
3d_scanner.txt · 마지막으로 수정됨: 2017/08/19 22:13 (바깥 편집)