๋ธ๋๋ฐ์ค | ||||
---|---|---|---|---|
๐ ๊น๊ธฐ์ฉ |
๐ ๊น์ฑ์ |
๐ ๊น์ฃผ์ฝ |
๐ ์ด ๊ตฌ |
๐ต ์ดํํฌ |
- ๊น๊ธฐ์ฉ_T4020: Cartoonize ๋ชจ๋ธ ์กฐ์ฌ, ์คํ ๊ฒฐ๊ณผ ๋ถ์
- ๊น์ฑ์_T4039: Object Tracking ๋ชจ๋ธ ์กฐ์ฌ, Modeling, ์ผ๊ตด ๋งค์นญ ์๊ณ ๋ฆฌ์ฆ ๊ฐ๋ฐ
- ๊น์ฃผ์ฝ_T4048: Model Serving
- ์ด ๊ตฌ_T4145: Cartoonize ๋ชจ๋ธ ์กฐ์ฌ, Modeling, ์๊ณ ๋ฆฌ์ฆ ๊ฐ๋ฐ
- ์ดํํฌ_T4172: Object Tracking ๋ชจ๋ธ ์กฐ์ฌ, Modeling, ์ฝ๋ ์ค๋ฅ ๋ถ์ ๋ฐ ์์
|
|
- TV ํ๋ก๊ทธ๋จ ํน์ ์ ํ๋ธ๋ฅผ ๋ณด๋ค๋ณด๋ฉด, ๋ฉ์ธ ์ถ์ฐ์๊ฐ ์๋ ์ด๋ค์ ์ผ๊ตด์ ๋ชจ์์ดํฌ ๋ ๊ฒ์ ์ฝ๊ฒ ์ฐพ์๋ณผ ์ ์๋ค. ํ์ง๋ง ์ด๋ฌํ ๋ชจ์์ดํฌ ๊ธฐ๋ฒ์ ์ผ๊ตด์ ํน์ง์ ์ง์๋ฒ๋ฆฌ๊ธฐ ๋๋ฌธ์ ์ธ๋ฌผ์ ์ผ๊ตด ํ์ , ๋๋น, ์์ ๊ณผ ๊ฐ์ ์ ๋ณด๋ฅผ ์๊ฒ ๋๋ค.
|
|
- ์์ ์ฌ์ง๋ค์ '๋ฐฑ์ข ์์ ์ฟ ํน๋ก๊ทธ'๋ผ๋ ์ ํ๋ธ ์ฑ๋์์ ๊ฐ์ ธ์จ ๊ฒ์ผ๋ก, ์ผ๋ฐ์ธ์ ํ์ ๊ณผ ๋์๋๋ ๋ฐฑ์ข ์์ ์ฌ์ง์ผ๋ก ๋์ฒดํจ์ผ๋ก์จ ๊ทธ๋ค์ ๋ฐ์์ ํจ๊ณผ์ ์ผ๋ก ํ์ ํ ์ ์๋๋ก ํ์๋ค.
- ํ์ง๋ง, ์ด๋ฌํ ๋ฐฉ์์ ํธ์ง์๊ฐ ์ง์ ํด๋น ํ๋ ์์ ์ผ๊ตด์ ์ฐพ์ ๋ฐ๊ฟ์ฃผ์ด์ผ ํ๊ธฐ ๋๋ฌธ์ ์๋นํ ๋น์ฉ(์๊ฐ, ๋ ธ๋ ฅ ๋ฑ)์ด ๋ฐ์ํ๋ค.
- ์ด์ ์ฐ๋ฆฌ๋ ๊ธฐ์กด์ ๋ชจ์์ดํฌ๋ฅผ ๋์ฒดํ์ฌ ์ฌ๋์ ํน์ ํ ์ ์์ ์ ๋๋ก ์ผ๊ตด์ ๋
ธ์ถ์ํค์ง ์๋ ๋์์ ์ผ๊ตด ํ์ , ์์ , ๋๋น๊ณผ ๊ฐ์ ์ ๋ณด๋ ๋ณด์กดํ ์ ์๋ ์๋ก์ด ๋ฐฉ์,
CAFE(CArtoonize For Extra faces)
๋ฅผ ์ ์ํ๋ค.
- Ubuntu 18.04.5 LTS
- Intel(R) Xeon(R) Gold 5120 CPU @ 2.20GHz
- NVIDIA Tesla V100-SXM2-32GB (used up to 8GB at our test)
- CUDA 11.0
- Tensorflow 1.12.0
- PyTorch 1.12.1
- opencv-python 4.2.0.34
- Detection: YOLOv7
- Tracking: BoT-SORT
- Cartoonize : White-box-Cartoonization
- Backend: FastAPI
- Frontend: Streamlit
|
์ ์ฒด์ ์ธ Data Flow๋ ์๋์ ๊ฐ๋ค.
- User๋ก๋ถํฐ ์์๊ณผ ์์์ ์ฃผ์ธ๊ณต(target) ์ฌ์ง์ ์ ๋ ฅ๋ฐ๋๋ค.
- ์์์ face detection & tracking, cartoonize๋ฅผ ์ ์ฉํ๋ค.
2-1. ์์์ ๋ํ face detection, tracking์ ํตํ์ฌ ๋ชจ๋ ๋ฑ์ฅ์ธ๋ฌผ์ ์ผ๊ตด ์ ๋ณด๋ฅผ ์ป๋๋ค.
2-2. ์์์ ๋ชจ๋ ํ๋ ์์ ๋ํ cartoonize๋ฅผ ์งํํ๋ค.- ์ฃผ์ธ๊ณต ์ฌ์ง๊ณผ ์์์ ๋ฑ์ฅํ๋ ์ธ๋ฌผ๋ค์ ์ฌ์ง์ ๋ํ feature๋ฅผ ๋ฝ์๋ธ ํ, cosine similarity๋ฅผ ๊ณ์ฐํ์ฌ target๊ณผ target์ด ์๋ ์ผ๊ตด๋ค์ ๊ตฌ๋ถํ๋ค.
- target์ด ์๋ ์ผ๊ตด๋ค์ ๋ํ ์ ๋ณด(from 2-1)๋ฅผ ์ด์ฉํ์ฌ, ๋ชจ๋ ํ๋ ์์ ์ผ๊ตด์ swap ํ๋ค.
|
์ ์ฒด์ ์ธ Service Flow๋ ์๋์ ๊ฐ๋ค.
- Streamlit์ ํตํด user์ interactionํ๋ฉฐ, ์ฃผ์ธ๊ณต ์ด๋ฏธ์ง์ ์์์ ์ ๋ ฅ๋ฐ๊ณ , ๊ฒฐ๊ณผ๋ฌผ์ ๋ค์ด๋ฐ์ ์ ์๋ค.
- Streamlit์ ํตํด ์ ๋ ฅ๋ฐ์ ์ด๋ฏธ์ง์ ์์์ local file storage์ ์ ์ฅ๋๋ฉฐ, FastAPI๋ฅผ ํตํด Detection & Tracking, Cartoonize ์ฐ์ฐ์ ์์ฒญํ๋ค.
- Detection & Tracking์ PyTorch ํ๊ฒฝ์์ ์คํ๋๊ณ , Cartoonize๋ Tensorflow ํ๊ฒฝ์์ ์คํ๋๋ค. ์ด ๊ณผ์ ์ ๋ณ๋ ฌ์ ์ผ๋ก ์งํ๋๋ฉฐ, Tracking ๊ฒฐ๊ณผ๋ MongoDB์ ์ ์ฅ๋๋ค.
- ์์ ๊ณผ์ ์ด ๋๋ ์ดํ, backend์์ MongoDB์ ์ ์ฅ๋ tracking ์ ๋ณด๋ฅผ ์ฌ์ฉํ์ฌ face swapping ๊ณผ์ ์ ์ํํ๋ค.
- Streamlit์ ํตํด user๊ฐ ์ต์ข ๊ฒฐ๊ณผ๋ฌผ์ ์ฌ์ ๋ฐ ์ ์ฅ์ด ๊ฐ๋ฅํ๋ค.
- To use any form of function we provide, the following process must be followed.
# Clone our repository
git clone https://github.com/boostcampaitech4lv23cv1/final-project-level3-cv-07
# Move to our dir
cd final-project-level3-cv-07
# Setup for each virtual environment (for frontend, backend, detection & tracking, cartoonize)
bash init.sh
- Then, follow instruction in Dataset section
- You can run CAFE with web demo. Just follow the instruction below.
# Open frontend/app.py and update backend ip address in line 14
vim frontend/app.py
"""
fix below line
backend = "http://115.85.182.51:30002" -> backend = "http://{your_own_ip_address}:30002"
"""
# Start all process required for starting demo page
bash start.sh
# Now, you can access demo page at "http://{your_own_ip_address}:30001"}
-
Unfortunately, we haven't checked the file path yet. Do it yourself if you need to.
-
You can also run CAFE without web demo. Just run the python file in the order below.
- Run cartoonize function (models/cartoonize/Cartoonize.py)
cd final-project-level3-cv-07/models/cartoonize
python Cartoonize.py
- Run tracking, face swapping and save result (models/track/mc_demo_yolov7.py)
cd final-project-level3-cv-07/models/track
python tools/mc_demo_yolov7.py
Trained with WiderFace, [pretrained weights]
Download the pre-trained weights and place them in the path below.
./final-project-level3-cv-07/models/track/pretrained
Trained with private dataset. Scenery images are collected from Shinkai Makoto, Miyazaki Hayao and Hosoda Mamoru films. Portrait images are from Kyoto animations and PA Works). [pretrained weights]
Download the pre-trained weights and place them in the path below. (maybe, already exist)
./final-project-level3-cv-07/models/cartoonize/saved_models
- ์ฒซ ๋ฒ์งธ ๊ฒฐ๊ณผ์ tracking result๋ฅผ ๋ณด๋ฉด ๋ฐฐ๊ฒฝ ๋ฐ ์์์์๋ ์ผ๊ตด์ด ์ธ์๋๋ ๊ฒ์ ํ์ธํ ์ ์๋ค. CAFE๋ confidence thresholding์ ํตํด ์ด๋ฌํ ์ํฉ์์๋ ๊ฐ์ธํ๊ฒ ๋์ํ๋ค.
- ๋ ๋ฒ์งธ, ์ธ ๋ฒ์งธ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ฉด ํ๋ฉด ์ ํ์ ์ํด ๋์ธ ์ธ๋ฌผ์ ๋ํ ์ฌ๋ฌ๊ฐ์ tracklet์ด ์์ฑ๋์ง๋ง, ์ฐ๋ฆฌ๊ฐ ์ ์ํ two-step similarity check ๊ณผ์ ์ ํตํด ์ฑ๊ณต์ ์ผ๋ก target๊ณผ extra๋ฅผ ๊ตฌ๋ถํด๋ด๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
target
|
tracking result
|
CAFE result
|
|
|
|
|
|
|
|
|
|
- https://www.youtube.com/watch?v=SP-LJqVgQuw&t=163s
- https://www.youtube.com/watch?v=GmAwsAB7nhw
- https://www.youtube.com/watch?v=tL20swtWOqI
|
[Wrap-up Report] [Slides] [Presentation]
- C.-Y. Wang, A. Bochkovskiy, H.-Y. M. Liao, Yolov7: Trainable bag- of-freebies sets new state-of-the-art for real-time object detectors, arXiv preprint arXiv:2207.02696.
- N. Aharon, R. Orfaig, B.-Z. Bobrovsky, Bot-sort: Robust associations multi-pedestrian tracking, arXiv preprint arXiv:2206.14651.
- X. Wang, J. Yu, Learning to cartoonize using white-box cartoon represen- tations, in: Proceedings of the IEEE/CVF conference on computer vision and pattern recognition, 2020, pp. 8090โ8099.
A large part of the code are borrowed from YOLOv7 with wider face dataset, BoT-SORT, White-box-Cartoonization. Thanks for their excellent work and sharing.