Introducción
Como indica IDC, la información digital se disparará hasta 175 zettabytes, y la inmensa parte de esta información se verá reflejada. Los científicos de datos deben (pre) medir estas imágenes antes de convertirlas en modelos de inteligencia artificial y aprendizaje profundoEl aprendizaje profundo, una subdisciplina de la inteligencia artificial, se basa en redes neuronales artificiales para analizar y procesar grandes volúmenes de datos. Esta técnica permite a las máquinas aprender patrones y realizar tareas complejas, como el reconocimiento de voz y la visión por computadora. Su capacidad para mejorar continuamente a medida que se le proporcionan más datos la convierte en una herramienta clave en diversas industrias, desde la salud.... Necesitan hacer el trabajo importante (y a veces sucio) antes de que comience la parte agradable.
Para manejar una gran cantidad de información con eficacia y velocidad sin negociar los resultados, los científicos de datos necesitan utilizar instrumentos de preparación de imágenes para la inteligencia artificial y las tareas de aprendizaje profundo.
En este artículo, profundizaré en las bibliotecas de procesamiento de imágenes más útiles en Python que se utilizan vigorosamente en tareas de inteligencia artificial y aprendizaje profundo. ¡Entonces empecemos!
Tabla de contenido
- OpenCV
- Imagen de Scikit
- Scipy
- Biblioteca de imágenes de Python (Pillow / PIL)
- Matplotlib
- SimpleITK
- Numpy
- Mahotas
OpenCV
OpenCV es una de las bibliotecas de código abierto más famosas y utilizadas para tareas de visión por computadora como procesamiento de imágenes, detección de objetos, detección de rostros, segmentaciónLa segmentación es una técnica clave en marketing que consiste en dividir un mercado amplio en grupos más pequeños y homogéneos. Esta práctica permite a las empresas adaptar sus estrategias y mensajes a las características específicas de cada segmento, mejorando así la eficacia de sus campañas. La segmentación puede basarse en criterios demográficos, psicográficos, geográficos o conductuales, facilitando una comunicación más relevante y personalizada con el público objetivo.... de imágenes, reconocimiento de rostros, y muchos más. Aparte de esto, también se puede utilizar para tareas de aprendizaje automático. Esto fue desarrollado por Intel en 2002. Está escrito en C ++ pero los desarrolladores han proporcionado enlaces de Python y Java. Es fácil de leer y usar.
Para crear modelos de aprendizaje automático y visión por computadora, OpenCV tiene más de 2500+ algoritmos. Estos algoritmos son muy útiles para realizar diversas tareas como reconocimiento facial, detección de objetos y muchas más. Veamos algunos ejemplos donde podemos realizar usando OpenCV:
Escala de grises
La escala de grises es un método para convertir una imagen de 3 canales, por ejemplo, RGB, HSV, etc., en una imagen de un solo canal, es decir, en tonos de gris. La imagen final varía entre blanco y negro completo. La importancia de la escala de grises incluye la reducción de dimensiones (convertir 3 canales en una imagen de un solo canal), reducir la complejidad del modelo, etc.
Debajo del código, el fragmento muestra la escala de grises en OpenCV
import cv2 as cv img = cv.imread('example.jpg') cv.imshow('Original', img) cv.waitKey() #Use cvtColor, to convert to grayscale gray_img = cv.cvtColor(img, cv.COLOR_BGR2GRAY) cv.imshow('Grayscale', gray_img) cv.waitKey(0)
Rotar imagen
OpenCV ayuda a rotar la imagen en cualquier rango de grados de 0 a 360 grados.
Verifique el siguiente código para rotar la imagen 180 grados.
import cv2 as cv import matplotlib.pyplot as plt img = cv.imread('example.jpg') h, w = image.shape[:2] rot_matrix = cv.getRotationMatrix2D((w/2,h/2), -180, 0.5) rot_image = cv.warpAffine(img, rot_matrix, (w, h)) plt.imshow(cv.cvtColor(rot_image, cv.COLOR_BGR2RGB))
OpenCV proporciona otras funcionalidades además de las que hemos discutido hasta ahora. Aparte de esto, también ayuda en la detección de rostros, segmentación de imágenes, extracción de características, detección de objetos, reconstrucción 3-D y muchos más.
Para más información, consulte la documentación oficial: Enlace
Imagen de Scikit
Scikit-Image es otra gran biblioteca de procesamiento de imágenes de código abierto. Es útil en casi cualquier tarea de visión artificial.. Es una de las bibliotecas más simples y sencillas. Algunas partes de esta biblioteca están escritas en Cython (es un superconjunto de lenguaje de programación Python diseñado para hacer Python más rápido como lenguaje C). Proporciona una gran cantidad de algoritmos que incluyen segmentación, manipulación del espacio de color, transformación geométrica, filtrado, morfología, detección de características y muchos más.
Scikit Image utiliza matrices Numpy como objetos de imagen. Veamos cómo podemos realizar una operación de contorno activa en la imagen de scikit. El contorno activo describe los límites de las formas en una imagen.
Verifique el siguiente código para la operación de contorno activa:
import numpy as np import matplotlib.pyplot as plt from skimage.color import rgb2gray from skimage import data from skimage.filters import gaussian from skimage.segmentation import active_contour image = data.astronaut() # Data for circular boundary s = np.linspace(0, 2*np.pi, 400) x = 220 + 100*np.cos(s) y = 100 + 100*np.sin(s) init = np.array([x, y]).T # formation of the active contour centre = active_contour(gaussian(image, 3),init, alpha=0.015, beta=10, gamma=0.001) figure, axis = plt.subplots(1, 2, figsize=(7, 7)) ax[0].imshow(image, cmap=plt.cm.gray) ax[0].set_title("Original Image") ax[1].imshow(image, cmap=plt.cm.gray)
Para más información, consulte la documentación oficial: Enlace
Ciencia
SciPy se usa principalmente para cálculos matemáticos y científicos, pero a veces también se puede usar para tareas básicas de manipulación y procesamiento de imágenes usando el submódulo scipy.ndimageAl final del día, las imágenes son solo matrices multidimensionales, SciPy proporciona un conjunto de funciones que se utilizan para operar operaciones Numpy n-dimensionales. SciPy proporciona algunas operaciones básicas de procesamiento de imágenes, como detección de rostros, convolución, segmentación de imágenes, lectura de imágenes, extracción de características, y muchos más. Junto con esto, también realiza el filtrado, dibuja líneas de contorno en las imágenes.
Verifique el siguiente código para desenfocar una imagen con SciPy:
from scipy import ndimage, misc from matplotlib import pyplot as plt f = misc.face() b_face = ndimage.gaussian_filter(f, sigma=3) figure, axis = plt.subplots(1, 2, figsize=(16, 8))
Para más información, consulte la documentación oficial: Enlace
Biblioteca de imágenes de Python (PIL / Pillow)
Es una biblioteca de Python de código abierto que se utiliza para tareas de procesamiento de imágenes. Proporciona funcionalidades especiales que generalmente no son proporcionadas por otras bibliotecas. como filtrar, abrir, manipular y guardar imágenes. Esta biblioteca admite una amplia gama de formatos de archivo, lo que la hace más eficiente. PIL también admite funciones como procesamiento de imágenes, visualización de imágenes y archivos de imágenes. Veamos Mejora de la imagen usando PIL / Pillow.
Cambiar la nitidez de una imagen:
Para más información, consulte la documentación oficial: Enlace
Matplotlib
Matplotlib se usa principalmente para visualizaciones 2D como diagramas de dispersión, gráficos de barras, histogramasLos histogramas son representaciones gráficas que muestran la distribución de un conjunto de datos. Se construyen dividiendo el rango de valores en intervalos, o "bins", y contando cuántos datos caen en cada intervalo. Esta visualización permite identificar patrones, tendencias y la variabilidad de los datos de manera efectiva, facilitando el análisis estadístico y la toma de decisiones informadas en diversas disciplinas.... y muchos más, pero también podemos usarlo para el procesamiento de imágenes. IEs efectivo para obtener información de una imagen.. No es compatible con todos los formatos de archivo.
Compruebe la siguiente imagen después de la operación de cambio de color de fondo:
Para más información, consulte la documentación oficial: Enlace
SimpleITK
También es llamado Kit de herramientas de registro y segmentación de conocimientos. Es una biblioteca de código abierto que se utiliza para el registro de imágenes y la segmentación de imágenes. Las bibliotecas como OpenCV consideran la imagen como una matriz, pero esta biblioteca considera las imágenes como un conjunto de puntos en una región en el espacio. Verifique el siguiente ejemplo:
Segmentación de imagen
Para más información, consulte la documentación oficial: Enlace
Numpy
Es una biblioteca de Python de código abierto que se utiliza para análisis numérico. Contiene una matriz y arreglos multidimensionales como estructuras de datos. Pero NumPy también puede usar para tareas de procesamiento de imágenes como recorte de imágenes, manipulación de píxeles y enmascaramiento de valores de píxeles.
Verifique la siguiente imagen para extraer los canales verde / rojo / azul de la imagen:
Para más información, consulte la documentación oficial: Enlace
Mahotas
Es otra biblioteca de Python de código abierto para visión por computadora y procesamiento de imágenes. Fue diseñado para informática biométrica. Proporciona muchos algoritmos que están escritos en C ++ para mayor velocidad con una buena interfaz de Python. Lee y escribe imágenes en matrices NumPy.
Verifique la siguiente imagen para la coincidencia de plantillas usando Mahotas:
Para más información, consulte la documentación oficial: Enlace
Conclusión
Entonces, en este artículo, hemos cubierto las 8 principales bibliotecas de procesamiento de imágenes en Python para el aprendizaje automático en 2021. Espero que aprenda algo de este blog y resulte mejor para su proyecto. Gracias por leer y tu paciencia. ¡Buena suerte!
Puedes consultar mis artículos aquí: Artículos
Gracias por leer este artículo sobre las bibliotecas de Python para el procesamiento de imágenes y por su paciencia. Déjame en la sección de comentarios. Comparta este artículo, me dará la motivación para escribir más blogs para la comunidad de ciencia de datos.
Identificación de correo: gakshay1210@ gmail.com
Sígueme en LinkedIn: LinkedIn
Los medios que se muestran en este artículo no son propiedad de DataPeaker y se utilizan a discreción del autor.
Relacionado
Posts Relacionados:
- Las 8 principales bibliotecas de Python para el procesamiento del lenguaje natural (NLP) en 2021
- Aplicaciones de procesamiento de imágenes digitales | Procesamiento de imágenes en Python
- Procesamiento de imágenes con CNN | Guía para principiantes sobre procesamiento de imágenes
- Procesamiento de imágenes OpenCV | Procesamiento de imágenes con OpenCV