프로젝트 설명
졸업 프로젝트로 Gesto라는 제스처 기반 프레젠테이션 툴을 개발했다.
먼저 Gesto는 간단한 제스처로 프레젠테이션(발표) 화면을 조작할 수 있는 Electron.js 기반의 Desktop 어플리케이션이다.
꼬집는 제스처, 가리키는 제스처로 화면의 특정 부분을 가리키고, 우리가 터치나 마우스로 조작하듯이 컨트롤할 수 있다.
장점으로는 리모콘이나 키보드, 레이저포인터 등의 장치에서 벗어날 수 있다는 것이 있고, 확대/축소 같은 기능도 지원한다는 것이 있다.
센서, 패턴인식 방식이 아니기 때문에 누구나 카메라만 있으면 사용할 수 있고, 직관적인 제스처 인터페이스가 장점이다.
원래 제스처 인식 기술에 대해서 큰 관심이 없었는데, 올해 초에 출시된 Apple 사의 Vision Pro 작동 영상을 보고 꽤나 신선했다.
모든 기술이 놀라운 수준이었지만, 처음 본 사람도 금방 적응할 수 있는 간단한 제스처와 조작법, 그리고 부드러운 상호작용 때문이었다.
손을 휘저으며 동작을 인식시켜 일부 기능만 사용하는 개념이 아니었기 때문에, 언젠가는 완전히 손짓으로 인터페이스가 대체될 수도 있다는 생각이 들었기 때문이다.
그래서 이런 제스처로 화면을 제어하는 프로젝트를 하기로 결정했고, 미세한 동작까지는 필요 없는 프레젠테이션 화면 제어를 하기로 했다.
결과물
파일 선택, 준비화면, 가이드화면 등이 포함된 앱 전체 시연 영상은 아래 링크에 있다.
https://drive.google.com/file/d/15NaT6bbiqAipc7nM_Oy16yyH7zvenT-d/view
느낀점
개발 과정과 코드 관련한 내용은 다른 포스트로 작성할 예정이다. (지금 코드가 너무 더럽다)
MediaPipe에서 제공되는 Hand Landmark 기반의 손 인식이고, 특정 제스처를 Web event로 변환하는 방식이기 때문에
이러한 방식을 사용하면 누구든 편하게 제스처를 사용하여 웹사이트, 웹기반의 게임이나 앱을 만들 수 있을 것이라고 생각한다.
아쉬운 점은, 인식률을 많이 개선시켰지만 그래도 일반 카메라의 한계가 존재한다는 것이다.
특히 어두울수록 인식률이 떨어지는 문제와 시선 추적을 병행하지 않아서 다른 사람의 손이 인식되는 문제 등은 내 능력으로 해결하기 어렵다고 느꼈다.
추후 이러한 부분을 최대한 해결하고, 활용성 좋게 코드를 수정하여 공유할 예정이다.
이 프로젝트로 학교에서 진행하는 졸업작품 전시회에 참여하고 수상을 했다.
많은 사람들이 흥미롭게 봐주었고, 좋은 평가를 해줘서 감사했다.