- ๊น๋ฏผ์ง(Minji Kim), ๊น์์(Seowon Kim)
- ๋ชฉ์ : ํน์ ์ธ๋ฌผ์ ์ ์ธํ ์ธ๋ฌผ ๋ชจ์์ดํฌ ์๋ํ
- ๊ฐ๋ฐ ๋ฐฐ๊ฒฝ : SNS์์ ํ์ ๊ฐ ๋ ๋ชจ์์ดํฌ ๋ฐฉ๋ฒ์ธ <๋ฐฑ์ข ์ ๋ชจ์์ดํฌ>. ์์ ์์์ ๋ฐฑ์ข ์ ์ฆ, ์ฃผ์ ์ธ๋ฌผ์ ์ ์ธํ ๋ค๋ฅธ ์ฌ๋๋ค์ ์ผ๊ตด์ ํด๋น์ธ๋ฌผ์ ์คํฐ์ปค๋ก ๊ฐ๋ ค์ฃผ๋ ๋ฐฉ๋ฒ์ด๋ค. ๊ทธ๋ฌ๋ ์์ ํธ์ง์ ํ ๋ ์ด๋ฐ ๋ชจ์์ดํฌ๋ฅผ ํ๋ ค๋ฉด ํ๋ ์ ๋จ์๋ก ์ผ๊ตด ํ๋ํ๋ ์ขํ๋ฅผ ์ฐ์ผ๋ฉฐ ํธ์งํด์ผํด์ ๋ง์ ์๊ฐ์ด ๊ฑธ๋ฆฐ๋ค. ๋ฐ๋ผ์ ํธ์ง์๋ค์ ๋ ธ๋ ์๊ฐ์ ๋จ์ถ์ํค๋ ๊ฒ์ ๋ฌผ๋ก , ๋๊ตฌ๋ ์์ฝ๊ณ ๊ฐํธํ๊ฒ ์ผ์ค์๋ ๋ชจ์์ดํฌ๋ฅผ ์ฌ์ฉํ ์ ์๋ค๋ ์ทจ์ง๋ก ์๋น์ค๋ฅผ ๊ตฌํํ๊ฒ ๋์๋ค.
- ๋ชฉํ
- ๋ด์ค ๋๋ ์ ํ๋ธ์์ ์ผ๋ฐ์ธ ๋ชจ์์ดํฌ ์ฒ๋ฆฌ๋ฅผ ์๋ํ ํ์ฌ ์์ ํธ์ง ์๊ฐ์ ๋จ์ถ์ํจ๋ค
- ์์์ ์๋์น ์๊ฒ ์ถ์ฐํ ์ผ๋ฐ์ธ๋ค์ ์๋ ๋ชจ์์ดํฌ ์ฒ๋ฆฌ ํ์ฌ ์ด์๊ถ ์นจํด๋ฅผ ๋ฐฉ์งํ๋ค
- ํน์ ์ธ๋ฌผ(minji)์ ์ผ๊ตด์ ํ์ต์ํจ ํ face recognition์ ํตํด ํด๋น ์ธ๋ฌผ์ ์ ์ธํ unknown์ ๋ชจ์์ดํฌ ์ฒ๋ฆฌํ๋ค.
- ์ผ์ชฝ์ ์ผ๋ฐ ๋ชจ์์ดํฌ, ์ค๋ฅธ์ชฝ์ ์คํฐ์ปค ๋ชจ์์ดํฌ์ด๋ค.
- ์์ ๊ฐ์ ๊ณผ์ ์ผ๋ก ํน์ ์ธ๋ฌผ(seowon)์ ์ผ๊ตด์ ํ์ต์ํจ ํ ํ๋ก์ธ์ฑํด ์ถ์ถํ ์ด๋ฏธ์ง์ด๋ค.
- Anaconda
- Python
- Google colab
- ๋ผ์ด๋ธ๋ฌ๋ฆฌ : OpenCV, Tensorflow, FFmpeg, FaceRecognition, pickle
- ์๋์ฝ๋ค ํ๋กฌํํธ or CMD ์คํ
- (pip ํจํค์ง ์
๊ทธ๋ ์ด๋)
conda upgrade pip pip install upgrade
- ๊ฐ์ํ๊ฒฝ ์๋ก ์ค์น
conda create -n (env) python=3.7 activate (env)
- tensorflow ์ค์น
pip install tensorflow==2.0
- ๋ฒ์ ํ์ธ
python import tensorflow as tf tf.__version__
- ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น
pip install numpy matplotlib pillow opencv-python
https://github.com/opencv/opencv/tree/master/samples/dnn/face_detector
-
PretrainedModel ํด๋ ๋ค์ด๋ก๋
-
Build_Dataset_CaffeCNN.py๋ก dataset ์์ฑ (webcam)
python build_dataset_CaffeCNN.py --output dataset/swkim/
output๊ฒฝ๋ก์ ํน์ ์ธ๋ฌผ์ ์ด๋ฆ์ผ๋ก ํด๋๋ฅผ ๋ง๋ค์ด ๋๊ณ ๊ฒฝ๋ก๋ฅผ ์ง์ ํ๋ค.
์ค์ ํด๋ ํ์์ ๋๋ฌํ๋ฉด ์๋ ์ข ๋ฃ๋๋ค. -
encode_faces.py๋ก pickle ํ์ผ ์์ฑ
python encode_faces.py --dataset dataset --encodings encodings.pickle
dataset์ ๊ฒฝ๋ก์ encodings์ ๊ฒฝ๋ก๋ฅผ ์ง์ ํด์ค๋ค.
์ด๋ฏธ์ง๋ฅผ BGR์์ RGB๋ก ๋ณํํ๊ณ ์ผ๊ตด์ ํด๋นํ๋ ์์ญ์ ์ขํ๋ฅผ ๊ฐ์งํ๋ค.
face_encodings ํจ์๋ฅผ ํธ์ถํ๋ฉด ์ผ๊ตด ์์ญ์ 128 ํฌ๊ธฐ์ vector๋ก ๋ณํํ๋ค.
๋ชจ๋ ์ผ๊ตด์ด ๋ณํ๋์ด encodings ๋ณ์์ ๋ด๊ธฐ๊ฒ ๋๊ณ , pickle ํ์ผ์ด ์์ฑ๋๋ค. -
stickers ํด๋์ ์คํฐ์ปค ์ด๋ฏธ์ง ํ์ผ ์์ฑ
-
1) Image Processing
python recognize_faces_image.py --encodings encodings.pickle --image testset/test.jpg --method overlay --sticker stickers/mj.png
pickle ํ์ผ ๊ฒฝ๋ก, test image ๊ฒฝ๋ก๋ฅผ ์ง์ ํ๊ณ , method๋ก mosaic(์ผ๋ฐ ๋ชจ์์ดํฌ), overlay(์คํฐ์ปค)๋ฅผ ์ง์ ํ๋ค.
method๋ฅผ overlay๋ก ์ค์ ํ๋ฉด sticker ๊ฒฝ๋ก๋ ์ง์ ํด์ค๋ค.2) Video Processing
python unknown_processing_video.py --encodings encodings.pickle --input videos/video.mp4
python unknown_processing_video.py --encodings encodings.pickle --input videos/video.mp4 --method overlay --sticker stickers/osw.png
3) WebCam Processing
python recognize_faces_video.py --encodings encodings.pickle
python recognize_faces_video.py --encodings encodings.pickle --output output/jurassic_park_trailer_output.avi --display 0 --method overlay --sticker overlay_stickers/sticker.png