Классический форум-трекер
canvas not supported
Нас вместе: 4 232 118

Использование YoloCR для извлечения субтитров, наложенных на видео (дехардсаб)


 
 
RSS
Начать новую тему   Ответить на тему    Торрент-трекер NNM-Club -> Форум Видео -> Обработка Аудио & Видео
Автор Сообщение
3-50 ®
Стаж: 16 лет 6 мес.
Сообщений: 219
Ratio: 7.647
Раздал: 34.74 TB
Поблагодарили: 1661
25.74%
Зачем?
Увидев, что в VideoSubFinder 5.0 нет заметных улучшений в распознавании субтитров (по крайней мере в автоматическом режиме при стандартных настройках), а распознавать RGBImages, обработанные в стороннем редакторе, надоело, начал искать альтернативу, итак, встречайте YoloCR.

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

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

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

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

Установка Настройка
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 распознавание хуже, подозреваю, что мог не тот пакет скачать, разбираюсь.

Если у вас установлен FineReader будет предложено использовать для распознавания его (не проверял).

Прочее
Видео работы.
Скрипт установки предназначен для Ubuntu 20.04, тестировал на виртуалке - всё ок.
ElSwanko
Куратор Аниме
Модератор Музыки
Стаж: 17 лет 6 мес.
Сообщений: 20043
Ratio: 1198.708
Поблагодарили: 86875
100%
Откуда: ур-пространство преконтинуума
roody.gif
3-50
Было бы здорово показать установку в cygwin, что не только на десятке можно было запустить процесс.

_________________
Правила: Аниме, Манга, OST || Музыка
Помощь: Скриншоты || MediaInfo || auCDtect
3-50 ®
Стаж: 16 лет 6 мес.
Сообщений: 219
Ratio: 7.647
Раздал: 34.74 TB
Поблагодарили: 1661
25.74%
ElSwanko, есть опыт компиляции ffmpeg под Cygwin?
ElSwanko
Куратор Аниме
Модератор Музыки
Стаж: 17 лет 6 мес.
Сообщений: 20043
Ratio: 1198.708
Поблагодарили: 86875
100%
Откуда: ур-пространство преконтинуума
roody.gif
3-50
Можно попробовать какую-нибудь статичную сборку, насколько понимаю - там только архитектуру системы правильно выбрать и всё. Оно от дистрибутива не зависит и должно в цигвине запуститься.

_________________
Правила: Аниме, Манга, OST || Музыка
Помощь: Скриншоты || MediaInfo || auCDtect
3-50 ®
Стаж: 16 лет 6 мес.
Сообщений: 219
Ratio: 7.647
Раздал: 34.74 TB
Поблагодарили: 1661
25.74%
ElSwanko, оказалось всё ещё проще, достаточно скачать скомпилированный под windows файл по ссылке на официальном сайте и поместить его в каталог с cygwin.
ElSwanko
Куратор Аниме
Модератор Музыки
Стаж: 17 лет 6 мес.
Сообщений: 20043
Ratio: 1198.708
Поблагодарили: 86875
100%
Откуда: ур-пространство преконтинуума
roody.gif
3-50
Поправь, пожалуйста, ссылку на репозиторий ёлки на актуальный:
https://bitbucket.org/YuriZero/yolocr/src/master/README_EN.md

И вариант установки под бубунту я бы немного скорректировал.

0. В бубунте установить сразу Git:
Код: выделить все

sudo apt install git


1. Качать не архив (ссылки не нашёл), а склонировать репу:
Код: выделить все

git clone https://bitbucket.org/YuriZero/yolocr.git


2. После чего перейти в папку yolocr и уже там вызывать установочный скрипт YoloBuntuInstallation.sh

3. В дополнение к самому тессеракту скачать trained-data.
В папке yolocr выполнить команду:

Код: выделить все

wget https://github.com/tesseract-ocr/tessdata/blob/master/rus.traineddata?raw=true -O tessdata/rus.traineddata


Ну а дальше уже по инструкции работать.
У меня не сработал поиск саба по всему кадру (если указать бокс 1900х1000). Видео-то отфильтровалось, но распознавание по нему не запускается. Пару строчек находит и завершает работу.
т.ч. искать надо именно текст снизу и сверху. А надписи отдельно потом тайпить.

_________________
Правила: Аниме, Манга, OST || Музыка
Помощь: Скриншоты || MediaInfo || auCDtect
Canine12
Стаж: 13 лет
Сообщений: 1
Ratio: 8.101
0%
Пишу отзыв, как обещал ТС'у.
Напишу как обычный пользователь, который хочет запустить и чтоб настраивать минимум.

1. Установка. Скажу коротко, установка не всем дастся легко, кто то вообще не сможет установить.

1. Скорость работы. Это наверно самое главное достоинство по сравнению с VideoSubFinder. У меня Yolo работает раза в ~2 быстрей.

2. Настройка. Первичная настройка для обычного пользователя сложновата, но в принципе через десяток видео уже поймешь какие цифры выставлять. И настройки наверно еще одно достоинство на мой взгляд, можно довольно хорошо почистить видео, у меня получалось даже лучше чем в Finder.

3. Работа программы. Вот с работой самой программы у меня проблемы, видео чистится хорошо, проблем нет, все быстро. И тут наступает "НО". У меня не получается бороться с пропусками субтитров, может я чего то не понимаю. У меня многострочные субтитры и область приходится делать довольно высокой, если ее делать узкой, например на одну строку, то вроде пропуски пропадают(не знаю все ли).

Ну в итоге скажу программа не плоха, она выигрывает в скорости, но VideoSubFinder это программа, которая работает с дефолтными настройками очень хорошо, я ей пользуюсь довольно часто и она меня устраивает, но если бы скорость работы была такая же как у Yolo, я бы и не подумал об этой альтернативе.

С таблицей ошибок Finder я полностью не согласен! Я уже не один десяток субтитров распознал и знаю, что он отлично справляется с видео с качеством 720.

p.s. Может я что то и не сказал, уж извиняйте. Всем добра!
Adveturer_Kun
Стаж: 4 года 10 мес.
Сообщений: 29
Ratio: 80.503
Поблагодарили: 113
2.86%
pridnestrovie.gif
в общем пока намучался с установкой, и в конце мне выдаёт это
это кстати нормально что полученное видео после энкода не содержит субтитров? в программе область субтитров отображалась. хмммм
3-50 ®
Стаж: 16 лет 6 мес.
Сообщений: 219
Ratio: 7.647
Раздал: 34.74 TB
Поблагодарили: 1661
25.74%
Adveturer_Kun, да, это нормально, скрипт выдёргивает из видео то, что по его мнению похоже на субтитры в заданной области, эти кадры хранятся в отдельном каталоге, и их можно распознать или через Teseract или через FineReader.

Я видео помещал в каталог со скриптом, затем переходил в этот каталог, и там уже запускал распознавание. А ты пишешь "/mnt/c/YuriZero# ./YoloCR.sh Mus", это равнозначно?
Shvoreps
Стаж: 15 лет
Сообщений: 3
Ratio: 64.96
14.29%
3-50 писал(а): Перейти к сообщению

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

Не получается. Жму F5, вот такую ошибку выдаёт:
Код: выделить все
2021-11-27 13:59:54.080
Failed to evaluate the script:
Python exception: module 'vapoursynth' has no attribute 'get_core'
Traceback (most recent call last):
File "src\cython\vapoursynth.pyx", line 2832, in vapoursynth._vpy_evaluate
File "src\cython\vapoursynth.pyx", line 2833, in vapoursynth._vpy_evaluate
File "D:/YuriZero-yolocr/YoloResize.vpy", line 11, in
core=vs.get_core()
AttributeError: module 'vapoursynth' has no attribute 'get_core'

Для установки использовал третий способ.
Версии прог: VapourSynth64-R57, VapourSynthEditor-r19-64bit, python-3.8.8rc1-amd64, YuriZero-yolocr пробовал как из ссылки в шапке, так и свежую из репозитория.
Shvoreps
Стаж: 15 лет
Сообщений: 3
Ratio: 64.96
14.29%
Так, разобрался. Если поставить не текущую версию VapourSynth, а именно VapourSynth64-R51-RC1 (она как раз и была актуальной во время написания гайда, судя по датам), то заработает. Значит, что-то не так в скрипте YoloCR. Но последняя его версия тоже эту ошибку выбивает, странно...
Но пока работой не очень удовлетворён: с "SeuilSCD=0.01-2" много мусора в сабы добавляет, а на "SeuilSCD=0.03" уже есть значительное количество пропущенных фраз.
Показать сообщения:   
Начать новую тему   Ответить на тему    Торрент-трекер NNM-Club -> Форум Видео -> Обработка Аудио & Видео Часовой пояс: GMT + 3
Страница 1 из 1