top of page
검색
  • 윤서윤

영화 스크린샷으로 영화 제목 예측 딥러닝 모델

인터넷의 발달과 함께 접할 수 있는 정보도 많아진 요즘, 여기 저기 떠도는 게시글들을 보다가 문득 발견한 한 영화의 스크린샷. 영화의 제목이 궁금했지만 도통 알아낼 수가 없어서 답답했던 적이 한번쯤은 있을 것입니다. 저 또한 그런 경험이 있었습니다.


그러한 경험에서 착안해 영화의 스크린샷만으로 영화 제목을 알아낼 수 있는 모델을 만들어보고자 했습니다. 영화의 대부분을 스크린샷으로 찍어 데이터로 저장한 후 인터넷상에서 찾은 스크린샷을 무작위로 모델에 넣었을 때 제목을 찾을 수 있을지가 궁금했습니다. 적절한 학습을 거친 모델을 활용한다면 영화제목을 찾을 수 있을 것이라는 가설을 세웠습니다.


영화의 스크린샷이 모여있는 데이터를 찾을 수 없었기 때문에 직접 영화파일을 10초당 1번 스크린샷을 뽑아 데이터로 만들었습니다. 데이터양의 한계로 영화는 4개의 파일만 사용했고 엔칸토, 고스트버스터라이즈, 마더안드로이드, 싱투게더로 정했습니다.

각각의 영화 스크린샷을 다른 폴더에 넣어 분류한 후 이미지데이터제네레이터를 사용해서 정규화와 라벨링을 해주었습니다. 클래스를 확인한 결과 0은 엔칸토, 1은 고스트버스터즈라이즈 2는 마더안드로이드 3은 싱투게더로 분류된 것을 확인 할 수 있습니다. 라벨 분리를 위해 next 함수를 사용했습니다.


모델 학습과정입니다. 3개의 컨볼루션층 사이에 풀링 층을 끼워넣어 특징 추출 부분을 구성하고 2개의 은닉층과 출력층으로 구성된 완전 연결 신경망으로 분류기를 구축했습니다. 컨볼루션층에서 패딩은 same으로 입력 이미지 사이즈와 출력 이미지 사이즈가 동일하도록 설정해주었습니다. 활성화 함수는 relu를 사용했습니다. 맥스풀링 필터의 크기를 2바이2 영역으로 설정했습니다. 4개의 영화를 분류하기 때문에 출력층의 노드는 4개로 설정했으며 활성화함수는 소프트맥스 함수를 사용했습니다.

학습결과 정확도는 0.8705로 확인됐습니다.




학습결과를 보다 정확하게 확인하기 위해 구글에서 영화의 스크린샷을 찾아 무작위로 모델에 입력해주었습니다. 엔칸토는 엔칸토로, 고스트 버스터즈 라이즈는 고스트 버스터즈 라이즈로, 마더안드로이드는 마더안드로이드로, 싱투게더는 싱투게더로 정확히 분류하는 것을 확인할 수 있습니다.


이번 프로젝트에서의 한계점은 전체 영화에 대한 데이터를 얻기가 힘들다는 점입니다. 또한 전체 데이터를 얻는다고 하더라도 데이터양이 막대해짐에 따른 부담이 있을 것입니다. 그리고 아무래도 영화저작권 이슈가 발생할 가능성이 큰 문제가 있습니다.


이런 문제들은 영화산업 발전등의 명목으로 영화협회와의 협업을 이뤄낸다면 해결이 가능할 것입니다.


전체코드


조회수 73회댓글 0개

최근 게시물

전체 보기

Comments


게시물: Blog2_Post
bottom of page