영상에 하드코딩된 자막 자동추출 가이드 - 1

자막제작자포럼

영상에 하드코딩된 자막 자동추출 가이드 - 1

1 notnrwk 3 227 1

씨네스트에 기존에 소개된 여러가지 하드코딩 자막 추출법들을  

사용해 봤는데, 인식률이 좋으면 불편하고, 편리하다 싶으면

글자 인식률이 형편없고, 딱 만족스러운게 없더군요.


그런데 인터넷을 찾아보다가 편의성과 완벽한 인식률 모두를 만족하는

좋은 프로그램이 있어서 소개할까 합니다.


제가 소개하는 이 프로그램은 구글 OCR 기능을 이용하지만 사람의 손으로 

하나하나 처리할 작업을 자동적으로 처리해서, 그냥 실행시켜 놓고 기다리면 

OCR 처리한 자막을 뚝딱 내놓는 프로그램입니다. 


Video Sub Finder로 자막 이미지를 추출해서 자막 OCR 프로그램이 있는

폴더로 복사하고 실행버튼을 누르는 것 말고 아무것도 하지 않아도 됩니다.

모든 과정은 자동으로 처리됩니다.


어떤가요? 너무 편리하겠죠? 자막 제작자의 시간은 너무나 소중하니까, 

시간을 아껴야죠. 귀찮은 노가다는 컴퓨터에 맡기구요.


아래 링크에 프로그램 사용방법에 대한 간단한 설명 동영상이 있습니다.

https://youtu.be/u7792ZLPefM 


설치와 준비과정은 약간 까다로울 수 있기에 다음글에서 설명하기로 하고 

일단 기본적인 사용법부터 캡쳐 이미지를 통해서 설명하겠습니다.


익숙한 Video Sub Finder로 자막 이미지를 추출합니다. 


Video Sub Finder 다운로드 페이지

https://www.videohelp.com/software/VideoSubFinder 


자신의 윈도우 버전에 따라서 32/64bit 구분해서 다운로드 하시면 됩니다


0bda19e29865b96cafe60a5e92e44f22_1694944719_5599.jpg
 

기존에는 OCR 인식률을 높이기 위해서 ISA이미지 파일을 이용하는 경우가

많은데, 우리는 구글 OCR을 사용할 것이기 때문에, 원본 RGB 이미지를 그대로

사용합니다. 


0bda19e29865b96cafe60a5e92e44f22_1694944781_6869.jpg

RGB 폴더에 이미지를 그대로 사용할 경우 보시다시피 텍스트가 없는 이미지들이

많이 포함되서, 비어있는 자막이 생기게 되고, 또 중복된 텍스트들이 있어서 똑같은

자막이 두 세줄씩 생길 수 있습니다.


이 문제는 나중에 Subtitle Edit를 사용해서 자동수정 하기로 하고, 일단은 그냥

이대로 사용합니다. 왜냐? 지금 단계에서 수정하려면 귀찮고 시간이 오래 걸리니까요.

시간은 소중하지요.


RGB 폴더에 수백개 자막 이미지들을 모두 선택한 후에  잘라내기 해서 
Google Docs OCR V3\images 폴더안에 붙여 넣어줍니다.

0bda19e29865b96cafe60a5e92e44f22_1694944873_9831.jpg

그리고 자신이 가진 구글계정 구글 드라이브에 폴더를 하나 만들고 
폴더 ID를 복사합니다. 예를들어 폴더 주소가 이렇다면


뒷부분 1O_g2mn_x6EYzI5hfpICrzR6iZRfPe51O를 복사하는 것입니다.

0bda19e29865b96cafe60a5e92e44f22_1694944941_4555.jpg

그리고 프로그램이 있는 Google Docs OCR V3 폴더 안에 있는 folder_id.ini 파일을 열어
folder_id = 여기에 복사한 주소를 붙여놓고 저장합니다. 이제 작업 준비는 끝났습니다. 

0bda19e29865b96cafe60a5e92e44f22_1694944963_4445.jpg

이제 Google Docs OCR V3 폴더 안에 main.py를 실행시키면 작업이 시작됩니다.
 
Google Docs OCR V3 가 임시로 만들어둔 이 구글드라이브 폴더 안으로 자막 이미지를 
업로드하고, 파일 하나하나마다 OCR 기능을 실행하고, 결과물을 일일이 다운 받아서 
하나의 자막으로 합쳐줍니다. 모든 것은 자동으로 실행됩니다. 

0bda19e29865b96cafe60a5e92e44f22_1694945048_7055.jpg 



작업이 완료될때까지 차 한잔 하거나, 다른 볼일 하시면서 기다리면 됩니다.



0bda19e29865b96cafe60a5e92e44f22_1694946342_7283.jpg

 

폴더 안에 이미지 파일이 919개네요. 45분 분량에 919개니까 평균적인 수준입니다.

20분 걸려서 작업이 완료되었습니다. 원본 파일이 고화질이라면 아마 30분 정도

걸렸을 겁니다.


작업이 완료된 이후에 다시 구글 드라이브에 접속해서, 만들어둔 작업용 폴더를 
삭제하기면 하면 깨끗하게 됩니다.

Google Docs OCR V3 안에 생성된 srt 자막파일을 Subtitle Edit로 열어봅니다.


0bda19e29865b96cafe60a5e92e44f22_1694945101_4191.jpg


훌륭합니다. 아주 정확하게 인식 불량 없이, 띄어쓰기도 거의 정확합니다.

역시 구글이네요. 그렇지만 텍스트가 없는 이미지 파일과 중복자막 이미지들이

포함된 RGB 폴더의 파일을 사용했기에, 앞서 예상했던 것처럼 비어있는 자막줄과 

중복된 자막줄들이 눈에 보입니다.


이제 이것을 Subtitle Edit의 <일반적인 오류수정> 기능과 <동일한 텍스트라인 병합하기>

기능으로 정리합니다.


0bda19e29865b96cafe60a5e92e44f22_1694945155_7015.jpg

 

<일반적인 오류수정> 기능에는 빈 줄을 제거하는 옵션이 있습니다. 

이 기능으로 텍스트가 없는 이미지 파일 때문에 생긴 비어있는 라인을 제거합니다.


0bda19e29865b96cafe60a5e92e44f22_1694945184_1853.jpg
 

훌륭하게 비어있던 텍스트 라인이 제거되었습니다. 


다음으로 <동일한 텍스트 라인 병합> 기능을 실행합니다.


0bda19e29865b96cafe60a5e92e44f22_1694945210_5509.jpg

중복되게 분리된 자막라인들이 한줄로 훌륭하게 병합되었습니다. 919개의 이미지 파일 
때문에 생성된 919개의 자막 라인이 최종적으로 725개로 정리되었습니다.

이제 최종적으로 자막들을 살펴보면서 오탈자와 이상하게 인식된 글씨,
이상한 기호 같은게 포함되어 있는지 수정합니다. 이번에는 구글 OCR이
너무 작업을 잘해줘서 잘못 인식된 글씨나 오탈자가 하나도 없네요.
띄어쓰기 인식도 완벽하고요. 

다만 ""이런 문장기호 같은게 불필요하게 가끔씩 들어가 있네요. 
글씨 인식은 완벽하지만, OCR 처리과정에서 글씨 주변에 음영 같은 것이나
노이즈를 "" 이런 문장기호로 인식한 모양입니다.

세심하게 읽어보면서 수정한다면 아마 10분 정도는 수정시간이
걸릴거라고 생각합니다. 완벽한건 없으니까요.

Google Docs OCR V3는 구글 클라우드 계정에서 구글 드라이브

api를 사용합니다. 구글 클라우드 계정을 만들면 시작할때 트라이얼

40만원 정도를 구글이 무료로 충전해 줍니다.


제가 지금까지 이 프로그램으로 영상 100개 가까이 하드코딩된 자막파일을

추출했지만, 40만원 중에 1만원도 사용 못했습니다. 자막 1000개를 추출한다고 

해도 10만원도 안되네요. 사실상 무료니까 원하시는 하드코딩된 영상들에서

자막 마음껏 추출하세요.


프로그램의 실행을 위해서는 구글 클라우드 api가 포함된 credentials.json과 

구글드라이브 자동로그인을 위한 token.json. 두개의 json 파일이 필요합니다.


이 두개의 json 파일을 Google Docs OCR V3 폴더 안에 집어넣어 두고, 

이 폴더를 필요할 때마다 복사해서 사용하고 작업이 완료되면 그냥 삭제하는 

방식으로 1회용으로 쓰면 편합니다. 


왜냐하면 작업이 끝나고, 작업에 사용된 image 파일이나 구글드라이브에서

OCR 인식이 완료된 수백, 수천개의 텍스트 파일 등등이 컴퓨터에 남게 되기

때문에, 이걸 일일이 삭제하고 청소하는게 더 번거롭거든요.


그냥 json 파일이 들어있는 폴더를 복사해서 1회용으로 쓰고 삭제하고,

다시 복사해서 쓰고 삭제하는 식으로 쓰는게 좋습니다. 저는 이런 방식이 편합니다.



json 파일들의 생성에 방법에 대해서는 다음글에서 상세히 설명하고, 

이번글에서는 프로그램의 사용방법에 대해서만 설명하겠습니다.


그리고 1시즌 전체 10개 이상 영상을 작업해야 한다면 BATCH HARDSUB TO SRT

이게 필요합니다. 이 프로그램은 특정한 폴더를 만들어서 파일을 작업하지 못하고,

그냥 구글 드라이브에서 작업합니다. 


만일 시즌 한개 16개 영상이라면 자막 이미지 파일이 수천개에서 1만개 가까이 

구글드라이브에 남게 될 겁니다. 그러면 구글 드라이브에서 그거 전부 삭제하고 

정리하는데 시간이 한참 걸리겠죠.


그럴때는 구글 드라이브에 업로드한 파일이 있다면 컴퓨터에 백업하고, 정리해서 구글 드라이브를

깔끔하게 비워놓은 다음, 자막 작업이 끝난 이후에 Delete_All_Files_Google_Drive 프로그램을 실행하면 

구글 드라이브에 있는 모든 파일을 자동으로 삭제해 줍니다. 


정리하는 작업도 시간이 걸리고, 귀찮은 일이죠. 실행시켜놓고, 자기 할일 하면 정리되는 겁니다 

자막 제작자의 시간은 소중하니까요. 


Google Docs OCR V3 BATCH CONVERT MULTI IDX/SUB TO SRT를 사용하면 dvd나 블루레이에서 

한시즌 전체 IDX/SUB를 추출한 다음, 폴더에 넣고, 실행 한번만 누르면 srt 자막으로 모두 자동으로

변환 됩니다.


참고로 이 프로그램들은 인도인 프로그래머가 만든 것 같습니다. 인도 사람들 똑똑하네요 ㅎㅎ


이 유튜브 채널에 튜토리얼과 다운로드 방법이 나와 있으니 참고하시면 될겁니다.


https://www.youtube.com/@MrKingGM 


다음글에서는 프로그램을 실행하기 위한 준비과정을 좀더 상세하게 설명하겠습니다.

이 글만으로 프로그램을 실행할 수는 없습니다. 필요한 파일들이 있기 때문이죠.


그래서 반드시 제 다음글을 읽어야 프로그램의 실행이 가능합니다.

다음글 링크


https://cineaste.co.kr/bbs/board.php?bo_table=psd_capmakef&wr_id=31011 

Facebook Twitter GooglePlus KakaoStory NaverBand 신고
3 Comments
15 oO지온Oo  
아직까지는 영상에 박혀있는 이미지 자막을 문자로 추출할 일이 없었습니다.
본문 내용이 흥미진진합니다.
저도 필요할 때 본문 내용을 참고해 보겠습니다.
2 r4t4z2sc3gtwr3a…  
예전에 해봤을때 OCR 수정하는데만 3시간은 걸린거 같았는데 좋네요
1 notnrwk  
제가 소개한 방법이라면 가장 인식률이 나쁜 결과물이라도,
원본과 동일하게 수정하는데  1시간 이상 걸리지는 않을 거라고
생각하고 있습니다..