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 |
|
|
|