첫 직장에 입사하기 전에 모 교육기관에서 잠시 프로젝트를 한 적이 있었습니다.

 

그때 팀을 짜서 어떤 프로젝트를 할지 조사하던 와중에, 기존에 없던 새로운 걸 만들어보는 것과 이미 상용화되어 있던 제품을 따라 만드는 것을 두고 고민을 했었죠. 그러던 중 써치하다가 발견한 상용화된 비전 기반 터치스크린을 따라 만들어보기로 결정했지만, 어쩌다 보니 팀원들이 각자 하나씩 프로젝트를 맡게 되었고 저 혼자 비전 기반 터치스크린에 들어갈 알고리즘을 개발하게 되었지요. 빔 프로젝터로 화면을 띄우는 프레임을 만들어, 각자 만든 프로젝트를 하나로 합쳤던 거 같습니다.

 

비전 기반 터치스크린의 알고리즘을 구현하기 위해 상용 제품을 분석해보니, 터치스크린의 네 귀퉁이에 카메라를 설치하고 손가락이 감지되면 스크린상에 표시하거나 터치가 되게 하는 것이 컨셉이었는데, 생각보다 구현이 까다로웠습니다.

 

아직 영상처리에 익숙하지 않았을 때라, 우선 손가락을 감지하는 것부터 쉽지 않았지요. 당시에도 OpenCV가 있었지만 사용하지 않고, 필요한 알고리즘을 직접 하나하나 써치해서 구현하는 방식을 택했습니다.

 

상용 제품과 같은 방식으로 프레임에 설치된 터치스크린의 네 귀퉁이에 카메라를 달았더니, 손가락이 놓인 위치에 따라 두 대의 카메라에서 손가락이 감지되었습니다. 이 두 개의 카메라 영상에 백그라운드 서브트랙션 알고리즘을 적용해 손가락 영역을 감지하고, 각 영역의 중심점을 구했지요. 이 중심점들을 카메라가 설치된 프레임 위치와 조합해 가상 스크린상의 터치 좌표를 얻고, 다시 실제 프레임에 설치된 스크린 좌표로 변환했습니다.

 

최종 데모 시연 전에는 손가락이 잘 감지되게 하려고 스크린 가장자리를 검은색 천으로 덮어 보완하기도 했습니다. 지금이야 핸드 디텍션을 해주는 좋은 모델들이 많지만, 그 당시엔 한계가 존재했지요.

 

프로젝트를 진행할 땐 큰 디스플레이에는 비전 기반 터치스크린이 제격이라고 생각했었는데, 나중에 여기저기 실제로 큰 디스플레이가 설치되는 걸 보니 물리적인 터치스크린 자체를 크게 만들더군요.

 

지금 와서 돌이켜보면 성공적으로 마무리한 첫 비전 기반 프로젝트였던 거 같습니다.





+ Recent posts