0% encontró este documento útil (0 votos)
157 vistas45 páginas

Introducción A La Visión Artificial

Descargar como pdf o txt
Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1/ 45

Visión por computadora

con Python

FREE

Copyright © 2018-2020 Actumlogos, todos los derechos reservados 1


Free © 2018-2020 Actumlogos
Introducción a la visión
artificial

FREE

Copyright © 2018-2020 Actumlogos, todos los derechos reservados 2


Free © 2018-2020 Actumlogos
¿Qué es la visión artificial?

El campo de la inteligencia artificial, y su aplicación en la vida cotidiana, ha experimentado una


notable evolución en los últimos años. La inteligencia artificial (IA) es un facilitador que
potencialmente facilita que las máquinas hagan todo lo que los humanos pueden hacer. Esto incluye
percibir, razonar, racionalizar y resolver problemas mientras trabaja dentro de un contexto o interactúa
con el entorno con más eficiencia y precisión.

3
Inteligencia
Free artificial © 2018-2020 Actumlogos
La visión artificial, también conocida como visión por por computadora, permite que las computadoras
y las máquinas “vean” y comprendan el mundo que las rodea, y se ha convertido en un campo de
estudio y desarrollo muy importante dentro del ámbito de la IA.

4
Free © 2018-2020 Actumlogos
5
Free © 2018-2020 Actumlogos
¿Qué información hay en esa imagen?
6
Free © 2018-2020 Actumlogos
¿Qué información hay en esa imagen?
7
Free © 2018-2020 Actumlogos
Retos de la visión artificial

La precisión de las aplicaciones de visión por computadora está determinada por qué tan bien se
interpretan las imágenes o videos. Existen varios retos dentro del campo de la visión artificial que
hacer que todo el proceso de interpretación de imágenes sea complejo.

1.- Ilusiones ópticas

8
Free © 2018-2020 Actumlogos
2.- Puede haber problemas con los sensores de la cámara en condiciones de poca o mala luz. Las
imágenes pueden ser ruidosas o pixeladas.

9
Free © 2018-2020 Actumlogos
Link a la nota

10
Free © 2018-2020 Actumlogos
3.- El mismo objeto puede verse diferente, dependiendo del ángulo desde el que se toma la imagen

11
Free © 2018-2020 Actumlogos
4.- Un objeto en movimiento puede verse diferente durante el movimiento.

12
Free © 2018-2020 Actumlogos
Oportunidades

13
Free © 2018-2020 Actumlogos
14
Free © 2018-2020 Actumlogos
15
Free © 2018-2020 Actumlogos
16
Free © 2018-2020 Actumlogos
17
Free © 2018-2020 Actumlogos
¿Qué es Python?

Python es un lenguaje de scripting orientado a objetos que se lanzó públicamente en 1991. Fue
desarrollado por Guido van Rossum del Instituto Nacional de Investigación de Matemáticas e Informática
en Amsterdam.

Guido van Rossum


18
Free © 2018-2020 Actumlogos
Características de Python

Interpretado. Para su ejecución utiliza un programa intermedio llamado intérprete, es decir no se


genera un código en lenguaje máquina que pueda ser ejecutado directamente por la computadora. Un
lenguaje compilado (como C++) se ejecuta más rápido, sin embargo los lenguajes interpretados son
flexibles y portables.

Tipado dinámico. No es necesario declarar el tipo de dato de una determinada variable ya que éste se
determinará en tiempo de ejecución y además el tipo de variable puede cambiar si se le asigna un valor
de otro tipo.

Orientado a objetos. La orientación a objetos es un paradigma de programación en el que los


conceptos del mundo real se trasladan a clases y objetos en un programa. El flujo del programa esta
compuesto de una serie de interacciones entre los objetos.

19
Free © 2018-2020 Actumlogos
Fuertemente tipado. Una variables de cierto tipo no se puede utilizar como si fuera de un tipo distinto,
es necesario convertir de forma explícita la variable al otro tipo. Existen otros lenguajes de programación
en los que el tipo de la variable cambiaría para adaptarse al comportamiento esperado, lo cual los hace
es propensos a errores.

Multiplataforma. El intérprete de Python está disponible en multitud de plataformas (Linux, Windows,


Mac OS, etc.) por lo que si no utilizamos librerías específicas de cada plataforma nuestro programa
podrá funcionar en todos estos sistemas sin complicaciones.

20
Free © 2018-2020 Actumlogos
Trabajar con Python

Para poder programar con Python existen varias opciones

1.- Instalar el el intérprete de Python en nuestro equipo, escribir los programas en un editor de texto y
ejecutar los códigos comos scripts.

2.- Utilizar una suite como Anaconda, que permite crear ambientes de instalación aislados y que
incluye una gran cantidad de bibliotecas relacionadas con ciencias de datos.

3.- Utilizar un servicio basado en la nube, como Google Colab lo que permitirá tener varias
herramientas listas, sin necesidad de instalar nada en la computadora.

21
Free © 2018-2020 Actumlogos
Google Colab

Es un entorno interactivo desarrollado por Google que permite ejecutar código en la nube. Entre sus
principales características es que no se requiere ninguna configuración previa, es fácil de compartir y
que incluye gran cantidad de bibliotecas listas para usarse. También ofrece un servicio gratuito,
aunque temporal, para utilizar una tarjeta acelerador de gráficos (GPU).

22
Free © 2018-2020 Actumlogos
Bibliotecas de Python

Para trabajar con visión por computadora, existen muchas bibliotecas que son utilizadas para
desarrollar una gran cantidad de algoritmos relacionados con este campo.

23
Free © 2018-2020 Actumlogos
● OpenCV (Open Source Computer Vision Library). Es la biblioteca libre de visión artificial más
popular y tiene interfaces para trabajar en Python, Java y Matlab. Esta biblioteca se utiliza
ampliamente en empresas, grupos de investigación y organismos gubernamentales.
https://opencv.org

● Numpy. Esta biblioteca permite trabajar con arreglos multidimensionales de alta eficiencia y
diseñados para cálculo científico. Por esa razón OpenCV utiliza esta biblioteca para manipular
las imágenes.
https://numpy.org
● Matplotlib. Esta biblioteca es utilizada para la generación de gráficos a partir en Python
https://matplotlib.org
● TensorFlow. Es una biblioteca de código abierto desarrollada por Google para aprendizaje
automático. Implementa funcionalidad útiles para el entrenamiento de redes neuronales
https://www.tensorflow.org
24
Free © 2018-2020 Actumlogos
¿Que es una imagen?

Una imagen se puede definir como


una función de dos dimensiones
f(x,y) en donde x y y son
coordenadas espaciales y la
amplitud de f en cualquier par de
coordenadas se denomina
intensidad de la imagen en ese
punto. A los elementos de la
imagen digital se les llama píxeles

25
Free © 2018-2020 Actumlogos
Imagen en escala de grises

Una imagen digital en escala de grises de M x N pixeles, se puede representar por una matriz. Si
dicha imagen utiliza 1 byte por píxel, entonces se tienen un total 256 tonalidades, desde 0 (negro)
hasta 255 (blanco).

26
Free © 2018-2020 Actumlogos
Modelo de color RGB

Es uno de los modelos de color más empleados. El modelo Red Green Blue (RGB) se basa en la
estructura del ojo humano, donde todos los colores se ven como combinaciones variables de los tres
colores primarios: rojo, azul y verde. Es un modelo aditivo, ya que la mezcla colores para producir el
blanco.

27
Free © 2018-2020 Actumlogos
Imagenes a color

Las imágenes en color están formadas por una combinación de imágenes individuales (matrices). Por
ejemplo, en el sistema de color RGB, una imagen en color consta de tres imágenes monocromas
individuales, denominadas imágenes primarias (o componentes) rojas (R), verdes (G) y azules (B).

Imagena a color
28
Free © 2018-2020 Actumlogos
Cargar una imagen
Para poder cargar una imagen desde un archivo, se utiliza el método cv2.imread() el cual tiene la
siguiente sintaxis

cv.imread(filename[, flags])

La ruta de la imagen se debe especificar en filename. Por medio del parámetro flags se indica la forma
en que se debe leer la imagen, algunas flags se muestran en la siguiente tabla

flag Descripción

cv2.IMREAD_COLOR Carga una imagen a color, es el modo por defecto

cv2.IMREAD_GRAYSCALE Carga una imagen en escala de grises, si el archivo es a color, la convierte

cv2.IMREAD_UNCHANGED Carga una imagen, incluyendo el canal alpha.

Este método permite leer los principales formatos de imágenes como bmp, jpg, jpeg, png, tif, entre
otras.

Documentacion de
imread 29
Free © 2018-2020 Actumlogos
Un aspecto importante a resaltar, es que el método cv2.imread() toma los canales de color en el orden
BGR, mientras que para mostrar la imagen con la biblioteca matplotlib, es necesario convertirla al orden
RGB, lo cual lo conseguiremos con al método cv2.cvtColor(). Para mostrar las imágenes utilizamos los
métodos plt.imshow() y plt.show()

30
Free © 2018-2020 Actumlogos
Reto 1: En 5 minutos, carga una imagen a calor y muestrala. Posteriormente carga la misma imagen
pero en escala de grises.
Resultado esperado:
Tips:

● Utilice el método cv2.imread()


● Cambie el orden de los canales de la imagen
con el método cv2.cvtColor()
● Utilice la bandera cv2.IMREAD_GRAYSCALE
● Consulte en “San Google”

31
Free © 2018-2020 Actumlogos
Solucion:

32
Free © 2018-2020 Actumlogos
Conversion de RGB a escala de grises

En ocasiones es necesario convertir una imagen en el espacio de color RGB a escala de grises.
Muchos algoritmos de análisis de imágenes trabajan con imágenes a escala de grises porque, aunque
posee menos información, proserva características importantes como lo son bordes, esquinas, formas,
etc.

Esta transformación se puede llevar a cabo realizando un promedio de los valores de cada canal. Sin
embargo, otra forma muy utilizada para esta conversión y la que utiliza OpenCV con el método
cv2.cvtColor() es:

Documentación de
ctvColor 33
Free © 2018-2020 Actumlogos
34
Free © 2018-2020 Actumlogos
Guardar una imagen

También es posible almacenar una imagen que haya sido procesada. Para ello se utiliza el método
cv2.imwrite(), cuya sintaxis es la siguiente

cv2.imwrite(filename, img[, params])

En donde filename especifica el nombre del archivo, img es la imagen a guardar, mientras que params
define los parámetros opcionales de formato de las imágenes.

Documentacion de
imwrite 35
Free © 2018-2020 Actumlogos
Es posible ver cada una de las matrices que representan los colores RGB de una imagen

36
Free © 2018-2020 Actumlogos
Reto 2: En 5 minutos, carga una imagen y separa sus capas de color. Muestra los resultados en una
sola figura.

Resultado esperado:
Tips:

● Utilice el método copy() de


numpy.
● Utilice el método plt.subplot()
● Consulte en “San Google”

37
Free © 2018-2020 Actumlogos
Solucion:

38
Free © 2018-2020 Actumlogos
Cambiar el tamaño de la imagen
También es posible modificar el tamaño de una imagen. Esto se logra con el método cv2.resize() cuya
sintaxis es la siguiente
cv2.resize(src, dsize[, dst[, fx[, fy[, interpolation]]]])

Parámetro Descripción

src [requerido] imagen original

dsize [requerido] tamaño deseado de la nueva imagen. Si este parámetro es (0, 0), se calcula como

dst [opcional] imagen con el nuevo tamaño

fx [opcional] Factor de escala a lo largo del eje horizontal. Si este parámetro no es dado, se calcula como

fy [opcional] Factor de escala a lo largo del eje vertical. Si este parámetro no es dado, se calcula como

interpolation INTER_NEAREST, INTER_LINEAR, INTER_AREA, INTER_CUBIC, INTER_LANCZOS4


39
Documentacion de
Free resize() © 2018-2020 Actumlogos
40
Free © 2018-2020 Actumlogos
Reto 3: En 5 minutos, cambia el tamaño de una imagen, de tal forma que quede al 200%, 50% y 10%
de su tamaño original.
Resultado esperado:

Tips:

● Utilice el método cv2.resize()


● Consulte en “San Google”

41
Free © 2018-2020 Actumlogos
Solucion:

42
Free © 2018-2020 Actumlogos
¡Plus ultra! ...ir más allá

Ejercicios de Python

Ejercicios de Python - Actumlogos

Introducción a la programación con Python

Getting Started with Python Programming

43
Free © 2018-2020 Actumlogos
Conclusión Final

● La visión artificial permite identificar e interpretar la información que se encuentra contenida en una
imagen.

● La visión artificial es un área de mucho interés tanto en el ambiente de investigación como en el


comercial, dadas sus múltiples aplicaciones.

● Python es un lenguaje de programación que en los últimos años se ha convertido en el más


popular del mundo.

● Existen una gran cantidades de bibliotecas de licencia libre que permiten implementar algoritmos
de procesamiento de imágenes y visión por computadora.

● OpenCV es la biblioteca más popular relacionada con el campo de la visión por computadora y que
posee funcionalidades para la manipulación básica de imágenes.

44
Free © 2018-2020 Actumlogos
Glosario
Python: Es un lenguaje interpretado, dinámico y multiplataforma, que soporta orientación a objetos,
programación imperativa y programación funcional.

Imagen digital: Es una función discreta f(x,y) que describe un nivel de intensidad en cada uno de
sus puntos llamados pixeles.

Escala de grises: Es una representación de una imagen en la que cada píxel está representado
por un valor numérico individual que representa su luminancia, y que se extiende entre el blanco y
negro

RGB: Modelo de color que permite representar una imagen como combinación de tres matrices
fundamentales de color rojo, verde y azul.

Método: Dentro del contexto de la programación orientada a objetos, es una funcionalidad que
puede realizar un objeto.

45
Free © 2018-2020 Actumlogos

También podría gustarte