"비접촉 제스처로 제어하는 미래형 인터페이스" 물리적 장치 없이 웹캠 하나로 마우스를 제어하고 시스템을 핸들링하는 Open-Source 프로젝트입니다.
현대의 컴퓨팅 환경은 물리적 입력 장치에 의존합니다. 하지만 발표, 키오스크 사용, 요리 중 레시피 확인 등 장치를 직접 만지기 어려운 상황이 빈번합니다. Air Mouse는 이러한 물리적 제약을 극복하기 위해 탄생했습니다.
- Face Analysis:
MediaPipe Face Mesh(468 랜드마크) - Hand Tracking:
MediaPipe Hands(21 랜드마크)
- 실시간 온디바이스 처리: 고사양 GPU 없이 CPU만으로 30fps 이상의 추론이 가능합니다.
- 프라이버시 및 저지연: 영상 데이터를 서버로 보내지 않아 보안성이 뛰어나고 네트워크 지연을 최소화합니다.
- 플랫폼 호환성: Python(Back)과 JS(Front) 환경 모두를 지원하여 확장에 용이합니다.
| 단계 | INPUT | PROCESS | OUTPUT |
|---|---|---|---|
| 1 | Webcam Feed | 전처리: 좌우 반전, RGB 변환, Base64 인코딩 | Pre-processed Frame |
| 2 | Processed Frame | AI 추론: Face Mesh 및 Hand 관절 검출 | Landmarks (x, y, z) |
| 3 | Landmarks | 후처리: 스무딩(Jitter 제거), 동적 임계값 적용 | Action Signal |
- 좌표 정규화: 화면 해상도 독립적인 0.0~1.0 좌표계 사용.
- 이동 평균 필터 (Moving Average): 손 떨림 방지를 통해 부드러운 커서 이동 구현.
- 동적 임계값 (Dynamic Threshold): 카메라와의 거리에 비례하여 클릭/줌 인식 거리 자동 조절.
- 인식 오차: 정면 기준 거리 측정 오차 ±5cm 이내.
- 처리 속도: i5 CPU 기준 평균 28~32 FPS 유지.
- 응답 속도 (Latency): 입력부터 동작까지 50~80ms (체감 지연 거의 없음).
- 한계: 역광 등 조명 환경 변화 및 손이 가려지는(Occlusion) 상황에서의 인식 저하.
- 개선: 단순 거리 기반 로직 대신 **제스처 분류용 별도 모델(MobileNet 등)**을 파인튜닝하여 결합 예정.
- 데스크탑: PPT 프레젠테이션 포인터 및 접근성 보조 도구.
- 공공 장소: 비접촉 주문 시스템(키오스크), 위생이 중요한 병원 인터페이스.
- 홈 서비스: 스마트 미러, 요리 앱 스크롤링 등.
- Pain Point 해결: "연단으로 돌아가 마우스를 잡아야 하는 번거로움" 또는 "액정 오염" 걱정 해소.
- Immersive UI: VisionOS 스타일의 UI와 사운드 피드백을 통해 몰입감 있는 조작 환경 제공.
cd backend
pip install -r requirements.txt
python main.py
cd frontend
npm install
npm run dev

