hae02y / lab

EXP-002 · 2026.04 · Simulation

온라인 담배피기

웹캠으로 얼굴 인식해서 3D 담배 물고 피우는 시뮬레이터. 일반담배 6종 + 전자담배 4종

online-smoke.vercel.appCheck
온라인 담배피기 화면
Fig. 1 — 온라인 담배피기, 배포된 화면

01Question

웹캠만으로 입의 움직임을 읽어 3D 물체를 입에 물릴 수 있을까?

02Approach

  1. 01

    MediaPipe Face Landmarker(GPU)로 매 프레임 얼굴 랜드마크 478개를 얻는다.

  2. 02

    입술 위·아래(13, 14)와 입꼬리(61, 291) 거리로 MAR(입 벌림 비율)을 계산한다.

  3. 03

    MAR을 지수 평활(0.7/0.3)해 떨림을 줄이고, 0.08을 넘으면 '들이마심'으로 판단한다.

  4. 04

    정규화 좌표를 Three.js 월드 좌표로 바꿔 입 위치에 담배를 고정하고, 얼굴 회전을 따라가게 한다.

03Findings

Note A

좌표 변환이 전부다

랜드마크는 0~1 정규화 값이라 그대로 쓰면 입에서 한참 벗어났다. 카메라 FOV와 거리로 보이는 영역을 계산하고, 셀카 화면이라 X를 뒤집어야 제자리에 붙었다.

Note B

크기 감각은 숫자로 잡히지 않는다

전자담배 모델이 수치상 맞아도 화면에서는 작아 보였다. 결국 두 배로 키워서 실제처럼 보이게 맞췄다.

04Log

  1. 웹캠 AR 담배 시뮬레이터

  2. 입 중심 배치, 흡연 단계

  3. 브랜드 선택, 3D 전자담배

  4. 입 좌표 매핑과 얼굴 회전 보정