Список форумов Kage Project Kage Project
 
  РегистрацияРегистрация  ВходВход
  Архив субтитровАрхив субтитров  ПоискПоиск  ЧаВоЧаВо  ПользователиПользователи
 Войти и проверить личные сообщенияВойти и проверить личные сообщения

Использование YoloCR для дехардсаба

 
Начать новую тему   Ответить на тему    Список форумов Kage Project -> Техническая поддержка
Предыдущая тема :: Следующая тема 
Автор Сообщение
3-50



Зарегистрирован: 13.07.2020
Сообщения: 1

СообщениеДобавлено: Ср Июл 15, 2020 19:11 pm   Заголовок сообщения: Использование YoloCR для дехардсаба Ответить с цитатой

Зачем?
Увидев, что в VideoSubFinder 5.0 нет заметных улучшений в распознавании субтитров (по крайней мере в автоматическом режиме при стандартных настройках), а распознавать RGBImages, обработанные в стороннем редакторе, надоело, начал искать альтернативу, итак, встречайте YoloCR.

В связи с тем, что информацию в рунете о данной разработке не удалось найти вообще, то выкладываю то, с чем разобрался сам.

Особенности программы
Высокая скорость работы.
Значительно более точное выделение субтитров из видео.
Автоматическое распознавание субтитров с помощью Tesseract.

Подготовил сравнение на примере 1 серии 2 сезона аниме Пламенная бригада пожарных, скаченной с Ваканима (1920х1080, avc1).

Использовались настройки, заданные разработчиком, во всех случаях.

Установка
Установка в Ubuntu 20.04 (в том числе на виртуалке)
1. Скачайте архив и распакуйте.
2. Запустите скрипт
Код:
sh YoloBuntuInstallation.sh eng-only

3. Установите распознавание русского языка, вместо rus можно использовать другое кодовое обозначение языка.
Код:
sudo apt-get install tesseract-ocr-rus

Бонусом будет спрашиваться после распознавания, если есть текст, выделенный курсивом, действительно ли это курсив.

Установка в Windows
Общие шаги и для WSL и для Cygwin
1. Скачайте архив и распакуйте.
2. Установите для Windows следующие программы Python 3.8.x (укажите галочку рядом с "path"), VapourSynth (обратите внимание, должна быть одна разрядность, я использовал в обоих случаях x64, не портативные стабильные версии) и VapourSynthEditor.
3. Установите плагины для VapourSynth, для этого в PowerShell введите (запуск от Администратора скорее всего),
Код:

vsrepo.py install ffms2
vsrepo.py install havsfunc
vsrepo.py install fmntconv
vsrepo.py install fmtconv
vsrepo.py install edi_rpow2

в Windows 10 через Windows Subsystem for Linux
1. Установите Windows Subsystem for Linux, у себя использовал вторую версию.
2. Установите из магазина приложений Ubuntu 20.04
3. Откройте Ubuntu, зайдете в каталог с распакованным скриптом, допустим, у вас хранится на диске d:\YoloCR-master, значит команда будет выглядеть следующим образом
Код:
cd ../../mnt/d/YoloCR-master

4. Запустите процесс установки
Код:
sh YoloBuntuInstallation.sh eng-only

5. Установите распознавание русского языка, вместо rus можно использовать другое кодовое обозначение языка.
Код:
sudo apt-get install tesseract-ocr-rus


Возможно, после окончания установки, терминал надо будет перезапустить, так как когда устанавливал в Ubuntu на VirtualBox мне об этом сообщили.


Установка в Windows через Cygwin
1. Скачайте и установите Cygwin (в процессе установке выбрал первый понравившийся dowload site), обязательно найдите и установите следующие компоненты (поменяйте в VIew на Full, проще будет искать), для того, чтобы отметить компонент для установки дважды нажмите на Skip
bc
gnupg
links
make
perl
wget
tesseract-ocr
tesseract-ocr-eng
2. Установите GNU Parallel, для этого в терминале Cygwin напишите
Код:
wget -O - pi.dk/3 | bash

В процессе установке долго думает, ругается на сертификат вроде как, я нажал на продолжить. И
Код:
if [ -f ~/bin/parallel ]; then mv ~/bin/parallel /usr/local/bin/; fi

3. Скачайте ffmpeg и распакуйте в каталог Cygwin содержимое архива
4. Скачайте распознавание русского языка и поместите файл в каталог "C:\cygwin64\usr\share\tessdata".

Настройка
1. Открываем в VapourSynthEditor файл YoloResize.vpy, смотрим на 4 параметра
FichierSource – местонахождение файла
DimensionCropbox – местонахождение области, в которой будут искаться субтитры, числа должны быть чётными, и не превышать размер видео.
HauteurCropBox – расстояние от нижней границы области до низа видео
Supersampling – размер суперсемплинга, установите «-1» для автоматического расчёта или оставьте по умолчанию
Нажмите на f5, убедитесь, что субтитры помещаются в белый прямоугольник полностью

2. Открываем в VapourSynthEditor файл YoloSeuil.vpy указываем у 4 первых 4 параметров такие значения как и в предыдущем файле.
Следующие параметры ModeS и Seuil помогут задать оптимальные параметры для обработки субтитров, не разбирался детально, оставил по умолчанию.
Нажмите на f5, посмотрите на результат.

3. Открываем в VapourSynthEditor файл YoloCR.vpy, указываем значения параметров, как и в первом файле.
HauteurCropBoxAlt местонахождение второй области для поиска субтитров, по умолчанию отключено, при активации время обработки увеличится в два раза.
SeuilI уменьшение этого параметра увеличивает четкость букв.
SeuilO нужно увеличить, если некоторые буквы оказываются стёрты.
SeuilSCD Слишком низкий порог увеличивает количество ложных срабатываний, слишком высокий не все субтитры обнаружит.
Нажмите на f5, посмотрите на результат.

Изменение размера видео и распознавание
Зайдете в каталог с распакованным скриптом, допустим, у вас хранится по адресу "d:\YoloCR-master" и в этом же каталоге находится видео, значит команда будет выглядеть следующим образом
Ubuntu
Код:
cd ../../mnt/d/YoloCR-master

Cygwin
Код:
cd /cygdrive/d/YoloCR-master


Запускаем изменение размера видео
Код:
vspipe -y YoloCR.vpy - | ffmpeg -i - -c:v mpeg4 -qscale:v 3 -y nameOftheVideoOutput.mp4

Запускаем распознавание
Код:
./YoloCR.sh nameOftheVideoOutput.mp4 rus


Относительно WSL распознавание примерно такое же, к слову, есть вопросы у меня по линуксу у кого есть возможность отпишитесь, пожалуйста.


Прочее
Видео https://1drv.ms/v/s!AnJQcUlXiII7grdC_n1DTB5Mj8PAHA
Автор темы на nnmclub тоже я, можно писать и там и тут, там отвечу 100%.

В планах
Сделать скриншоты с установкой;
Разобраться с пакетной обработкой;
Рассказать о оптимальном способе распознавания текста в FineReader;
Провести сравнение с VideoSubFinder.

Замеченные ошибки
Q: При запуске "sh YoloBuntuInstallation.sh eng-only" появляется сообщение о наличии ошибок в 8 и 15 строках.
A: Вроде как ничего страшного нет, eng-only означает, что сообщения должны быть на английском, а не на французском, также вместо вместо французского пакета распознавания скачается английский, хотя, вроде как он всё равно скачается, но что-то пошло не так.

Q: При использовании Tesseract для распознавания в Cygwin появляется ошибка "-negate".
A: Можно использовать движок Legacy, а не LSTM, но, мне показалось, что качество распознавания хуже. Впрочем, у меня в Cygwin хуже распознает в принципе.

Q: При использовании FineReader для распознавания в Cygwin появляется ошибка "cannot conver".
A: Возможно дело в кодировке, при сохранении текстовых файлов, убедитесь, что сохранение происходит в Windows-1251, в скрипте "YoloCR.sh" замените все упоминания "ws-1252" на "ws-1251".

Q: Возможно распознается только русский или только английский
A: Возможно, пока не знаю.

Изменения
0.4 Добавил вступление, сравнение в разных режимы работы, а также сравнение с VideoSubFinde.
0.3 Добавил описание замеченных ошибок и варианты решения.
0.2 Добавил описание установки через Cygwin.
0.1 Добавил описание установки через WSL.


Последний раз редактировалось: Пн Сен 28, 2020 21:04 pm
К началу
Посмотреть профиль Отправить личное сообщение Добавить в игнор-лист
YomaiGotoA



Зарегистрирован: 20.08.2020
Сообщения: 44
Откуда: Moscow
СообщениеДобавлено: Сб Авг 29, 2020 9:20 am   Ответить с цитатой

Отлично иметь альтернативу. Хоть я и не занимаюсь переводом субтитров, благодарю вас за эту работу :) Wink
К началу
Посмотреть профиль Отправить личное сообщение Добавить в игнор-лист
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов Kage Project -> Техническая поддержка Часовой пояс: GMT + 3
Страница 1 из 1
 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы можете скачивать файлы, прикрепленные к сообщениям