Short-term Muscular Tic-Patients Detector : Automated Tic Detector Algorithm based model using Google MediaPipe, CNN Classifier to Analysis Tic Region of Interest
Project nickname : Psycho Detector ์์ธํ๋ด์ฉ
๊ตฌ๋ถ | ์ด๋ฆ | ์ญํ |
---|---|---|
S/W:https://github.com/dablro12 | ์ต๋ํ | ํ๋ก์ ํธ ์ด๊ด, ์๊ณ ๋ฆฌ์ฆ ๊ฐ๋ฐ ๋ฐ ๋ชจ๋ธ ํ์ต ๋ฐ ์ ์ฉ, ๋ฐ์ดํฐ ์์ง ๋ฐ ๋ถ์ |
S/W:https://github.com/yeongjinjeong | ์ ์์ง | Streamlit ํ์ด์ฌ์น์ฑ ๊ตฌํ ๋ฐ PPT ์ ์ |
S/W | ์ด์๊ฒฝ | ๋ฐ์ดํฐ ์์ง ๋ฐ ๋ถ์ |
H/W | ์ด์ํ | ๋ฐ์ดํฐ ์์ง ๋ฐ ๋ผ์ฆ๋ฒ ๋ฆฌํ์ด ๊ตฌ๋ |
Project Hosting : ์ต๋ํ
์กธ์๊ฐ์ง ์์คํ ์ ํ๋ ํจํด ์ธ์ ํ์ฉํ์ฌ 1. ์ฌ๋ฆฌ์ฅ์ (๋๋ ์ฆํ๊ตฐ ๋ฐ ADHD ์ฆํ๊ตฐ) ๊ฐ์ง ๋ฐ 2. ์์ ์ค ๊ฐ์ ์ง์ค๋ ฅ ํฅ์ ๋ฐ ๊ฐ์ ๊ฒฝํ ๊ฐ์ ๋ฐฉํฅ์ ์ ์ํ๋ค.
- ํ๋ น๊ธฐ ์๋์ ๋์์ผ๋ก ๋งค์ฐ ํํ๊ฒ ๋ฐ์ํ๋ โํฑโ ํจํด์ ๊ฐ์งํ์ฌ ์ถํ์ ๋ฐ์ํ ์ ์๋ ๋๋ ์ฆํ๊ตฐ์ด๋ ADHD์ฆํ๊ตฐ๊ณผ ๊ฐ์ ์ฌ๋ฆฌ ์ฅ์ ์ ๋ํ์ฌ ์ด๊ธฐ์ ์ ์ ํ ์กฐ์น๊ฐ ์ทจํด์ง ์ ์๋๋ก ํ๋ค.
- ์ฌ์ฉ์๊ฐ ์ง์ค๋ ฅ์ ์๊ณ ํผ๋กํ๊ฑฐ๋ ์คํธ๋ ์ค๋ฅผ ๋ฐ๋ ๊ฒฝ์ฐ, ํด์์ ์ ์ํ๋ ๋ฉ์์ง๋ ์์ ์ ํ ๋ฑ์ ์ง์ค๋ ฅ ํฅ์ ๋ฐฉ์ ๋ฐ ํ์ต ํ๊ฐ ๊ฒฐ๊ณผ๋ฅผ ์ ์ํด ์ฌ์ฉ์์ ํ์ต ๊ฐ์ ๋ฐฉ์์ ์ ๊ณตํ๋ค.
- ์ฌ์ฉ์๊ฐ ๋ฌด์์์ ์ผ๋ก ๋ํ๋ด๋ ๊ฐ์ ๋ด์ฉ์ ์ดํด์ ๊ด๋ จ๋ ํ๋(๊ณ ๊ฐ ๋๋์, ์ผ๊ตด ์ฐก๊ทธ๋ฆผ, ํ์ ๋ฑ)์ ํ์ ํ์ฌ ๊ฐ์์์ ์ง๋ ๊ฐ์ ์ ๋์์ ์ค๋ค.
๊ตฌ๋ถ | ๊ธฐ๋ฅ | ๊ตฌํ |
---|---|---|
S/W | ์ผ๊ตด ๋ฉ์ฌ ๋ฐ์ดํฐ ์์ฑ ๋ชจ๋ธ | Mediapipe Face Landmark Detection with google |
S/W | ๊ฐ๋ ์ธก์ ๋ฐ์ดํฐ ๋ณํ ๋ฐ ๋ถ์ | OpenCV/Numpy/Pandas/Matplotlib |
S/W | Visualization | Streamlit |
H/W | ์ ๋ ฅ ๋ชจ๋ | Iphone 12 pro |
**- ๋ง์คํฌ ๋ฐ Featrue Abstract **
- face_outline_masking : ์ผ๊ตด ์ธ๊ณฝ ๋ง์คํฌ ์์ฑ ํจ์
- hanging_cnt_v1 : ๋จธ๋ฆฌ Hanging Detection ๋ถํธํ ์ด์ฉ ํจ์
- hanging_cnt_v2 : ๋จธ๋ฆฌ Hanging Detection ๊ทธ๋ฃนํ ์ด์ฉ ํจ์
- is_eye_closed : ์ข ํก๋น๋ฅผ ์ด์ฉํ ๋ ๊ฐ๊ธฐ ํ์ ์ธก์ ํจ์
- face_emotion_detector : ํ์ ๊ฐ์ง ๋ฅ๋ฌ๋ ๋ชจ๋ธ inference ํจ์
- save_area : Mesh data ๋ถํผ ์ ์ฅ ํจ์
- z_score_norm : Z_score Normalization ํจ์
**- Scoring : Feature Scoring **
- total_weight_score : ์ต์ข ์ค์ฝ์ด ํจ์
- hanging_face_score : ๋จธ๋ฆฌ Hanging Scoring ํจ์
- unpair_eye_blink_score : ๋ ์ฐก๊ทธ๋ฆผ ๊ฐ์ง ๋ฐ Scoring ํจ์
- blink_equal_score : ๋ ๊ฐ๊ธฐ Scoring ํจ์
- emotion_scoring : ํ์ ๊ฐ์ง Scoring ํจ์
**- Analysis : ์ผ๊ตด ๋ด ์กด์ฌํ๋ ํน์ง(๋, ์ผ๊ตด ๋ฑ ํน์ ๋ถ์์ ์์ญ๊ณผ ์ขํ(x,y,z) **
- save_np : ํ๋ ์๋ณ ๋๋๋งํฌ ์ ์ฅ ํจ์
- landmark_analysis_plot : ๋๋๋งํฌ ๋ถ์ ํจ์
- calculate_triangle_area : ๋ฉ์ฌ ๋ฐ์ดํฐ ๋ฉด์ ๊ณ์ฐ ํจ์
- cal_area : ๋ฉ์ฌ ๋ฐ์ดํฐ ๋ชจ๋ ๋๋๋งํฌ ๋ฉด์ ๊ณ์ฐ ํจ์
- area_analysis : ํ๋ ์๋ณ ๋ฉด์ ๋ถ์ ํจ์
- blink_z_score_norm : ๋ ๊ฐ๊ธฐ์ ๋ํ ์ ์ Threshold ์ ์ ๋ถ์ ํจ์
- box_plot_seperate : ํ ์คํธ ์ ๊ฒ์ฆ ํจ์
- ์๊ฐํ : Streamlit๋ฅผ ์ด์ฉํ์ฌ ์นํ์ด์ง๋ก ๊ตฌํ๊ฐ๋ฅํ ์น์๋น์ค
Python Version 3.8.18 Linux Ubuntu 20.0.2
impor cv2
import mediapipe as mp
import os
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from mpl_toolkits.mplot3d import Axes3D
from mediapipe import solutions
from mediapipe.framework.formats import landmark_pb2
from pywt import wavedec
from imutils.video import VideoStream
import f_detector
import imutils
f_detector.py
Face Detector code file
config.py
f_detector.py config file
main.py
Main code file by using python language
main_for_human.ipynb
human detect updating main code file
streamlit.py
Web application to visualization our project
main.ipynb
- Make a Virtual ENV, Download
requirements.txt
and piprequirements.txt
file - Download
test
,model
folder andstreamlit.py
file - Execute terminal on your download path,
streamlit run streamlit.py