Inglés | 简体中文
Documentos • Pruébelo ahora • Tutoriales • Ejemplos • Blog • Comunidad
Kornia es una biblioteca de visión por computadora diferenciable que proporciona un rico conjunto de algoritmos de visión geométrica y procesamiento de imágenes diferenciables. Creado sobre PyTorch, Kornia se integra perfectamente en los flujos de trabajo de IA existentes, lo que le permite aprovechar potentes transformaciones por lotes, diferenciación automática y aceleración de GPU. Ya sea que esté trabajando en transformaciones de imágenes, aumentos o procesamiento de imágenes impulsado por IA, Kornia le proporciona las herramientas que necesita para hacer realidad sus ideas.
Categoría | Métodos/Modelos |
---|---|
Procesamiento de imágenes | - Conversiones de color (RGB, escala de grises, HSV, etc.) - Transformaciones geométricas (Affine, Homografía, Redimensionamiento, etc.) - Filtrado (desenfoque gaussiano, desenfoque mediano, etc.) - Detección de bordes (Sobel, Canny, etc.) - Operaciones morfológicas (Erosión, Dilatación, etc.) |
Aumento | - Recorte aleatorio, borrado - Transformaciones geométricas aleatorias (Afín, voltear, Ojo de pez, Perspectiva, Spline de placa delgada, Elástico) - Ruidos aleatorios (gaussiano, mediana, movimiento, caja, lluvia, nieve, sal y pimienta) - Variación de color aleatoria (Contraste, Brillo, CLAHE, Ecualización, Gamma, Tono, Invertir, JPEG, Plasma, Posterizar, Saturación, Nitidez, Solarizar) - Mezcla aleatoria, CutMix, mosaico, trasplante, etc. |
Detección de características | - Detector (Harris, GFTT, Hessian, DoG, KeyNet, DISK y DeDoDe) - Descriptor (SIFT, HardNet, TFeat, HyNet, SOSNet y LAFDescriptor) - Coincidencia (vecino más cercano, vecino más cercano mutuo, coincidencia geométricamente consciente, AdaLAM LightGlue y LoFTR) |
Geometría | - Modelos de cámara y calibración. - Visión estéreo (geometría epipolar, disparidad, etc.) - Estimación de homografía - Estimación de profundidad a partir de la disparidad. - transformaciones 3D |
Capas de aprendizaje profundo | - Capas de convolución personalizadas - Capas recurrentes para tareas de visión. - Funciones de pérdida (por ejemplo, SSIM, PSNR, etc.) - Optimizadores específicos de visión |
Funciones fotométricas | - Funciones de pérdida fotométrica. - Aumentos fotométricos |
Filtración | - Filtrado bilateral - DexiNed - Disolver - Desenfoque guiado - laplaciano - gaussiano - Medios no locales -Sobel - Enmascaramiento de enfoque |
Color | - Conversiones de espacio de color - Ajuste de brillo/contraste - Corrección gamma |
Visión estéreo | - Estimación de disparidad - Estimación de profundidad - Rectificación |
Registro de imagen | - Registro afín y basado en homografía. - Alineación de imágenes mediante coincidencia de características |
Estimación de postura | - Estimación de matrices esenciales y fundamentales. - Solucionadores de problemas PnP - Refinamiento de pose |
Flujo óptico | - Flujo óptico Farneback - Flujo óptico denso - Flujo óptico escaso |
Visión 3D | - Estimación de profundidad - Operaciones de nube de puntos - Nerf |
Eliminación de ruido de imagen | - Eliminación de ruido gaussiano - Eliminación del ruido Poisson |
Detección de bordes | - Operador Sobel - Detección de bordes astuta |
Transformaciones | - Rotación - Traducción - Escalado - esquila |
Funciones de pérdida | - SSIM (Medida del índice de similitud estructural) - PSNR (relación señal-ruido máxima) - Cauchy - Charbonnier - Profundidad suave - Dados -Hausdorff - Tversky - galés |
Operaciones morfológicas | - Dilatación - Erosión - Apertura - Cierre |
Kornia es un proyecto de código abierto desarrollado y mantenido por voluntarios. Ya sea que lo esté utilizando con fines comerciales o de investigación, considere patrocinarnos o colaborar con nosotros. Su apoyo ayudará a garantizar el crecimiento y la innovación continua de Kornia. ¡Comuníquese con nosotros hoy y sea parte de la configuración del futuro de esta emocionante iniciativa!
pip install kornia
pip install -e .
pip install git+https://github.com/kornia/kornia
Kornia no es simplemente otra biblioteca de visión por computadora: es su puerta de entrada a la visión por computadora y la IA sin esfuerzo.
import numpy as np
import kornia_rs as kr
from kornia . augmentation import AugmentationSequential , RandomAffine , RandomBrightness
from kornia . filters import StableDiffusionDissolving
# Load and prepare your image
img : np . ndarray = kr . read_image_any ( "img.jpeg" )
img = kr . resize ( img , ( 256 , 256 ), interpolation = "bilinear" )
# alternatively, load image with PIL
# img = Image.open("img.jpeg").resize((256, 256))
# img = np.array(img)
img = np . stack ([ img ] * 2 ) # batch images
# Define an augmentation pipeline
augmentation_pipeline = AugmentationSequential (
RandomAffine (( - 45. , 45. ), p = 1. ),
RandomBrightness (( 0. , 1. ), p = 1. )
)
# Leveraging StableDiffusion models
dslv_op = StableDiffusionDissolving ()
img = augmentation_pipeline ( img )
dslv_op ( img , step_number = 500 )
dslv_op . save ( "Kornia-enhanced.jpg" )
import numpy as np
from kornia . onnx import ONNXSequential
# Chain ONNX models from HuggingFace repo and your own local model together
onnx_seq = ONNXSequential (
"hf://operators/kornia.geometry.transform.flips.Hflip" ,
"hf://models/kornia.models.detection.rtdetr_r18vd_640x640" , # Or you may use "YOUR_OWN_MODEL.onnx"
)
# Prepare some input data
input_data = np . random . randn ( 1 , 3 , 384 , 512 ). astype ( np . float32 )
# Perform inference
outputs = onnx_seq ( input_data )
# Print the model outputs
print ( outputs )
# Export a new ONNX model that chains up all three models together!
onnx_seq . export ( "chained_model.onnx" )
Ahora puedes usar Kornia con TensorFlow, JAX y NumPy. Consulte Compatibilidad con múltiples marcos para obtener más detalles.
import kornia
tf_kornia = kornia . to_tensorflow ()
Desarrollado por
¿Le apasiona la visión por computadora, la inteligencia artificial y el desarrollo de código abierto? ¡Únase a nosotros para dar forma al futuro de Kornia! Estamos buscando activamente colaboradores para ayudar a expandir y mejorar nuestra biblioteca, haciéndola aún más poderosa, accesible y versátil. Si eres un desarrollador experimentado o estás empezando, hay un lugar para ti en nuestra comunidad.
Nos complace anunciar nuestro último avance: una nueva iniciativa diseñada para integrar perfectamente modelos livianos de IA en Kornia. Nuestro objetivo es ejecutar cualquier modelo con la misma fluidez que los modelos grandes como StableDiffusion, para respaldarlos bien en muchas perspectivas. Ya hemos incluido una selección de modelos de IA livianos como YuNet (detección de rostros), Loftr (concordancia de características) y SAM (segmentación). Ahora, estamos buscando colaboradores que nos ayuden:
La base de Kornia radica en su extensa colección de operadores clásicos de visión por computadora, que brindan herramientas sólidas para el procesamiento de imágenes, extracción de características y transformaciones geométricas. Buscamos continuamente colaboradores que nos ayuden a mejorar nuestra documentación y presentar buenos tutoriales a nuestros usuarios.
Si utiliza kornia en sus documentos relacionados con la investigación, se recomienda que cite el artículo. Ver más en CITA.
@inproceedings { eriba2019kornia ,
author = { E. Riba, D. Mishkin, D. Ponsa, E. Rublee and G. Bradski } ,
title = { Kornia: an Open Source Differentiable Computer Vision Library for PyTorch } ,
booktitle = { Winter Conference on Applications of Computer Vision } ,
year = { 2020 } ,
url = { https://arxiv.org/pdf/1910.02190.pdf }
}
Agradecemos todas las contribuciones. Si planea contribuir con la corrección de errores, hágalo sin más discusión. Si planea contribuir con nuevas funciones, funciones de utilidad o extensiones, primero abra un problema y analice la función con nosotros. Por favor, considere leer las notas CONTRIBUYENTES. La participación en este proyecto de código abierto está sujeta al Código de Conducta.
Hecho con contribuciones.rocks.
Kornia se publica bajo la licencia Apache 2.0. Consulte el archivo de LICENCIA para obtener más información.