Ing. Carlos Julio Pardo H. Curso Introd.
a la Visión Artificial con Python - NIVEL I
CURSO INTRODUCCIÓN A LA VISIÓN ARTIFICAL
CON PYTHON – NIVEL I
TUTOR: ING. CARLOS JULIO PARDO HERRERA
Una disciplina en auge
La visión artificial o visión por computador es una disciplina científica que incluye
métodos para adquirir, procesar, analizar y comprender las imágenes del mundo
real con el fin de producir información numérica o simbólica para que puedan ser
tratados por un computador. Esta comprensión se consigue gracias a distintos
campos como la geometría, la estadística, la física y otras disciplinas.
Actualmente la visión por ordenador se está convirtiendo en un componente
fundamental de muchos sistemas y constituye uno de los campos de la Inteligencia
Artificial con un mayor ritmo de desarrollo y que más aplicaciones nuevas está
presentando: la ayuda en el diagnóstico y la cirugía clínica, la conducción de
automóviles, el control de calidad y las aplicaciones de vigilancia, o la mejora de las
interfaces de acceso a datos multimedia.
Hasta hace poco tiempo las técnicas de análisis de imágenes eran accesibles
solamente a un reducido número de especialistas. Los programas que se utilizaban
eran costosos, con poca documentación y que exigían equipos informáticos de
gama alta. Esto es ahora muy distinto; en concreto la biblioteca OpenCV y la
implementación oficial y más ampliamente utilizada del lenguaje de programación
Python (CPython), que se verán en el curso, constituyen una solución de altísimo
nivel, gratuitas, portables a diversos sistemas operativos y equipos, ordenadores o
teléfonos inteligentes y que constituyen de facto un estándar en la comunidad
científica.
Considerando que el único equipamiento requerido es un ordenador y una cámara
como dispositivo de adquisición, incursionar en el área de visión por computador
genera un nuevo espacio para adelantar trabajos de investigación, implementar
aplicaciones y desarrollar proyectos de grado a un nivel similar al de las instituciones
académicas que han generado grandes resultados en este campo, y todo basado
en soluciones de código abierto de tal forma que no haya restricción de ningún tipo
a la hora de usar, modificar, o comercializar la solución.
1
Ing. Carlos Julio Pardo H. Curso Introd. a la Visión Artificial con Python - NIVEL I
OBJETIVO GENERAL
El objetivo del presente curso es proporcionar información, conocimientos y
habilidades prácticas en el desarrollo de aplicaciones de visión artificial a través de
herramientas informáticas libres y gratuitas como CPython y OpenCV.
OBJETIVOS ESPECÍFICOS
▪ Familiarizarse con el análisis de imágenes a través de computadores.
▪ Aprender técnicas de procesamiento de imágenes digitales utilizando la
biblioteca de funciones OpenCV de libre distribución.
▪ Implementar en lenguaje Python aplicaciones de Visión por computador que
trabajen en tiempo real, utilizando librería de programación OpenCV.
COMPETENCIAS
Al terminar el curso el estudiante podrá:
▪ Implementar algoritmos de adquisición y procesamiento de imágenes en
lenguaje Python usando la librería OpenCV.
▪ Seleccionar y recomendar soluciones óptimas a problemas de visión por
computador aplicados a ambientes reales.
▪ Aprender a analizar y diseñar sistemas de visión por computador.
DIRIGIDO A:
Este es un curso teórico - práctico dirigido a estudiantes, universitarios, nivel técnico,
aficionados y otros interesados en incursionar en técnicas básicas de visión por
computador con la librería OpenCV.
DURACIÓN: 20 horas
HERRAMIENTAS SOFTWARE
Para el desarrollo del curso es necesaria la instalación de software libre bajo licencia
BSD, que permite que sea usado libremente para propósitos comerciales y de
investigación con las condiciones en ella expresadas:
2
Ing. Carlos Julio Pardo H. Curso Introd. a la Visión Artificial con Python - NIVEL I
▪ CPython: Implementación oficial y más ampliamente utilizada del lenguaje de
programación Python. (Versión 3.6)
▪ OpenCV: Biblioteca libre de visión artificial está escrita en los lenguajes C y
C++, compatible con Linux, Windows y Mac OS X. (Versión 4.0)
CONTENIDO
El contenido del curso es desarrollado en 4 Módulos de la siguiente manera:
INTROD. A LA VISIÓN ARTIFICIAL CON PYTHON - NIVEL I
UNIDADES TEMÁTICAS TEMAS
No. Nombre No. Nombre
1.1 La biblioteca OpenCV.
1.2 Herramientas software del curso.
1.3 Escribiendo la primera aplicación.
Introducción a la Visión por
1 1.4 Imágenes digitales.
Computador
1.5 Espacios de color.
1.6 Iniciando con Imágenes.
1.7 Iniciando con Videos.
2.1 Acceso y modificación a los valores de píxeles .
2.2 Acceso a las propiedades de la imagen.
2.3 Configuración de la región de imagen (ROI).
2.4 División y combinación de canales de imágenes.
Operaciones básicas sobre
2 Operaciones aritméticas sobre imágenes como
imágenes 2.5
adición, resta, operaciones a bit, etc.
2.6 Dibujando Líneas, círculos y rectángulos.
Aplicación. Detector de Movimiento.
3.1 Cambio de espacio de color.
3.2 Transformaciones geométricas.
3.3 Umbralización.
3.4 Suavizado.
3.5 Transformaciones morfológicas.
Procesamiento de Imágenes en 3.6 Gradiente.
3
OpenCV 3.7 Detección de bordes SOBEL - CANNY.
3.8 Contornos.
3.9 Transformada de Hough Lineas y círculos.
3.10 Histogramas.
Aplicación. Seguimiento Objeto por Color.
4.1 Detección de Rostros.
Funciones Optimizadas
4 4.2 Reconocimiento de Patrones.
avanzadas en OpenCV
Aplicación. Detector de Rostros.
3
Ing. Carlos Julio Pardo H. Curso Introd. a la Visión Artificial con Python - NIVEL I
Módulo 1. Introducción a la Visión por Computador.
Objetivo: Estudiar los conceptos generales y teóricos de la visión por computador,
configurar y conocer nuestro entorno de desarrollo CPython/OpenCV para iniciar la
manipulación de imágenes y video a través de funciones de la librería de
procesamiento de imágenes OpenCV.
Módulo 2. Operaciones básicas sobre imágenes.
Objetivo: Conocer las características de las imágenes digitales para aprender a
modificar sus valores y propiedades. A través de las operaciones básicas
(aritméticas y lógicas) sobre imágenes el estudiante desarrollara una aplicación en
tiempo real para la detección de movimiento, que constituye una implementación
base de un sistema de seguridad elemental, funcional, efectivo y eficiente basado
en el análisis de video.
Figura 1. Detector de movimiento.
Módulo 3. Procesamiento de Imágenes en OpenCV
Objetivo: Analizar métodos de procesamiento aplicados sobre imágenes digitales
con el objetivo de mejorar la calidad o facilitar la búsqueda de información. Este
conjunto de técnicas aplicadas a las imágenes digitales permitirá al estudiante la
implementación de una aplicación en tiempo real para el seguimiento de objetos a
través del criterio de color, un proceso de análisis utilizado en sistemas de control
de calidad y selección automática.
4
Ing. Carlos Julio Pardo H. Curso Introd. a la Visión Artificial con Python - NIVEL I
Figura 2. Seguimiento de objetos por criterio de color.
Módulo 4. Funciones Optimizadas Avanzadas en OpenCV
Objetivo: Analizar algoritmos optimizados de la librería OpenCV en la detección de
objetos y reconocimiento de patrones para incursionar en técnicas de aprendizaje
automático. La comprensión de los clasificadores en cascada y los descriptores
Haar serán un acercamiento a técnicas de Machine Learning y permitirán al
estudiante la implementación de una aplicación en tiempo real para la detección de
rostros en entornos no controlados, parte fundamental en un sistema más complejo
y modular para el reconocimiento facial.
Figura 3. Detector de rostros en entornos no controlados.
5
Ing. Carlos Julio Pardo H. Curso Introd. a la Visión Artificial con Python - NIVEL I
REQUERIMIENTO PARA ESTUDIANTE
Es importante tener unos conocimientos mínimos de programación. Python es un
lenguaje de programación muy sencillo y si ya has trabajado con algún otro lenguaje
de script, seguro que no te resulta complicado, aun así, no es un requerimiento.
Para la implementación de las aplicaciones en tiempo real, cada persona necesitara
de una cámara WEBCAM (cualquier referencia) como sistema de adquisición de
imágenes en las prácticas.
INFORMACIÓN TUTOR
▪ Nombre: CARLOS JULIO PARDO HERRERA.
▪ Teléfono: (+57) 317 3924961.
▪ Email: carlosjulioph@[Link]
▪ Linkedin
▪ Blog: [Link]
▪ FanPage Facebook: Visión por Computador
Ingeniero Electrónico egresado de la Universidad Surcolombiana (Colombia - 2010).
Titulo obtenido a través de la modalidad de EXCELENCIA ACADÉMICA (promedio
4.5). Entusiasta de la investigación en el área de la inteligencia artificial.
Desarrollador de aplicaciones basadas en la visión por computador. Tutor curso
INTRODUCCIÓN A LA VISIÓN POR COMPUTADOR desarrollado en la
universidad CORHUILA y curso INTRODUCCIÓN A LA VISIÓN ARTIFICIAL CON
PYTHON – NIVEL I en la universidad Surcolombiana.