Skip to content

Repository files navigation

🧼 CleanCheck: 온디바이스 AI 기반 손 위생 커버리지 시각화 시스템(모바일 버전)

Acknowledgement

이 프로젝트는 2025년도 정부(과학기술정보통신부)의 재원으로 정보통신기획평가원의 지원을 받아 수행된 연구임 (No.RS-2022-00155857, 인공지능융합혁신인재양성(충남대학교))

This project was supported by the Institute of Information & Communications Technology Planning & Evaluation (IITP) grant funded by the Korean government (MSIT) (No.RS-2022-00155857, AI Convergence Innovation Talent Training Program at Chungnam National University).

Kotlin Android TensorFlow Lite MediaPipe License

CleanCheck는 안드로이드 태블릿(키오스크) 환경에서 구동되는 온디바이스 AI 시스템입니다. 컴퓨터 비전 기술을 활용하여 사용자의 손 씻기 동작을 실시간으로 인식하고, 세정된 부위를 히트맵으로 시각화하여 감염 예방을 위한 올바른 손 위생 습관을 코칭합니다.


🌐 CleanCheck

cleancheck.org (HomePage)

CleanCheck Demo

감염 관리의 패러다임을 '사후 분석'에서 '실시간 예방'으로.


📑 목차

  1. 주요 기능
  2. 핵심 기술 및 알고리즘
  3. 시스템 아키텍처
  4. 설치 및 실행
  5. 팀 정보

✨ 주요 기능 (Key Features)

  • WHO 6단계 표준 동작 코칭 yolo 패키지 내 탑재된 YOLOv8n 모델이 카메라로 입력되는 손 씻기 동작을 실시간으로 분류합니다. 손바닥, 손등, 손깍지 등 WHO 권장 단계를 인식하여 절차적 준수도를 평가합니다.

  • 실시간 세정 커버리지 시각화 (Hybrid Analysis) MediaPipe Hand Landmarker로 양손의 21개 랜드마크를 추적하고, 기하학적 분석(Convex Hull)을 통해 손끼리의 접촉 여부를 판정합니다. 문지름이 감지된 영역은 실시간으로 색상이 입혀져 시각적인 피드백을 제공합니다.

  • 키오스크 모드 및 사용자 식별 다중 사용자가 이용하는 병원/공공시설 환경을 고려하여 kiosk 모드를 지원합니다. MobileFaceNets 기반의 안면 인식을 통해 사용자를 식별하고, 개인별 위생 리포트를 db(Room)에 저장하여 관리합니다.

  • 개인정보 보호 (On-device AI) 네트워크 통신 없이 모든 연산이 기기 내부에서 처리되므로, 민감한 영상 데이터나 생체 정보가 외부로 유출되지 않습니다.


🛠️ 핵심 기술 및 알고리즘 (Core Technology)

본 프로젝트는 Clean Architecture 원칙에 따라 데이터, 도메인, UI 계층을 분리하여 설계되었습니다.

구분 기술 스택 / 라이브러리 설명
Language Kotlin 전체 애플리케이션 로직 구현
Architecture MVVM ui, domain, data 패키지 분리를 통한 유지보수성 확보
AI Inference TensorFlow Lite YOLOv8(동작 인식) 및 FaceNet(얼굴 인식) 온디바이스 추론
Computer Vision MediaPipe 실시간 손 랜드마크 추적 및 제스처 분석
Local DB Room 사용자 정보 및 분석 결과 로컬 저장 (data/db)
Background WorkManager 데이터 동기화 및 백그라운드 작업 처리 (data/worker)
UI Android View/XML res/layout 기반의 직관적인 사용자 인터페이스

🏗️ 시스템 아키텍처 (System Architecture)

CleanCheckNative/
├─ app/
│  ├─ src/
│  │  └─ main/
│  │     ├─ java/
│  │     │  └─ com/example/cleanchecknative/
│  │     │     ├─ data/                # 데이터 계층
│  │     │     │  ├─ db/               # 로컬 DB (Room 등)
│  │     │     │  ├─ remote/           # 네트워크/원격 데이터 소스
│  │     │     │  └─ worker/           # WorkManager 등 백그라운드 작업
│  │     │     ├─ domain/              # 도메인 로직, use case
│  │     │     ├─ kiosk/               # 키오스크/전시 모드 관련
│  │     │     ├─ ui/                  # 프레젠테이션 계층
│  │     │     │  ├─ common/           # 공통 UI 컴포넌트
│  │     │     │  ├─ hand/             # 손 인식/제스처 관련 화면
│  │     │     │  ├─ handwash/         # 손씻기 훈련/평가 화면
│  │     │     │  ├─ pose/             # 전신 포즈/자세 관련
│  │     │     │  ├─ recognize/        # 사용자/세션 인식 화면
│  │     │     │  ├─ register/         # 사용자 등록/관리
│  │     │     │  ├─ results/          # 훈련 결과 리포트
│  │     │     │  ├─ theme/            # 테마/스타일
│  │     │     │  ├─ user/             # 단일 사용자 화면
│  │     │     │  └─ userlist/         # 사용자 목록 화면
│  │     │     └─ yolo/                # YOLO 관련 래퍼/유틸
│  │     ├─ assets/
│  │     │  └─ steps/                  # WHO 6단계 등 리소스
│  │     └─ res/
│  │        ├─ layout/                 # XML 레이아웃
│  │        ├─ font/
│  │        ├─ raw/
│  │        ├─ values/                 # colors, strings, styles 등
│  │        └─ xml/
│  └─ src-main/
│     └─ java/com/example/cleanchecknative/ui/common/
│        (↳ 기존 common UI, 마이그레이션 중인 듯)
│
├─ .idea/                              # IDE 설정
├─ .gradle/                            # Gradle 캐시
├─ build/                              # 프로젝트 리포트 등 빌드 산출물
└─ gradle/wrapper/                     # Gradle wrapper 설정

🚀 설치 및 실행 (Installation & Usage)

1. 사전 요구 사항 (Prerequisites)

  • Android Studio (Ladybug 이상 권장)
  • Android Device: Android 10 (API Level 29) 이상 태블릿
    • 권장 사양: NPU가 탑재된 최신 AP (Snapdragon 8 Gen 1 이상) 권장

2. 설치 (Installation)

# 1) 리포지토리 클론
$ git clone https://github.com/chanwoopark11/CleanCheckNative.git

# 2) Android Studio에서 프로젝트 열기
# File > Open > 'CleanCheckNative' 디렉토리 선택

# 3) Gradle Sync 및 빌드
# local.properties 설정 확인 후 Build 진행

3. 주요 설정

  • assets/ 폴더 내에 TFLite 모델 파일(yolov8n.tflite, mobilefacenet.tflite)이 존재하는지 확인해주세요.
  • 키오스크 모드 테스트를 위해서는 개발자 옵션 활성화 및 카메라 권한 허용이 필요합니다.

🧑‍💻 팀 정보 (Team)

역할 이름 연락처 (Email) 소속
프로젝트 매니저 주다빈 programbins@gmail.com 충남대학교 컴퓨터융합학부
AI CV 모델링 최민서 msc503@naver.com 충남대학교 컴퓨터융합학부
데이터 수집·검증 박찬우 pcw22600@gmail.com 충남대학교 컴퓨터융합학부
실험 및 검증 민영순 zhzhxh@cnuh.co.kr 충남대학교병원
프로젝트 지도 김재정 교수 jjkim@cnu.ac.kr 충남대학교 / 바이오AI융합연구센터

Copyright © 2025 CleanCheck Team. All Rights Reserved.

About

CleanCheckApp

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages