Katna automatise la tâche ennuyeuse et sujette aux erreurs d'extraction des clés vidéo/des meilleures images, de la compression vidéo et des tâches manuelles fastidieuses de recadrage et de redimensionnement d'images à l'aide de ML.
En bref, vous souhaiterez peut-être envisager d'utiliser la bibliothèque Katna si vous avez les tâches suivantes :
Vous avez une ou plusieurs vidéos que vous souhaitez compresser dans une taille plus petite. (Par exemple, vous avez une vidéo d'une taille disons de 1 Go mais vous souhaitez la compresser aussi petite que possible.)
Vous avez une ou plusieurs images que vous souhaitez redimensionner intelligemment à une résolution cible. (par exemple 500 x 500, 1080p (1920 x 1080), etc.)
Vous souhaitez extraire un recadrage d'un rapport hauteur / largeur particulier, par exemple 4: 3, à partir de vos images d'entrée. (par exemple, obtenez un recadrage au format 1:1 à partir d'une image de résolution 1920x1080 (image au format 16:9))
Vous souhaitez redimensionner une vidéo à un rapport hauteur/largeur particulier, par exemple 16:9 (Paysage), disons à 1:1 (carré). Veuillez noter que cette fonctionnalité est actuellement expérimentale et nécessite une compilation et une configuration supplémentaires de la bibliothèque Google Mediapipe.
Katna est divisé en deux modules
Ce module gère la ou les tâches d'extraction des images clés et de la compression vidéo.
Les images clés sont définies comme les images représentatives d'un flux vidéo, les images qui fournissent le résumé le plus précis et le plus compact du contenu vidéo.
Extraction d’images et critères de sélection pour l’extraction d’images clés
La compression vidéo est gérée à l'aide de la bibliothèque ffmpeg. Les détails à ce sujet peuvent être lus dans la section du module Katna.video_compressor.
Depuis la version 0.8.0 de Katna, nous étendons les fonctionnalités de redimensionnement intelligent aux vidéos avec l'aide du projet Mediapipe de Google. Pour en savoir plus, veuillez vous référer à la documentation [Video Smart Resize using Katna] (https://katna.readthedocs.io/en/latest/understanding_katna.html#katna-video-resize). Veuillez noter que cette fonctionnalité est une fonctionnalité expérimentale facultative. Et pourrait être sujet à suppression/modification dans les versions ultérieures. Vous devez également installer la bibliothèque Mediapipe de Google, spécialement le binaire autoflip pour que cela fonctionne. Veuillez vous référer au lien pour savoir comment installer et configurer Mediapipe à utiliser avec Katna.
Ce module gère la ou les tâches liées au recadrage intelligent et au redimensionnement de l'image.
Le recadrage intelligent de l'image se produit de manière à ce que le module identifie la meilleure partie ou la zone sur laquelle quelqu'un se concentre davantage et interprète ces informations tout en recadrant l'image.
Critères d’extraction et de sélection des cultures
Semblable au module d'image Smart Crop Katna, il prend en charge la fonction de redimensionnement d'image intelligent . Étant donné une image d'entrée, il peut redimensionner l'image à la résolution cible avec un simple redimensionnement si le rapport hauteur/largeur est le même pour l'image d'entrée et l'image cible. Si le rapport hauteur/largeur est différent du redimensionnement intelligent de l'image, le recadrage de la plus grande qualité sera d'abord effectué dans la résolution cible, puis redimensionnera l'image dans la résolution cible. Cela garantit le redimensionnement de l’image sans réellement fausser l’image d’entrée. Veuillez noter que si les proportions de l'image d'entrée et de sortie ne sont pas les mêmes, katna image_resize peut entraîner une perte du contenu de l'image.
Formats de fichiers vidéo et image pris en charge #########################################
Tous les principaux formats vidéo comme .mp4, .mov, .avi, etc. et les formats d'image comme .jpg, .png, .jpeg, etc. sont pris en charge.
D'autres fonctionnalités de sélection sont en cours de développement
Installer Git
Installez Anaconda ou Miniconda Python
Terminal ouvert
Cloner le dépôt à partir d'ici https://github.com/keplerlab/Katna.git
Remplacez le répertoire par le répertoire dans lequel vous avez cloné votre dépôt
$cd path_to_the_folder_repo_cloned
Créez un nouvel environnement anaconda si vous utilisez la distribution anaconda python
conda create --name katna python=3.7
source activate katna
Exécutez la configuration :
python setup.py install
Depuis la version 0.4.0 de Katna, le module vidéo Katna est optimisé pour utiliser le multitraitement à l'aide du module multitraitement Python. En raison des restrictions de multitraitement dans Windows, pour importer en toute sécurité le module principal dans le système Windows, assurez-vous que le « point d'entrée » du programme est enveloppé dans name == ' main ' : comme suit :
from Katna.video import Video
if __name__ == "__main__":
vd = Video()
# your code
veuillez vous référer à https://docs.python.org/2/library/multiprocessing.html#windows pour plus de détails.
Si l'image d'entrée est de très grande taille (supérieure à 2 000 x 2 000), l'exécution du recadrage intelligent automatique peut prendre beaucoup de temps. Si vous rencontrez ce problème, envisagez de modifier down_sample_factor de 8 par défaut à des valeurs plus grandes (comme 16 ou 32). Cela réduira considérablement le temps de traitement.
Si vous voyez l'erreur « AttributeError : le module 'cv2.cv2' n'a pas d'attribut 'saliency'". Désinstallez opencv-contrib en exécutant la commande "python -m pip uninstall opencv-contrib-python", puis réinstallez-le en exécutant la commande
python -m pip install opencv-contrib-python
Si vous voyez « FileNotFoundError : fichier gelé_east_text_detection.pb introuvable ». Ouvrez le shell python et suivez les commandes ci-dessous.
from Katna.image_filters.text_detector import TextDetector
td = TextDetector()
td.download()
Sous Windows, assurez-vous qu'anaconda dispose des droits d'administrateur lors de l'installation avec anaconda, car il échoue avec l'autorisation d'écriture lors de l'installation de certains modules.
Si vous obtenez "RuntimeError : aucun exe ffmpeg n'a pu être trouvé". Installez ffmpeg sur votre système et/ou définissez la variable d'environnement IMAGEIO_FFMPEG_EXE ou FFMPEG_EXE sur le chemin de votre binaire ffmpeg. Habituellement, ffmpeg est installé à l'aide du package imageio-ffmpeg, vérifiez le dossier imageio_ffmpeg-*.egg dans votre dossier site-packages , il devrait y avoir un fichier ffmpeg dans le dossier binaires, vérifiez si ce fichier dispose d'un ensemble d'autorisations de lecture/exécutable approprié et définissez en outre son chemin à la variable d'environnement.
Il existe un problème de fuite de mémoire connu dans Katna version 0.8.2 et antérieure, lors de l'exécution d'une extraction d'images clés vidéo en masse sur Python versions 3.6 et 3.7. Il s'agit d'un bogue de multitraitement observé uniquement dans Python 3.6 et 3.7. Et est corrigé dans la version 0.9 et supérieure de Katna. Si vous exécutez du code d'extraction d'images clés sur un grand nombre de vidéos et que vous rencontrez un problème de mémoire, demandez-vous de mettre à niveau votre version Katna vers la version 0.9 ou supérieure. Si vous souhaitez toujours utiliser une ancienne version de Katna, envisagez de mettre à niveau votre version de Python vers la version 3.8 ou supérieure.
Nous avons ajouté un framework d'écriture pour traiter les données du module Katna Video and Image. Cette version corrige également le problème de fuite de mémoire signalé par ceci et ce problème.
video.extract_video_keyframes et video.extract_video_keyframes_from_dir nécessitent un objet écrivain supplémentaire. Par défaut, KeyFrameDiskWriter est disponible à partir du module Katna.writer. Le framework Writer peut être étendu en fonction des besoins.
image.crop_image et image.crop_image_from_dir nécessitent un objet écrivain supplémentaire. Par défaut, ImageCropDiskWriter est disponible à partir du module Katna.writer. Le framework Writer peut être étendu en fonction des besoins.
Reportez-vous à la documentation pour les exemples mis à jour ici : Lien
Cette version de correction de bug résout ce problème : Lien
Correction d'un problème où, dans de rares cas, où les vidéos étaient divisées à l'aide de ffmpeg, elles n'étaient pas lisibles et lançaient un lien d'exception.
Ajout d'un support expérimental pour le recadrage/redimensionnement automatique des vidéos à l'aide de l'exemple de code Mediapipe Autoflip de Google.
Correction d'un bug où des cultures de spécifications incorrectes étaient renvoyées par les méthodes image_module crop_image et crop_image_from_dir.
Ajout de la prise en charge de la compression vidéo dans le module Katna.video.
Ajout de la prise en charge du redimensionnement intelligent des images dans le module Katna.image.
Dans la version 0.5.0, nous avons modifié le nom de certaines des fonctions publiques du module Katna.video utilisé pour l'extraction d'images clés,