Katna автоматизирует скучную и подверженную ошибкам задачу извлечения ключевых/лучших кадров видео, сжатия видео и трудоемкую задачу ручной обрезки и изменения размера изображения с помощью машинного обучения.
Короче говоря, вы можете рассмотреть возможность использования библиотеки Katna, если у вас есть следующие задачи:
У вас есть видео/видео, которые вы хотите сжать до меньшего размера. (Например, у вас есть видео размером, скажем, 1 ГБ, но вы хотите сжать его как можно меньше.)
У вас есть изображение/изображения, размер которых вы хотите разумно изменить до целевого разрешения. (например, 500x500, 1080p (1920x1080) и т. д.)
Вы хотите извлечь кадр с определенным соотношением сторон, например 4:3, из вашего входного изображения/изображений. (например, получить кадрирование с соотношением сторон 1:1 из изображения с разрешением 1920x1080 (изображение с соотношением сторон 16:9))
Вы хотите изменить размер видео до определенного соотношения сторон, например, 16:9 (Пейзаж), скажем, до 1:1 (квадрат). Обратите внимание, что эта функция в настоящее время является экспериментальной и требует дополнительной компиляции и настройки библиотеки Google MediaPipe.
Катна разделена на два модуля.
Этот модуль выполняет задачи по извлечению ключевых кадров и сжатию видео.
Ключевые кадры определяются как репрезентативные кадры видеопотока, кадры, которые предоставляют наиболее точное и компактное описание видеоконтента.
Извлечение кадров и критерии выбора для извлечения ключевых кадров
Сжатие видео осуществляется с помощью библиотеки ffmpeg. Подробности о которых можно прочитать в разделе модуль Katna.video_compressor.
Начиная с версии Katna 0.8.0, мы расширяем возможности интеллектуального изменения размера видео с помощью проекта Google Mediapipe. Чтобы узнать больше об этом, обратитесь к документации [Умное изменение размера видео с помощью Katna] (https://katna.readthedocs.io/en/latest/understanding_katna.html#katna-video-resize). Обратите внимание, что эта функция является дополнительной экспериментальной функцией. И может быть удален/модифицирован в более поздних версиях. Также вам также необходимо установить библиотеку Google Mediapipe, особенно двоичный файл autoflip, чтобы это работало. Пожалуйста, обратитесь к ссылке, чтобы узнать, как установить и настроить медиапайп для использования с Katna.
Этот модуль решает задачи, связанные с интеллектуальной обрезкой и изменением размера изображения.
Интеллектуальная обрезка изображения происходит таким образом, что модуль определяет лучшую часть или область, на которой кто-то фокусируется больше всего, и интерпретирует эту информацию при обрезке изображения.
Извлечение урожая и критерии выбора
Подобно умной обрезке, модуль изображения Katna поддерживает функцию интеллектуального изменения размера изображения . Учитывая входное изображение, он может изменить размер изображения до целевого разрешения с помощью простого изменения размера, если соотношение сторон одинаковое для входного и целевого изображения. Если соотношение сторон отличается от интеллектуального изменения размера изображения, сначала будет обрезано максимально качественное кадрирование в целевом разрешении, а затем будет изменен размер изображения в целевом разрешении. Это гарантирует изменение размера изображения без фактического искажения входного изображения. Обратите внимание: если соотношение сторон входного и выходного изображения не одинаково, Katna image_resize может привести к некоторой потере содержимого изображения.
Поддерживаемые форматы файлов видео и изображений ########################################
Поддерживаются все основные форматы видео, такие как .mp4, .mov, .avi и т. д., а также форматы изображений, такие как .jpg, .png, .jpeg и т. д.
Дополнительные функции выбора находятся в стадии разработки.
Установить git
Установите Anaconda или Miniconda Python.
Открыть терминал
Клонировать репозиторий отсюда https://github.com/keplerlab/Katna.git
Измените каталог на каталог, в котором вы клонировали свой репо.
$cd path_to_the_folder_repo_cloned
Создайте новую среду anaconda, если вы используете дистрибутив Python anaconda.
conda create --name katna python=3.7
source activate katna
Запустите установку:
python setup.py install
Начиная с версии Katna 0.4.0, видеомодуль Katna оптимизирован для использования многопроцессорной обработки с использованием модуля многопроцессорной обработки Python. Из-за ограничений многопроцессорной обработки в Windows. Для безопасного импорта основного модуля в систему Windows убедитесь, что «точка входа» программы заключена в имя == ' main ': следующим образом:
from Katna.video import Video
if __name__ == "__main__":
vd = Video()
# your code
для получения более подробной информации обратитесь к https://docs.python.org/2/library/multiprocessing.html#windows.
Если входное изображение имеет очень большой размер (больше 2000x2000), выполнение автоматической интеллектуальной обрезки может занять много времени. Если вы столкнулись с этой проблемой, рассмотрите возможность изменения значения down_sample_factor со значения по умолчанию 8 на более крупные значения (например, 16 или 32). Это значительно сократит время обработки.
Если вы видите ошибку «AttributeError: модуль «cv2.cv2» не имеет атрибута «saliency». Удалите opencv-contrib, выполнив команду «python -m pip uninstall opencv-contrib-python», а затем снова установите его, выполнив команду.
python -m pip install opencv-contrib-python
Если вы видите «FileNotFoundError: файл Froze_east_text_detection.pb не найден». Откройте оболочку Python и следуйте командам ниже.
from Katna.image_filters.text_detector import TextDetector
td = TextDetector()
td.download()
В Windows убедитесь, что у anaconda есть права администратора при установке с помощью anaconda, поскольку при установке некоторых модулей не удается получить разрешение на запись.
Если вы получаете сообщение «Ошибка выполнения: exe-файл ffmpeg не найден». Установите ffmpeg в своей системе и/или установите для переменной среды IMAGEIO_FFMPEG_EXE или FFMPEG_EXE путь к двоичному файлу ffmpeg. Обычно ffmpeg устанавливается с использованием пакета imageio-ffmpeg. Проверьте папку imageio_ffmpeg-*.egg внутри папки site-packages , в папке двоичных файлов должен быть файл ffmpeg, проверьте, имеет ли этот файл правильный набор разрешений на чтение/исполняемый файл, и дополнительно установите его путь. в переменную окружения.
Известна проблема с утечкой памяти в Katna версии 0.8.2 и ниже при выполнении массового извлечения ключевых кадров видео на Python версий 3.6 и 3.7. Это ошибка многопроцессорной обработки, наблюдаемая только в Python 3.6 и 3.7. И исправлено в катне версии 0.9 и выше. Если вы используете код извлечения ключевых кадров для большого количества видео и столкнулись с проблемой памяти, попросите вас обновить версию Katna до версии 0.9 или выше. Если вы все еще хотите использовать более старую версию Katna, рассмотрите возможность обновления версии Python до 3.8 или выше.
Мы добавили платформу записи для обработки данных из модуля Katna Video and Image. В этой версии также устранена проблема с утечкой памяти, о которой сообщалось в этой и этой проблеме.
Для video.extract_video_keyframes и video.extract_video_keyframes_from_dir требуется дополнительный объект записи. По умолчанию KeyFrameDiskWriter доступен для использования из модуля Katna.writer. Платформа Writer может быть расширена в зависимости от требований.
Для image.crop_image и image.crop_image_from_dir требуется дополнительный объект записи. По умолчанию ImageCropDiskWriter доступен для использования из модуля Katna.writer. Платформа Writer может быть расширена в зависимости от требований.
Обновленные примеры см. в документации здесь: Ссылка.
Эта версия исправления ошибок устраняет эту проблему: Ссылка
Исправлена проблема, из-за которой в редких случаях видео, разделенное с помощью ffmpeg, не читалось и вызывало исключение. Ссылка
Добавлена экспериментальная поддержка автообрезки/изменения размера видео с использованием примера кода Google MediaPipe Autoflip.
Исправлена ошибка, из-за которой методы image_module Crot_image и Crop_image_from_dir возвращали неверные кадры спецификации.
Добавлена поддержка сжатия видео в модуле Katna.video.
Добавлена поддержка интеллектуального изменения размера изображения в модуле Katna.image.
В версии 0.5.0 мы изменили названия некоторых общедоступных функций внутри модуля Katna.video, используемого для извлечения ключевых кадров,