Inglês | 简体中文
Documentos • Experimente agora • Tutoriais • Exemplos • Blog • Comunidade
Kornia é uma biblioteca diferenciável de visão computacional que fornece um rico conjunto de processamento de imagem diferenciável e algoritmos de visão geométrica. Construído com base no PyTorch, o Kornia integra-se perfeitamente aos fluxos de trabalho de IA existentes, permitindo que você aproveite poderosas transformações em lote, diferenciação automática e aceleração de GPU. Esteja você trabalhando em transformações de imagens, aumentos ou processamento de imagens baseado em IA, Kornia fornece as ferramentas necessárias para dar vida às suas ideias.
Categoria | Métodos/Modelos |
---|---|
Processamento de imagem | - Conversões de cores (RGB, tons de cinza, HSV, etc.) - Transformações geométricas (Afins, Homografia, Redimensionamento, etc.) - Filtragem (desfoque gaussiano, desfoque mediano, etc.) - Detecção de bordas (Sobel, Canny, etc.) - Operações morfológicas (Erosão, Dilatação, etc.) |
Aumento | - Corte aleatório, apagamento - Transformações geométricas aleatórias (afim, inversão, olho de peixe, perspectiva, spline de placa fina, elástico) - Ruídos aleatórios (Gaussiano, Mediana, Movimento, Caixa, Chuva, Neve, Sal e Pimenta) - Tremulação de cores aleatórias (Contraste, Brilho, CLAHE, Equalizar, Gama, Matiz, Inverter, JPEG, Plasma, Posterizar, Saturação, Nitidez, Solarizar) - Random MixUp, CutMix, Mosaico, Transplante, etc. |
Detecção de recursos | - Detector (Harris, GFTT, Hessian, DoG, KeyNet, DISK e DeDoDe) - Descritor (SIFT, HardNet, TFeat, HyNet, SOSNet e LAFDescriptor) - Correspondência (vizinho mais próximo, vizinho mais próximo mútuo, correspondência geométrica, AdaLAM LightGlue e LoFTR) |
Geometria | - Modelos e calibração de câmeras - Visão estéreo (geometria epipolar, disparidade, etc.) - Estimativa de homografia - Estimativa de profundidade da disparidade - transformações 3D |
Camadas de aprendizagem profunda | - Camadas de convolução personalizadas - Camadas recorrentes para tarefas de visão - Funções de perda (por exemplo, SSIM, PSNR, etc.) - Otimizadores específicos de visão |
Funções fotométricas | - Funções de perda fotométrica - Aumentos fotométricos |
Filtragem | - Filtragem bilateral - DexiNed - Dissolvendo - Desfoque guiado - Laplaciano - Gaussiano - Meios não locais -Sobel - Máscara de nitidez |
Cor | - Conversões de espaço de cores - Ajuste de brilho/contraste - Correção gama |
Visão estéreo | - Estimativa de disparidade - Estimativa de profundidade - Retificação |
Registro de imagem | - Registro afim e baseado em homografia - Alinhamento de imagens usando correspondência de recursos |
Estimativa de pose | - Estimativa de matriz essencial e fundamental - Solucionadores de problemas PnP - Refinamento de pose |
Fluxo Óptico | - Fluxo óptico Farneback - Fluxo óptico denso - Fluxo óptico esparso |
Visão 3D | - Estimativa de profundidade - Operações de nuvem de pontos -Nerf |
Eliminação de ruído de imagem | - Remoção de ruído gaussiano - Remoção de ruído Poisson |
Detecção de borda | - Operador Sobel - Detecção de borda astuta |
Transformações | - Rotação - Tradução - Dimensionamento - Cisalhamento |
Funções de perda | - SSIM (medida de índice de similaridade estrutural) - PSNR (relação sinal-ruído de pico) - Cauchy - Charbonnier - Profundidade Suave - Dados -Hausdorff - Tversky - galês |
Operações Morfológicas | - Dilatação - Erosão - Abertura - Fechamento |
Kornia é um projeto de código aberto desenvolvido e mantido por voluntários. Esteja você usando-o para pesquisa ou para fins comerciais, considere patrocinar ou colaborar conosco. Seu apoio ajudará a garantir o crescimento e a inovação contínua da Kornia. Entre em contato conosco hoje e faça parte da definição do futuro desta iniciativa emocionante!
pip install kornia
pip install -e .
pip install git+https://github.com/kornia/kornia
Kornia não é apenas mais uma biblioteca de visão computacional - é a sua porta de entrada para visão computacional e IA sem esforço.
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" )
Agora você pode usar Kornia com TensorFlow, JAX e NumPy. Consulte Suporte multiframework para obter mais detalhes.
import kornia
tf_kornia = kornia . to_tensorflow ()
Distribuído por
Você é apaixonado por visão computacional, IA e desenvolvimento de código aberto? Junte-se a nós para moldar o futuro da Kornia! Estamos buscando ativamente colaboradores para ajudar a expandir e aprimorar nossa biblioteca, tornando-a ainda mais poderosa, acessível e versátil. Quer você seja um desenvolvedor experiente ou esteja apenas começando, há um lugar para você em nossa comunidade.
Temos o prazer de anunciar nosso mais recente avanço: uma nova iniciativa projetada para integrar perfeitamente modelos leves de IA ao Kornia. Nosso objetivo é executar qualquer modelo tão suavemente quanto modelos grandes, como StableDiffusion, para apoiá-los bem em muitas perspectivas. Já incluímos uma seleção de modelos leves de IA, como YuNet (Detecção de rosto), Loftr (Correspondência de recursos) e SAM (Segmentação). Agora, estamos procurando colaboradores para nos ajudar:
A base da Kornia reside em sua extensa coleção de operadores clássicos de visão computacional, fornecendo ferramentas robustas para processamento de imagens, extração de recursos e transformações geométricas. Buscamos continuamente colaboradores para nos ajudar a melhorar nossa documentação e apresentar bons tutoriais aos nossos usuários.
Se você estiver usando kornia em seus documentos relacionados à pesquisa, é recomendável citar o artigo. Veja mais em CITAÇÃO.
@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 as contribuições. Se você está planejando contribuir com correções de bugs, faça-o sem qualquer discussão adicional. Se você planeja contribuir com novos recursos, funções utilitárias ou extensões, primeiro abra um problema e discuta o recurso conosco. Por favor, considere ler as notas de CONTRIBUIÇÃO. A participação neste projeto de código aberto está sujeita ao Código de Conduta.
Feito com contrib.rocks.
Kornia é lançado sob a licença Apache 2.0. Consulte o arquivo LICENSE para obter mais informações.