Katna automatisiert die langweilige, fehleranfällige Aufgabe der Extraktion von Videoschlüsseln/besten Frames, der Videokomprimierung und der manuellen zeitaufwändigen Aufgabe des Bildzuschneidens und der Größenänderung mithilfe von ML.
Kurz gesagt: Vielleicht möchten Sie die Verwendung der Katna-Bibliothek in Betracht ziehen, wenn Sie folgende Aufgaben haben:
Sie haben Videos, die Sie auf eine kleinere Größe komprimieren möchten. (Sie haben beispielsweise ein Video mit einer Größe von beispielsweise 1 GB, möchten es aber so klein wie möglich komprimieren.)
Sie haben Bilder, deren Größe Sie intelligent auf eine Zielauflösung anpassen möchten. (z. B. 500x500, 1080p (1920x1080) usw.)
Sie möchten einen Ausschnitt mit einem bestimmten Seitenverhältnis, z. B. 4:3, aus Ihrem Eingabebild/Ihren Eingabebildern extrahieren. (z. B. einen Ausschnitt mit einem Seitenverhältnis von 1:1 aus einem Bild mit einer Auflösung von 1920 x 1080 (Bild mit einem Seitenverhältnis von 16:9) erhalten)
Sie möchten die Größe eines Videos auf ein bestimmtes Seitenverhältnis ändern, z. B. 16:9 (Querformat), beispielsweise auf 1:1 (Quadrat). Bitte beachten Sie, dass diese Funktion derzeit experimentell ist und zusätzliche Kompilierung und Konfiguration der Google Mediapipe-Bibliothek erfordert.
Katna ist in zwei Module unterteilt
Dieses Modul übernimmt die Aufgabe(n) für die Extraktion von Schlüsselbildern und die Videokomprimierung.
Als Keyframes werden die repräsentativen Frames eines Videostreams definiert, also die Frames, die die genaueste und kompakteste Zusammenfassung des Videoinhalts liefern.
Frame-Extraktion und Auswahlkriterien für die Key-Frame-Extraktion
Die Videokomprimierung erfolgt über die ffmpeg-Bibliothek. Einzelheiten dazu finden Sie im Abschnitt zum Katna.video_compressor-Modul.
Seit Version 0.8.0 von Katna erweitern wir mithilfe des Mediapipe-Projekts von Google die Funktionen zur intelligenten Größenänderung auf Videos. Weitere Informationen hierzu finden Sie in der Dokumentation [Video Smart Resize using Katna] (https://katna.readthedocs.io/en/latest/understanding_katna.html#katna-video-resize). Bitte beachten Sie, dass es sich bei dieser Funktion um eine optionale experimentelle Funktion handelt. Und kann in späteren Versionen möglicherweise entfernt/geändert werden. Außerdem müssen Sie die Mediapipe-Bibliothek von Google installieren, insbesondere die Autoflip-Binärdatei, damit dies funktioniert. Informationen zur Installation und Konfiguration von Mediapipe für die Verwendung mit Katna finden Sie unter Link.
Dieses Modul übernimmt die Aufgabe(n) im Zusammenhang mit dem intelligenten Zuschneiden und der Größenänderung von Bildern.
Der intelligente Bildzuschnitt erfolgt so, dass das Modul den besten Teil oder den Bereich identifiziert, auf den sich jemand mehr konzentriert, und diese Informationen beim Zuschneiden des Bildes interpretiert.
Erntegewinnungs- und Auswahlkriterien
Ähnlich wie Smart Crop unterstützt das Katna-Bildmodul die Smart-Bildgrößenänderungsfunktion . Bei einem gegebenen Eingabebild kann die Größe des Bildes durch einfache Größenänderung auf die Zielauflösung angepasst werden, wenn das Seitenverhältnis für Eingabe- und Zielbild dasselbe ist. Wenn sich das Seitenverhältnis von der intelligenten Bildgrößenänderung unterscheidet, wird zuerst der größte Ausschnitt in guter Qualität in der Zielauflösung zugeschnitten und dann die Bildgröße in der Zielauflösung geändert. Dadurch wird sichergestellt, dass die Bildgröße geändert wird, ohne dass das Eingabebild tatsächlich verzerrt wird. Bitte beachten Sie, dass katna image_resize zu einem gewissen Verlust des Bildinhalts führen kann, wenn das Seitenverhältnis von Eingabe- und Ausgabebild nicht identisch ist
Unterstützte Video- und Bilddateiformate #######################################
Alle wichtigen Videoformate wie .mp4, .mov, .avi usw. und Bildformate wie .jpg, .png, .jpeg usw. werden unterstützt.
Weitere Auswahlfunktionen sind in der Entwicklungspipeline
Git installieren
Installieren Sie Anaconda oder Miniconda Python
Terminal öffnen
Klonen Sie das Repo von hier https://github.com/keplerlab/Katna.git
Ändern Sie das Verzeichnis in das Verzeichnis, in dem Sie Ihr Repo geklont haben
$cd path_to_the_folder_repo_cloned
Erstellen Sie eine neue Anaconda-Umgebung, wenn Sie die Anaconda-Python-Distribution verwenden
conda create --name katna python=3.7
source activate katna
Führen Sie das Setup aus:
python setup.py install
Seit der Katna-Version 0.4.0 ist das Katna-Videomodul für die Verwendung von Multiprocessing mithilfe des Python-Multiprocessing-Moduls optimiert. Aufgrund von Einschränkungen der Multiverarbeitung in Windows stellen Sie zum sicheren Importieren des Hauptmoduls in Windows sicher, dass der „Einstiegspunkt“ des Programms wie folgt in name == „ main “ eingeschlossen ist:
from Katna.video import Video
if __name__ == "__main__":
vd = Video()
# your code
Weitere Informationen finden Sie unter https://docs.python.org/2/library/multiprocessing.html#windows.
Wenn das Eingabebild sehr groß ist (größer als 2000 x 2000), kann die Durchführung des automatischen intelligenten Zuschneidens lange dauern. Wenn dieses Problem auftritt, sollten Sie erwägen, down_sample_factor vom Standardwert 8 auf größere Werte (z. B. 16 oder 32) zu ändern. Dadurch wird die Bearbeitungszeit erheblich verkürzt.
Wenn Sie den Fehler „AttributeError: module ‚cv2.cv2‘ has no attribute ‚saliency‘“ sehen. Deinstallieren Sie opencv-contrib, indem Sie den Befehl „python -m pip uninstall opencv-contrib-python“ ausführen, und installieren Sie es dann erneut, indem Sie den Befehl ausführen
python -m pip install opencv-contrib-python
Wenn Sie „FileNotFoundError: Frozen_east_text_detection.pb-Datei nicht gefunden“ sehen. Öffnen Sie die Python-Shell und befolgen Sie die folgenden Befehle.
from Katna.image_filters.text_detector import TextDetector
td = TextDetector()
td.download()
Stellen Sie unter Windows sicher, dass Anaconda über Administratorrechte verfügt, wenn Sie mit Anaconda installieren, da bei der Installation einiger Module die Schreibberechtigung fehlschlägt.
Wenn Sie „RuntimeError: Es konnte keine ffmpeg-Exe gefunden werden“ erhalten. Installieren Sie ffmpeg auf Ihrem System und/oder legen Sie die Umgebungsvariable IMAGEIO_FFMPEG_EXE oder FFMPEG_EXE auf den Pfad Ihrer ffmpeg-Binärdatei fest. Normalerweise wird ffmpeg mit dem Paket imageio-ffmpeg installiert. Überprüfen Sie den Ordner imageio_ffmpeg-*.egg in Ihrem Site-Packages- Ordner. Es sollte sich eine ffmpeg-Datei im Binaries-Ordner befinden. Überprüfen Sie, ob diese Datei über die richtigen Lese-/Ausführungsberechtigungen verfügt, und legen Sie zusätzlich den Pfad fest zur Umgebungsvariablen.
Es gibt ein bekanntes Speicherleckproblem in Katna Version 0.8.2 und niedriger, wenn die Bulk-Video-Keyframe-Extraktion unter Python Version 3.6 und 3.7 ausgeführt wird. Dabei handelt es sich um einen Multiprocessing-Fehler, der nur in Python 3.6 und 3.7 beobachtet wird. Und ist in Katna Version 0.9 und höher behoben. Wenn Sie Keyframe-Extraktionscode für eine große Anzahl von Videos ausführen und Speicherprobleme haben, bitten Sie Sie, Ihre Katna-Version auf Version 0.9 oder höher zu aktualisieren. Wenn Sie weiterhin eine ältere Version von Katna verwenden möchten, sollten Sie ein Upgrade Ihrer Python-Version auf 3.8 oder höher in Betracht ziehen.
Wir haben ein Writer-Framework hinzugefügt, um Daten aus dem Video- und Bildmodul von Katna zu verarbeiten. Diese Version behebt auch das von diesem und diesem Problem gemeldete Problem mit dem Speicherverlust.
video.extract_video_keyframes und video.extract_video_keyframes_from_dir erfordern ein zusätzliches Writer-Objekt. Standardmäßig kann KeyFrameDiskWriter über das Katna.writer-Modul verwendet werden. Das Writer-Framework kann je nach Anforderung erweitert werden.
image.crop_image und image.crop_image_from_dir erfordern ein zusätzliches Writer-Objekt. Standardmäßig kann ImageCropDiskWriter über das Katna.writer-Modul verwendet werden. Das Writer-Framework kann je nach Anforderung erweitert werden.
Die Dokumentation zu den aktualisierten Beispielen finden Sie hier: Link
Diese Bugfix-Version behebt dieses Problem: Link
Es wurde ein Problem behoben, bei dem in seltenen Fällen Videos mit ffmpeg geteilt wurden, die nicht lesbar waren und einen Ausnahmelink auslösten
Experimentelle Unterstützung für automatisches Zuschneiden/Größenänderung von Videos mithilfe des Mediapipe-Autoflip-Codebeispiels von Google hinzugefügt.
Fehler behoben, bei dem falsche Spezifikationszuschnitte von der Methode „image_module Crop_image“ und „crop_image_from_dir“ zurückgegeben wurden.
Unterstützung für Videokomprimierung im Katna.video-Modul hinzugefügt.
Unterstützung für die intelligente Bildgrößenänderung im Katna.image-Modul hinzugefügt.
In Version 0.5.0 haben wir den Namen einiger öffentlicher Funktionen im Katna.video-Modul geändert, das für die Keyframe-Extraktion verwendet wird.