Taller 1 - Departamento de Ingeniería de Sistemas
Transcripción
Taller 1 - Departamento de Ingeniería de Sistemas
Pontificia Universidad Javeriana Departamento de Ingeniería de Sistemas Visión Artificial Taller 1: Introducción a OpenCV e ITK, 2016-10 Objetivo Introducir las librerías especializadas OpenCV e ITK, para el manejo y procesamiento de información visual. En particular, se busca que el estudiante se familiarice inicialmente con el proceso de instalación de las librerías, así como con la creación y ejecución de programas sencillos, para identificar las posibilidades que brinda cada librería. Desarrollo del taller Parte 1: Instalación y prueba básica de OpenCV Para la instalación de OpenCV, siga los siguientes pasos: • Verificar los paquetes requeridos. Para su instalación y funcionamiento, esta librería requiere los siguientes paquetes: ◦ GCC 4.4.x o superior ◦ CMake 2.6 o superior ◦ Git ◦ GTK+2.x o superior, incluyendo librerías (libgtk2.0-dev) ◦ pkg-config ◦ Paquetes de desarrollo de ffmpeg o libav: libavcodec-dev, libavformat-dev, libswscale-dev Para verificar la existencia y/o realizar la instalación de estos paquetes, en la distribución Ubuntu de Linux se puede utilizar el gestor de paquetes, ejecutando el siguiente comando en una terminal: sudo aptget install buildessential cmake git libgtk2.0dev pkg config libavcodecdev libavformatdev libswscaledev • Descargar el código fuente de la página: http://sourceforge.net/projects/opencvlibrary • Ejecutar los siguientes comandos: unzip opencv3.0.0.zip cd opencv3.0.0 mkdir build cd build cmake .. make j16 sudo make install • Probar la instalación con un programa básico. Para esto, seguir las instrucciones de la página: http://docs.opencv.org/2.4/doc/tutorials/introduction/linux_gcc_c make/linux_gcc_cmake.html • Si el programa es capaz de mostrar la imagen que se la pasa como parámetro, entonces la instalación fue exitosa. Parte 2: Ejemplos en OpenCV e ITK Para probar la instalación de la librería OpenCV, se utilizarán algunos ejemplos de operaciones básicas. • Descargar el archivo con los ejemplos: http://sophia.javeriana.edu.co/~rueda andrea/visArtif/docs/intro_opencv.zip • Ejecutar los siguientes comandos: unzip intro_opencv.zip cd intro_opencv mkdir build cd build cmake .. make • Este proceso compilará y generará los ejecutables de los 3 ejemplos incluídos en el archivo comprimido. Utilizar las mismas imágenes y los mismos parámetros ya utilizados para probar los programas de ITK, para ejecutar estos programas, e identificar si generan los mismos resultados. • Luego de las pruebas, analizar los archivos fuente de los ejemplos en ITK y los ejemplos en OpenCV, para identificar las diferencias en las operaciones realizadas. ¿Se facilitan o se dificultan las operaciones? Este análisis facilitará la posterior selección de ITK u OpenCV como la librería preferencial de trabajo. Parte 3: Creación de un programa en ITK y OpenCV Ya que se conocen los elementos básicos de ambas librerías, y se tienen los conocimientos técnicos básicos para ponerlas a funcionar dentro de programas sencillos pero útiles, es hora de aplicarlos en el desarrollo de un programa. • Se requiere un programa que, a partir de una imagen a color, realice las siguientes operaciones: ◦ Redimensione la imagen para que su tamaño sea 1200x1200 píxeles. ◦ De la imagen redimensionada, separe los canales de color RGB, y en cada canal aplique un reescalamiento en las intensidades utilizadas, así: el canal Rojo debe utilizar sólo 4 intensidades, el canal Verde debe utilizar 16 intensidades y el canal Azul debe utilizar 64 intensidades. ◦ Genere una nueva imagen compuesta a partir de la información de los canales reescalados en intensidad. ◦ Finalmente, genere una nueva imagen que resalte las diferencias entre la imagen original y la imagen reconstruida a partir de los canales de color reescalados. A continuación se muestra un ejemplo del proceso completo que debe realizar el programa: • Utilice inicialmente la librería ITK para implementar una versión del programa. Utilice como nombre de archivo 04_image_process_ITK.cxx. Tenga el cuenta el manejo de los tipos de datos para las imágenes (color o escala de grises), así como la coherencia entre las entradas y salidas de los diferentes filtros. Adicionalmente, genere imágenes intermedias en cada paso para verificar que todo funciona correctamente, así: ◦ <nombre_imagen>_scaled.png: luego de redimensionar. ◦ <nombre_imagen>_R.png: canal Rojo de la imagen redimensionada. ◦ <nombre_imagen>_G.png: canal Verde de la imagen redimensionada. ◦ <nombre_imagen>_B.png: canal Azul de la imagen redimensionada. ◦ <nombre_imagen>_qR.png: canal Rojo reescalado en intensidad. ◦ <nombre_imagen>_qG.png: canal Verde reescalado en intensidad. ◦ <nombre_imagen>_qB.png: canal Azul reescalado en intensidad. ◦ <nombre_imagen>_qRGB.png: reconstrucción con los nuevos canales de color. ◦ <nombre_imagen>_diff.png: diferencia entre imagen original (redimensionada) e imagen reconstruida a partir de los canales de color reescalados. • Luego, implemente una nueva versión del programa, ahora utilizando la librería OpenCV. Utilice como nombre de archivo 04_image_process_OpenCV.cxx, y genere las mismas imágenes intermedias indicadas anteriormente. Verifique con imágenes de prueba que ambos programas generan los mismos resultados. Evaluación La entrega del taller consistirá en un único archivo comprimido (únicos formatos aceptados: .zip, .tar, .tar.gz, .tar.bz2, .tgz) que contendrá: • Una carpeta con los archivos fuente de los ejemplos de ITK, con las imágenes usadas para probar los programas y los resultados obtenidos. • Una carpeta con los archivos fuente de los ejemplos de OpenCV, con las imágenes usadas para probar los programas y los resultados obtenidos. • Una carpeta con el ejercicio de programación propuesto, debe incluir el fuente en ITK, el fuente en OpenCV y el archivo CMakeLists.txt que permite compilar ambos programas. El código fuente debe compilar con gcc (g++) v. 4.7.2 y con las librerías de Insight Toolkit (ITK) v. 4.8.2 y OpenCV v. 3.1.0. Este archivo deberá enviarse a través de la correspondiente actividad en UVirtual antes de finalizar la sesión de clase del viernes 12 de febrero (5:00p.m.). El envío del archivo comprimido en otro formato diferente a los especificados resultará en una calificación de (0.0/5.0) para el taller. La escala de evaluación es la siguiente: • Excelente (5.0/5.0): El estudiante compila y ejecuta los programas de ejemplo, y propone un código que realiza todos los pasos del procesamiento en ambas librerías (ITK y OpenCV). • Bueno (4.0/5.0): El estudiante compila y ejecuta los programas de ejemplo, y propone un código que realiza todos los pasos del procesamiento en una de las dos librerías (ITK u OpenCV). • Aceptable (3.0/5.0): El estudiante compila y ejecuta los programas de ejemplo, y propone un código que realiza sólo algunos de los pasos del procesamiento en ambas librerías (ITK y OpenCV). • Malo (1.0/5.0): El estudiante no puede compilar y ejecutar los programas de ejemplo, o el código propuesto no compila en alguna de las librerías. • No entregó (0.0/5.0): El estudiante no entrega los archivos solicitados.