Yoonjunhyeon

최종보고서 및 readme 수정

......@@ -3,16 +3,18 @@
---
## Intro
Tag Money?는 동영상에 어울리는 유튜브 태그 추천해 주는 웹 서비스입니다.
유저가 영상을 업로드하면 기존 유튜브 영상들과의 유사성을 파악하여 가장 어울리는 태그을 추천해 줍니다.
Tag Money?는 동영상에 어울리는 유튜브 태그와 관련 유튜브 영상을 추천해 주는 웹 서비스입니다.
유저가 영상을 업로드하면 기존 유튜브 영상들과의 유사성을 파악하여 가장 어울리는 태그와 연관된 유튜브 영상을 추천해 줍니다.
본 프로젝트는 박광훈 교수님의 **유튜브 동영상 분류를 위한 자동 태깅 방법에 대한 연구**에 기반하고 있습니다.
## Research field
* Video Classification (CNN, RNN, LSTM)
* Auto Tagging
* Video Classification
* NLP
* Word Vectorization
## Tech Stack
* [PyTorch](https://pytorch.org/)
* [Tensorflow](https://www.tensorflow.org/)
* [Gensim](https://radimrehurek.com/gensim/)
* [Django](https://www.djangoproject.com/)
* [Vue.js](https://kr.vuejs.org/v2/guide/index.html)
......@@ -26,3 +28,31 @@ Tag Money?는 동영상에 어울리는 유튜브 태그를 추천해 주는 웹
## Links
* [Youtube-8M Challenge](https://research.google.com/youtube8m/)
* [Mediapipe](https://github.com/google/mediapipe)
## How to run.
### 필요한 라이브러리 설치
1. git pull ssh://git@khuhub.khu.ac.kr:12959/2020-1-capstone-design1/PKH_Project1.git
2. python 3.5 ~ 3.7, node.js 12.16
3. google mediapipe 설치 https://google.github.io/mediapipe/getting_started/install
4. YouTube-8M feature extraction graph 설치 https://github.com/google/mediapipe/tree/master/mediapipe/examples/desktop/youtube8m (요구 사양 RAM 32GB 이상)
5. PKH_Project1/web/backend에서 requirements.txt 설치 (venv 사용 권장) -> pip install -r requirements.txt
6. PKH_Project1/web/frontend에서 package.json 설치 -> npm install
### 모델 학습
1. Train
- python train.py --frame_features --model=FrameLevelLogisticModel --feature_names='rgb,audio' --feature_sizes='1024,128' --train_data_pattern=/Train_데이터셋_저장경로/train*.tfrecord --train_dir PKH_Project1/web/backend/yt8m/esot3ria/model --start_new_model --segment_labels
2. Evaluation
- python eval.py --eval_data_pattern=/Eval_데이터셋_저장경로/val*.tfrecord --train_dir PKH_Project1/web/backend/yt8m/esot3ria/model --run_once --segment_labels
### 웹서버 가동
#### 1~6의 절차가 반드시 완료되어 있어야 합니다.
- PKH_Project1/web/backend 디렉토리에서
- . env/bin/activate (가상환경 사용 시)
- python manage.py makemigrations
- python manage.py migrate
- python manage.py runserver
#### front UI 수정하고 싶을 시, Vue의 사용법을 알아야합니다!
#### backend를 수정하고 싶을 시 django의 사용법을 알아야합니다!
\ No newline at end of file
......
#!/bin/bash
cd ../frontend
npm install
npm run build
cd ../backend
. env/bin/activate
pip install -r requirements.txt
rm -rf static
./manage.py collectstatic
rm -rf static/admin
rm -rf static/rest_framework
python manage.py makemigrations
python manage.py migrate
# python vue2djangoTemplate.py (자동화 - 작성예정, 어캐함??ㅠ)
# 현재 vue index를 django template으로 자동화 하는 코드를 작성하지 못하여,
# 수동으로 바꿔야 합니다.
# 이 스크립트를 실행 후에 생기는 static/index.html의
# href, src 링크를 templates/index.html의 href, src로 변경하면 정상적으로 작동합니다.
\ No newline at end of file
#!/bin/bash
cd ../frontend
npm install
npm run build
cd ../backend
. env/bin/activate
pip install -r requirements.txt
rm -rf static
./manage.py collectstatic
rm -rf static/admin
rm -rf static/rest_framework
python manage.py makemigrations
python manage.py migrate
python vue2djangoTemplate.py
python manage.py runserver 0.0.0.0:8000
\ No newline at end of file