S9 실기기 얼굴 사진 자동 확인

공치고 썸타고 · 2026-10-03 · SM-G965N (Galaxy S9)

요약

얼굴 위치를 찾는 MediaPipe만으로는 목탄 그림 속 얼굴도 통과했습니다. 이에 얼굴 검출 다음 단계에 MIT 허가 TinyCLIP 사진/삽화 분류를 더했습니다. 두 단계 모두 S9의 Chrome에서 WASM으로 실행했고, 사진 원본은 추론 서버로 전송하지 않았습니다.

서비스 판정: 얼굴이 없으면 사진 등록 단계에서 안내하고 중단합니다. 얼굴이 검출되고 사진 분류 점수가 0.90 이상일 때만 자동 승인합니다. 그보다 낮거나 모델이 실행되지 않으면 업로드 후 관리자 검수 대기로 등록합니다.

운영 반영 상태

2026-10-04 운영 반영 완료. 웹은 Cloudflare Pages gongssum-mobile에, 앱은 Expo EAS preview에서 생성한 OTA #446의 동일 번들을 production 채널에 반영했습니다. 연결된 Galaxy S9에서 재시작 후 설정의 버전 #446 · production채널을 확인했습니다.

운영 OTA 그룹: 897723d5-2d41-4f2a-8c05-3c3fa2aeedd4. 웹 배포: f893e58c.gongssum-mobile.pages.dev. Android/iOS 번들 생성과 TypeScript 검사가 통과했습니다. iOS 실기기 동작은 이번에 확인하지 않았습니다.

화면이 절반으로 줄어든 원인과 재발 방지

네이티브 얼굴 검사용 WebView의 내부 화면만 숨겼고 외부 컨테이너는 라이브러리 기본 flex: 1이었습니다. 이 컨테이너가 네비게이터와 높이를 나눠 차지했습니다. 웹 높이 문제라는 초기 추정은 정정하며, 실제 수정은 WebView의 containerStyle을 절대 배치·2×2픽셀·flex: 0으로 지정한 것입니다.

S9 운영 앱에서 관리자 회원 목록과 일반 회원 홈의 전체 높이, 하단 탭 위치를 확인했습니다. 테스트 중 전환한 회원 모드는 원래 관리자 모드로 복원했습니다. 사용자 프로필 사진을 새로 올리거나 회원 정보를 변경하지 않았습니다.

앱·웹 배포 스크립트에 사전 검사를 연결했습니다. 숨김 컨테이너 설정 누락 또는 flex: 1 복귀는 배포를 차단합니다. 정상본 통과·두 회귀 상태 차단을 확인했고, 생성 경로 Git ignore와 미추적 파일 500개 미만도 확인합니다.

배포 승인 범위가 개별 파일로 오해되어 전체 앱 번들 전송이 거부됐던 이력도 기록했습니다. 사용자 추가 지시와 기존 서비스 목적지·전송 단위를 프로젝트 지침에 남겼습니다. 정상 승인 경로로 웹 배포와 앱 OTA 업로드·운영 승격이 모두 성공했으며 승인 검토를 해제하거나 우회하지 않았습니다.

실기기 결과

기기: SM-G965N · Chrome · Transformers.js 3.7.2 · WASM 2 threads · MediaPipe 얼굴 검출 이미지 긴 변 960px · 얼굴 상자 주위 20% 여백 크롭

입력얼굴 검출사진 상대 점수처리
실제 인물 얼굴 사진1개0.955자동 승인 · 분류 0.52초
얼굴 없는 풍경 사진0개해당 없음얼굴 없음 안내 · 등록 중단
목탄/연필 얼굴 그림1개0.685관리자 검수 · 분류 0.69초

분류 점수는 두 텍스트 범주 사이의 상대 점수이지, 정확도나 실제 사진일 확률을 보증하지 않습니다. 첫 모델 초기화와 로딩은 22.4초였으며 모델 캐시를 켰습니다.

구현과 개인정보

모델 및 기술 근거

‹ 공썸 리포트로