강세희

[UPDATE] README.md

Showing 1 changed file with 96 additions and 0 deletions
1 +
2 +# YOLO를 활용한 유튜브 썸네일 추천 알고리즘 개선
3 +유튜브에 동영상을 올릴 때 유튜브 자체에서 썸네일을 추천해주는 기능이 존재한다.
4 +사용하기에 적합하지 않은 썸네일을 추천해주는 것을 문제점으로 생각하고 이를 개선하는 것을 이 프로젝트의 목적으로 두었다.
5 +
6 +아이디어는 다음과 같다.
7 +<br>
8 +<br>
9 +
10 +
11 +---
12 +## 아이디어 및 사용 오픈소스
13 +
14 +위에서 언급한 문제점을 개선하기 위해, 프레임을 의미있게 해주는 가장 중요한 요소를 '객체'라고 가정하였다.
15 +추천해주는 프레임 내에 무조건 객체가 존재하도록 구현하기 위해 객체 탐지 모델인 [YOLO v3]((https://pjreddie.com/yolo/))를 사용했다.
16 +동영상을 프레임으로 저장했을 때 화질이 떨어지는 문제점을 조금이나마 해결하기 위해 opencv의 가우시안 블러와 샤프닝을 위한 간단한 커널을 사용하였다.
17 +프로젝트의 유효성 검증은 머신러닝 YOLO가 배포될 때 학습된 [COCO dataset](https://cocodataset.org)을 사용하였지만, [OIDv4_ToolKit-YOLOv3](https://github.com/EscVM/OIDv4_ToolKit)를 이용해 [Open Image](https://storage.googleapis.com/openimages/web/index.html)에서 데이터셋을 받아 [darknet](https://github.com/pjreddie/darknet) 학습을 진행하였다.
18 +
19 +
20 +<br>
21 +<br>
22 +
23 +---
24 +## 이 프로젝트에서 구현한 내용
25 +1. 한 프레임 내의 유요한 두 물체에 대한 객체 검출
26 +2. 적절하게 이미지 크롭
27 +3. Open Image를 활용한 YOLO 학습
28 +<br>
29 +<br>
30 +
31 +---
32 +
33 +## 프로젝트 실행
34 +프로젝트 파일 내의 code/Project 폴더를 다운받아, 아래와 같이 실행
35 +1. 결과 폴더 비우기
36 +```
37 +python cleanfolder.py
38 +```
39 +2. 입력 동영상 설정
40 +```
41 +code/Project 폴더 내 input 폴더에 example.mp4라는 이름으로 넣기
42 +```
43 +3. 프로젝트 실행
44 +```
45 +python code/Project/project.py
46 +```
47 +
48 +<br>
49 +<br>
50 +
51 +---
52 +## 프로젝트 결과 폴더 설명
53 +<br>
54 +
55 +#### 1. output1
56 +검출된 프레임 중 가장 크기가 큰 객체가 존재하는 프레임
57 +아래는 프레임화된 동영상에서 검출된 bicycle의 크기가 가장 큰 프레임이다
58 +<br>
59 +
60 +<center><img src = "https://user-images.githubusercontent.com/22738293/121802311-9270b800-cc76-11eb-9e0d-aab106dbc47f.png" width="360" height="640"></center>
61 +<br>
62 +
63 +#### 2. output2
64 +검출된 프레임 중 객체가 가장 프레임의 가운데에 위치하는 프레임
65 +아래는 프레임화된 동영상에서 검출된 bicycle의 크기가 가장 큰 프레임이다
66 +<br>
67 +
68 +<center><img src = "https://user-images.githubusercontent.com/22738293/121802327-addbc300-cc76-11eb-82aa-6562097652a0.png" width="360" height="640"></center>
69 +<br>
70 +
71 +#### 3. output3
72 +가장 가운데 존재하는 객체의 중복 제외 크기의 합이 가장 큰 프레임
73 +아래는 프레임화된 동영상에서 검출된 bicycle, person의 크기가 가장 큰 프레임이다
74 +<br>
75 +
76 +<center><img src = "https://user-images.githubusercontent.com/22738293/121802343-bcc27580-cc76-11eb-939e-b293b104c99d.png" width="360" height="640"></center>
77 +<br>
78 +
79 +#### 4. ouput1_crop, output2_crop, output3_crop
80 +1~3의 결과를 객체를 중심으로 크롭한 결과이다
81 +<br>
82 +
83 +<center><img src = "https://user-images.githubusercontent.com/22738293/121802373-e11e5200-cc76-11eb-9895-6bcc136d8859.png" width="350" height="200"></center>
84 +<br>
85 +
86 +<center><img src = "https://user-images.githubusercontent.com/22738293/121802383-ff844d80-cc76-11eb-95d4-7d33f0241969.png" width="350" height="200"></center>
87 +<br>
88 +
89 +<center><img src = "https://user-images.githubusercontent.com/22738293/121802399-0b700f80-cc77-11eb-9b27-5356d1b927d9.png" width="350" height="200"></center>
90 +<br>
91 +
92 +---
93 +## 유튜브의 추천 결과
94 +<center><img src = "https://user-images.githubusercontent.com/22738293/121802467-4e31e780-cc77-11eb-939f-83e1bc3848ce.png" width="700" height="400"></center>
95 +<br>
96 +
......