Katna automatiza la tarea aburrida y propensa a errores de extracción de claves/mejores fotogramas de videos, compresión de video y tarea manual de recorte y cambio de tamaño de imágenes que requiere mucho tiempo mediante ML.
En resumen, es posible que desee considerar el uso de la biblioteca Katna si tiene las siguientes tareas:
Tienes videos que deseas comprimir a un tamaño más pequeño. (Por ejemplo, tiene un vídeo con un tamaño de, digamos, 1 GB, pero desea comprimirlo lo más pequeño posible).
Tiene imágenes que desea cambiar de tamaño de manera inteligente a una resolución objetivo. (por ejemplo, 500x500, 1080p (1920x1080), etc.)
Desea extraer un recorte de una relación de aspecto particular, por ejemplo, 4:3, de su imagen/imágenes de entrada. (por ejemplo, obtener un recorte con una relación de aspecto de 1:1 a partir de una imagen con una resolución de 1920 x 1080 (imagen con una relación de aspecto de 16:9))
Desea cambiar el tamaño de un vídeo a una relación de aspecto particular, por ejemplo, 16:9 (paisaje), digamos a 1:1 (cuadrado). Tenga en cuenta que esta función es actualmente experimental y necesita compilación y configuración adicionales de la biblioteca Google Mediapipe.
Katna se divide en dos módulos.
Este módulo se encarga de las tareas de extracción de fotogramas clave y compresión de vídeo.
Los fotogramas clave se definen como los fotogramas representativos de una transmisión de vídeo, los fotogramas que proporcionan el resumen más preciso y compacto del contenido del vídeo.
Extracción de fotogramas y criterios de selección para la extracción de fotogramas clave.
La compresión de video se maneja mediante la biblioteca ffmpeg. Detalles sobre los cuales se pueden leer en la sección del módulo Katna.video_compressor.
Desde la versión 0.8.0 de Katna, estamos ampliando las funciones de cambio de tamaño inteligente a los vídeos con la ayuda del proyecto Mediapipe de Google. Para saber más sobre esto, consulte la documentación [Video Smart Resize usando Katna] (https://katna.readthedocs.io/en/latest/understanding_katna.html#katna-video-resize). Tenga en cuenta que esta función es una función experimental opcional. Y podría estar sujeto a eliminación/modificaciones en versiones posteriores. Además, también necesita instalar la biblioteca Mediapipe de Google, especialmente el binario autoflip para que esto funcione. Consulte el enlace para saber cómo instalar y configurar mediapipe para usarlo con katna.
Este módulo maneja las tareas relacionadas con el recorte inteligente y el cambio de tamaño de la imagen.
El recorte inteligente de imágenes se realiza de manera que el módulo identifica la mejor parte o el área donde alguien se enfoca más e interpreta esta información mientras recorta la imagen.
Criterios de extracción y selección de cultivos.
Similar al módulo de imagen Katna de recorte inteligente, admite la función de cambio de tamaño de imagen inteligente . Dada una imagen de entrada, puede cambiar el tamaño de la imagen a la resolución objetivo con un simple cambio de tamaño si la relación de aspecto es la misma para la imagen de entrada y la de destino. Si la relación de aspecto es diferente al cambio de tamaño de imagen inteligente, primero se recortará el recorte de mayor calidad en la resolución objetivo y luego se cambiará el tamaño de la imagen en la resolución objetivo. Esto garantiza el cambio de tamaño de la imagen sin sesgar la imagen de entrada. Tenga en cuenta que si la relación de aspecto de la imagen de entrada y salida no es la misma, katna image_resize puede provocar cierta pérdida del contenido de la imagen.
Formatos de archivos de imagen y vídeo admitidos ##########################################
Se admiten todos los formatos de vídeo principales como .mp4, .mov, .avi, etc. y formatos de imagen como .jpg, .png, .jpeg, etc.
Se están desarrollando más funciones de selección
instalar git
Instalar Anaconda o Miniconda Python
terminal abierta
Clonar repositorio desde aquí https://github.com/keplerlab/Katna.git
Cambie el directorio al directorio donde ha clonado su repositorio
$cd path_to_the_folder_repo_cloned
Cree un nuevo entorno anaconda si está utilizando la distribución anaconda python
conda create --name katna python=3.7
source activate katna
Ejecute la configuración:
python setup.py install
Desde la versión 0.4.0 de Katna, el módulo de video Katna está optimizado para usar multiprocesamiento utilizando el módulo de multiprocesamiento Python. Debido a las restricciones del multiprocesamiento en Windows, para importar de forma segura el módulo principal en el sistema Windows, asegúrese de que el "punto de entrada" del programa esté incluido en nombre == ' main ': de la siguiente manera:
from Katna.video import Video
if __name__ == "__main__":
vd = Video()
# your code
consulte https://docs.python.org/2/library/multiprocessing.html#windows para obtener más detalles.
Si la imagen de entrada es de un tamaño muy grande (superior a 2000x2000), puede llevar mucho tiempo realizar el recorte inteligente automático. Si encuentra este problema, considere cambiar down_sample_factor del valor predeterminado 8 a valores más grandes (como 16 o 32). Esto reducirá significativamente el tiempo de procesamiento.
Si ve el error "AttributeError: el módulo 'cv2.cv2' no tiene el atributo 'saliency'". Desinstale opencv-contrib ejecutando el comando "python -m pip uninstall opencv-contrib-python" y luego instálelo nuevamente ejecutando el comando
python -m pip install opencv-contrib-python
Si ve "FileNotFoundError: archivo frozen_east_text_detection.pb no encontrado". Abra el shell de Python y siga los siguientes comandos.
from Katna.image_filters.text_detector import TextDetector
td = TextDetector()
td.download()
En Windows, asegúrese de que Anaconda tenga derechos de administrador si realiza la instalación con Anaconda, ya que falla con el permiso de escritura al instalar algunos módulos.
Si obtiene "RuntimeError: No se pudo encontrar ffmpeg exe". Instale ffmpeg en su sistema y/o configure la variable de entorno IMAGEIO_FFMPEG_EXE o FFMPEG_EXE en la ruta de su binario ffmpeg. Por lo general, ffmpeg se instala usando el paquete imageio-ffmpeg. Verifique la carpeta imageio_ffmpeg-*.egg dentro de la carpeta de paquetes de su sitio , debe haber un archivo ffmpeg dentro de la carpeta de binarios, verifique si este archivo tiene el conjunto de permisos de lectura/ejecutable adecuado y, además, establezca su ruta. a la variable de entorno.
Hay un problema conocido de pérdida de memoria en la versión 0.8.2 y anteriores de Katna, cuando se ejecuta la extracción masiva de fotogramas clave de video en las versiones 3.6 y 3.7 de Python. Este es un error de multiprocesamiento observado solo en Python 3.6 y 3.7. Y está solucionado en la versión 0.9 y superiores de Katna. Si está ejecutando un código de extracción de fotogramas clave en una gran cantidad de videos y tiene problemas de memoria, solicite que actualice su versión de katna a la versión 0.9 o superior. Si aún desea utilizar una versión anterior de katna, considere actualizar su versión de Python a 3.8 o superior.
Hemos agregado un marco de escritura para procesar datos del módulo Katna Video and Image. Esta versión también soluciona el problema de pérdida de memoria informado por este y este problema.
video.extract_video_keyframes y video.extract_video_keyframes_from_dir requieren un objeto de escritura adicional. De forma predeterminada, KeyFrameDiskWriter está disponible para su uso desde el módulo Katna.writer. El marco del escritor se puede ampliar según los requisitos.
image.crop_image e image.crop_image_from_dir requieren un objeto de escritura adicional. De forma predeterminada, ImageCropDiskWriter está disponible para su uso desde el módulo Katna.writer. El marco del escritor se puede ampliar según los requisitos.
Consulte la documentación para ver los ejemplos actualizados aquí: Enlace
Esta versión de corrección de errores soluciona este problema: Enlace
Se solucionó un problema por el cual, en casos excepcionales, los videos se dividían usando ffmpeg y no se podían leer y arrojaban un enlace de excepción.
Se agregó soporte experimental para recortar/cambiar el tamaño de videos automáticamente usando el ejemplo de código Mediapipe Autoflip de Google.
Se corrigió el error por el cual los métodos image_module crop_image y crop_image_from_dir devolvían cultivos con especificaciones incorrectas.
Se agregó soporte para compresión de video en el módulo Katna.video.
Se agregó soporte para cambio de tamaño de imagen inteligente en el módulo Katna.image.
En la versión 0.5.0 hemos cambiado el nombre de algunas de las funciones públicas internas del módulo Katna.video utilizado para la extracción de fotogramas clave.