piscicultura.
John Alberto Betancourt Gonzalez.
Facultad de Ingeniería, Ingeniería Electrónica Pontificia Universidad Javeriana, Bogotá D.C., Colombia
Trabajo de grado presentado para optar el título de Ingeniero Electrónico
2016
Trabajo de grado:
T.G. 1615 Autor:
John Alberto Betancourt Gonzalez Director:
Prof. Julián David Colorado Montaño, Ph.D Asesor:
William Hernán Coral Cuéllar, Ph.D
Rector Magnífico: R.P. Jorge Humberto Peláez Piedrahita, S.J.
Decano de Facultad: Ing. Jorge Luis Sánchez Téllez, M.Sc Director de Departamento: Prof. Fredy Orlando Ruiz Palacios, Ph.D Directora de Carrera: Ing. Alejandra María González Correal, M.Sc Director del proyecto: Prof. Julián David Colorado Montaño, Ph.D
Trabajo de grado entregado el día 25 de noviembre de 2016.
Realizado el acto de lectura y defensa del Trabajo de Grado el día 5 de diciembre de 2016 (9:00 AM a 10:00 AM).
Calificación del Trabajo de grado: Por definir
Jurado: Prof. Jairo Alberto Hurtado Londoño, Ph.D Jurado: Prof. Francisco Carlos Calderón B. IE, M.Sc Jurado: Prof. Julián David Colorado Montaño, Ph.D
This work presents the development of a computational tool to visual inspection in fish farming nets integrity by using of computer vision. Processing algorithms were developed for net pattern detection and to determinate if the inspected area presents damage or defects. Software has an intuitive and interactive graphic user interface to navigate between the different options and modify the processing parameters.
To sum up, the program works fine and is useful for net integrity inspection under certain conditions. The conclusion is that checking for net integrity with computer vision is a viable option in fish farming future.
putacional para la inspección de la integridad en redes de piscicultura mediante el uso de visión por computador. Se desarrollaron algoritmos de procesamiento para la detección y reconstrucción de patrón, también para determinar si el área inspec- cionada presenta daños, defectos u obstrucciones. El programa posee una interfaz gráfica de usuario intuitiva e interactiva para navegar entre las diferentes opciones y que permite modificar los parámetros y ajustes de procesamiento. Para resumir y concluir, el programa funciona bien y es útil para inspeccionar la integridad de la red bajo condiciones específicas, posicionando la visión por computador como una opción viable en el futuro de la piscicultura.
Agradezco a mis padres por haberme brindado la gran oportunidad y privilegio de cumplir cada uno de mis sueños. Agradezco a mi familia por confiar y creer en mí y en mis expectativas. A las dos mujeres de mi vida, mi hermana y mi abuela por su inigualable compañía, apoyo, por soportarme y estar a mi lado en todos las buenas y malas. A todos mis amigos, camaradas de cubículo y compañeros, en especial al Ing. Juan Martínez, el Ing. Pedro acero, el Arq. Iván Leal y a todo el grupo VEX, por esos momentos de diversión, juego, discusión, compañía y apoyo, no me queda más que decir, muchas gracias.
Mi agradecimiento también va dirigido a mi director de trabajo de grado el Ing.
Julián David Colorado Montaño por promover aún más mi amor hacia mi profesión y la robótica. Por darme la oportunidad de aplicar mi conocimiento teórico en el área concerniente a este trabajo y de explorar otros campos de la ciencia y la ingeniería.
Agradezco especialmente también a mi asesor de trabajo de grado el Ing. William Coral por haberme brindado la oportunidad de recurrir a su capacidad y conocimiento en varias áreas y por tener toda la paciencia del mundo para guiarme en el desarrollo de este proyecto.
Gracias a la vida por este nuevo triunfo, a todas las personal que conforman el depar- tamento de ingeniería electrónica, en especial a la planta de profesores por hacerme el profesional que soy ahora.
Lista de Figuras v
Lista de Tablas viii
1 Introducción 1
2 Marco Teórico 3
2.1 Estado del Arte . . . 3
2.2 Revisión General de la Piscicultura . . . 5
2.2.1 La Piscicultura en el Mundo . . . 5
2.2.2 La Piscicultura en Colombia . . . 5
2.3 Redes en Piscicultura . . . 6
2.3.1 Daños Más Comunes de Redes en Piscicultura . . . 7
2.3.2 Inspección de Estado, Mantenimiento y Reparación de Redes en Piscicultura 7 2.4 Visión por Computador . . . 8
2.5 Modelos de Color y Separación de Canales . . . 9
2.5.1 Modelo RGB . . . 9
2.5.2 Modelo HSV . . . 9
2.6 Algoritmos de Visión por Computador . . . 10
2.6.1 Filtros Estadísticos de Convolución . . . 11
2.6.2 Umbralización de Imagen . . . 11
2.6.2.1 Umbralización Adaptativa Otsu . . . 12
2.6.3 Operaciones Morfológicas . . . 15
2.6.3.1 Erosión y Dilatación . . . 16
2.6.3.2 Opening y Closing . . . 16
2.6.4 Detección de Bordes Cerrados . . . 17
2.6.5 Transformada de Hough . . . 18
2.6.6 Análisis y Descriptores de Forma por Momentos Geométricos de Imagen . 19 2.6.6.1 Momentos Simples . . . 19
2.6.6.2 Momentos Centrales . . . 19
2.6.6.3 Momentos Centrales Normalizados . . . 20
2.6.6.4 Momentos de Orden 0 . . . 20
2.6.6.5 Momentos de Orden 1 . . . 20
2.6.7 Aproximación de Contorno . . . 21
2.6.8 Líneas de Simetría de Formas Planas . . . 21
2.7 Librerías CV y Entorno de Desarrollo . . . 23
2.7.1 OpenCV . . . 23
2.7.2 Qt/QtCreator . . . 23
2.8 Trabajo previo . . . 24
2.8.1 Procesamiento de Imágenes de Entornos Marinos . . . 24
2.8.2 Corrección de Color en Imágenes Bajo el Agua . . . 24
2.9 Estándares en Ingeniería para Desarrollo y Prueba de Software . . . 24
3 Objetivo del Proyecto 26 3.1 GUI (Interfaz Gráfica de Usuario) . . . 27
3.1.1 Interfaces de Procesamiento . . . 28
3.1.2 Interfaz de Ayuda y Recursos . . . 29
3.1.3 Menú de Opciones, Parámetros y Ajustes de Procesamiento . . . 30
3.2 Algoritmo para Corrección de color en Imágenes Bajo el Agua . . . 32
3.3 Algoritmo de Análisis para Detección y Reconstrucción de Patrón en Redes . . . 33
3.4 Algoritmo de Inspección para Detección de Daños, Defectos y Obstrucciones en Redes (Indicadores) . . . 34
3.5 Reporte de Estado y Resultados . . . 35
3.6 Alcances y Limitaciones . . . 39
4 Desarrollo 43 4.1 Banco de Muestras . . . 43
4.2 Algoritmo General de Procesamiento para Inspección de Malla . . . 44
4.3 Histogramas . . . 45
4.4 Corrección de Color por Normalización de Histograma . . . 46
4.5 Detección y Reconstrucción de Patrón . . . 48
4.5.1 Separación y Selección de Canales de Color . . . 49
4.5.2 Filtrado de Imagen para Reducción de Ruido . . . 50
4.5.3 Segmentación de Fondo . . . 51
4.5.4 Detección de Borde . . . 52
4.5.5 Detección y Supresión de Ojos . . . 52
4.5.6 Detección de Nudos . . . 53
4.5.7 Detección y Unión de Segmentos . . . 54
4.5.8 Análisis de Patrón y Detección de Defectos . . . 55
4.6 Inspección de Red . . . 56
4.6.1 Detección de Daños . . . 56
4.6.2 Detección de Obstrucciones . . . 57
4.7 Protocolo y Documentación de Pruebas . . . 58
5 Resultados 60 5.1 Análisis y Resultados de Corrección de Color . . . 60
5.2 Análisis y Resultados de Reconstrucción de Patrón e Inspección de Redes . . . . 62
5.2.1 Galería de Redes con Condiciones Ideales . . . 62
5.2.2 Galería de Redes con Condiciones Favorables . . . 63
5.2.3 Galería de Redes con Condiciones No Favorables . . . 67
5.3 Prueba de Diagnostico de Confiabilidad y Eficiencia . . . 70
5.4 Prueba de Tiempo de Ejecución . . . 72
6 Conclusiones y Recomendaciones 74 6.1 Revisiones Generales . . . 74
6.2 Trabajo Futuro . . . 75
6.3 Publicaciones . . . 76
Bibliografía 77
7 Anexos 79
7.1 Manuales Video Guías de Usuario . . . 79
7.2 Otros Aportes . . . 79
7.3 Cronograma de Desarrollo . . . 80
7.4 Códigos Fuente del Proyecto . . . 81
7.4.1 Corrección de Color . . . 81
7.4.2 Detección y Supresión de Ojos de Red . . . 83
7.4.3 Detección de Nudos . . . 85
7.4.4 Detección de Segmentos . . . 88
7.4.5 Inspección de Patrón . . . 89
7.4.6 Reconstrucción de Patrón . . . 90
7.4.7 Inspección de Daños . . . 92
7.4.8 Inspección de Obstrucciones . . . 93
2.1 Redes comerciales para piscicultura (1). . . 6
2.2 Daños más comunes en redes de piscicultura. . . 7
2.3 Evaluación de estado y reparación de redes en acuicultura. . . 8
2.4 Modelo de color RGB: Rojo (R), verde (G) y Azul (B) . . . 9
2.5 Modelo de color HSV: Matiz (H) para color, Saturación (S) para intensidad y valor (V) para brillo . . . 10
2.6 Modelo de imagen fuente para umbralización. . . 12
2.7 Resultados de Umbralización, Valor de umbral = 100 . . . 12
2.8 Resultados de binarizado con umbral adaptativo . . . 13
2.9 Resultados de operaciones de erosión y dilatación. . . 16
2.10 Resultados de operaciones de Opening y Closing. . . 17
2.11 Resultados de aproximación de contorno. . . 22
2.12 Ejes de simetría de figuras geométricas. . . 22
3.1 Diagrama en bloques general del funcionamiento de NetInspector. . . . 27
3.2 Menú principal de NetInspector. . . . 27
3.3 GUI para análisis de red por galería de imágenes. . . 28
3.4 GUI para análisis de red por captura de video en tiempo real. . . 29
3.5 GUI para análisis de red por galería de videos. . . 29
3.6 GUI para opciones de ayudas y recursos. . . 30
3.7 Menú de opciones, parámetros y ajustes de procesamiento. . . 31
3.8 Resultado de algoritmo para corrección de color en imágenes bajo el agua en interfaz para análisis de red por galería de imágenes. . . 32
3.9 Opciones de procesamiento para detección y reconstrucción de patrón. . . 33
3.10 Indicadores de reporte de estado. . . 34
3.11 Casos de identificadores en análisis e inspección de red. . . . 34
3.12 Opciones para reporte de resultados de procesamiento. . . 35
3.13 Consola de reporte de procesamiento. . . 37
3.14 Ejemplo de reporte de estado en formato texto txt para procesamiento de una galería. . . 38
3.15 Perspectivas para adquisición de muestras. . . 39
3.16 Corrección de perspectiva para algoritmos de procesamiento. . . 40
3.17 Casos limitados a procesamiento. . . 40
3.18 Limitaciones y alcances - casos de análisis de patrón y defectos. . . 41
3.19 Limitaciones y alcances - casos de daños y obstrucciones. . . 42
4.1 Escenarios de condiciones de redes para procesamiento. . . 44
4.2 Diagrama en bloques simplificado del algoritmo para inspección y análisis de red. 44 4.3 Diagrama en bloques extendido del algoritmo para inspección y análisis de red. . 45
4.4 Separación de imagen en canales de modelo de color HSV. . . 46
4.5 Diagrama en bloques del algoritmo para corrección de color. . . 46
4.6 Resultado de corrección de color . . . 47
4.7 Resultado de corrección de color por normalización de histograma. . . 48
4.8 Resultados y Ejemplos de corrección de color por normalización de histograma. . 48
4.9 Diagrama en bloques de pre procesamiento de muestra. . . 49
4.10 Separación de imagen en canales de modelo de color RGB. . . 49
4.11 Separación de imagen en canales de modelo de color HSV. . . 50
4.12 Resultados de Filtrado. . . 50
4.13 Muestras originales para segmentación. . . 51
4.14 Resultados de segmentación de red de fondo. . . 52
4.15 Resultados de detección de bordes para diferentes muestras. . . 52
4.16 Áreas de ojos detectadas inspección. . . 53
4.17 Identificación y ubicación de nudos sobre aproximaciones polinómica de áreas de ojos en red. . . 54
4.18 Identificación y ubicación de nudos sobre muestras. . . 54
4.19 Proceso de detección y unión de segmentos. . . 55
4.20 Identificación, ubicación y unión de segmentos de nudos sobre muestras. . . 55
4.21 Proceso de inspección para identificación de daños. . . 56
4.22 Caso de identificación de daños. . . 56
4.23 Ejemplo 1 de algoritmo para detección de única obstrucción. . . 57
4.24 Ejemplo 2 de algoritmo para detección de múltiples obstrucciones. . . 57
5.1 Ejemplo 1 resultado de corrección de color en pre-procesamiento. . . 60
5.2 Ejemplo 2 resultado de corrección de color en pre-procesamiento. . . 61
5.3 Ejemplo 3 resultado de corrección de color en pre-procesamiento. . . 61
5.4 Ejemplo 4 resultado de corrección de color en pre-procesamiento (Problema en corrección de color). . . 61
5.5 Ejemplo 1 (Red perfecta) de procesamiento de galería de muestras ideales. . . 62
5.6 Ejemplo 2 (Patrón ideal con algo de deformación) de procesamiento de galería de muestras ideales. . . 62
5.7 Ejemplo 3 (Patrón ideal con poca inclinación de perspectiva) de procesamiento de galería de muestras ideales. . . 63
5.8 Ejemplo 4 (Red con multi pliegue) de procesamiento de galería de muestras ideales. 63 5.9 Ejemplo 1 (Red deformada en perfecto estado) de procesamiento de galería con condiciones favorables. . . 64
5.10 Ejemplo 2 (Red con perspectiva no tan inclinada) de procesamiento de galería con condiciones favorables. . . 64
5.11 Ejemplo 3 (Red con perspectiva no tan inclinada) de procesamiento de galería con condiciones favorables. . . 64
5.12 Ejemplo 4 (Red con única rasgadura de ojo) de procesamiento de galería con condiciones favorables. . . 65
5.13 Ejemplo 5 (Red con perspectiva muy inclinada) de procesamiento de galería con condiciones favorables. . . 65
5.14 Ejemplo 6 (Red con múltiples daños) de procesamiento de galería con condiciones favorables. . . 65
5.15 Ejemplo 7 (Red en presencia de una única obstrucción) de procesamiento de galería con condiciones favorables. . . 66
5.16 Ejemplo 8 (Red en presencia de una única obstrucción) de procesamiento de galería con condiciones favorables. . . 66
5.17 Ejemplo 9 (Red en presencia de múltiples obstrucciones) de procesamiento de galería con condiciones favorables. . . 66
5.18 Ejemplo 10 (Segmento de red en perfecto estado) y 11 (Segmento de red en con rasgadura de ojo) de procesamiento de galería con condiciones no favorables. . . 67
5.19 Ejemplo 12 (Segmento de red en perfecto estado), Ejemplo 13 (Segmento de red en perfecto estado) y Ejemplo 14 (Segmento de red en perfecto estado con perspectiva circular) de procesamiento de galería con condiciones no favorables. . 68 5.20 Ejemplos 15 y 16 de procesamiento fallido en galería con condiciones no favorables. 69 5.21 Ejemplos 17 y 18 de procesamiento con corrección de perspectiva en galería con
condiciones no favorables. . . 69 5.22 Espacio ROC y las parcelas del procesamiento de tres galerías A, B, C . . . 70 7.1 Otros aportes. . . 80
2.1 Estado del arte en Software, métodos CV Y técnicas para inspección de redes en
piscicultura. . . . 4
2.2 Métodos de umbralización. Ilustraciones tomadas de OpenCV Basic Thresholding Operations (2). . . 14
2.3 Notaciones matemáticas para operaciones morfológicas. . . 15
5.1 Matrices de confusión para reconstrucción de patrón. . . 71
5.2 Matriz de confusión para galería 5.2.1 . . . 71
5.3 Matriz de confusión para galería 5.2.2 . . . 71
5.4 Matriz de confusión para galería 5.2.3 . . . 71
5.5 Matrices de confusión para inspección de daños. . . 71
5.6 Matriz de confusión para galería 5.2.1 . . . 71
5.7 Matriz de confusión para galería 5.2.2 . . . 71
5.8 Matriz de confusión para galería 5.2.3 . . . 71
5.9 Matrices de confusión para inspección de obstrucciones. . . 71
5.10 Matriz de confusión para galería 5.2.1 . . . 71
5.11 Matriz de confusión para galería 5.2.2 . . . 71
5.12 Matriz de confusión para galería 5.2.3 . . . 71
5.13 Matrices de confusión para inspección de defectos. . . 72
5.14 Matriz de confusión para galería 5.2.1 . . . 72
5.15 Matriz de confusión para galería 5.2.2 . . . 72
5.16 Matriz de confusión para galería 5.2.3 . . . 72
5.17 Rendimiento de programa. . . 72
5.18 Rendimiento de programa de ejecución de diferentes muestras [segundos] . . . 72
5.19 Tabla de muestras para prueba de rendimiento de tiempo de ejecución del programa 73 7.1 Cronograma de desarrollo de trabajo de grado. . . 80
Introducción
La piscicultura es la técnica que se ocupa de la cría de peces bajo condiciones controladas. Es una actividad que ha tomado gran importancia a nivel mundial y se ha posicionado como una de las más importantes para el sector económico (3). Debido a que la demanda de productos para el consumo humano está en constante crecimiento, el incremento anual en la producción de peces es en promedio 8.8% al año. La década pasada la producción de peces en el mundo fue de 141.3 millones de toneladas. Debido a que la industria pesquera ha explotado indiscriminadamente la población de varias especies de peces, se dice que se ha superado el límite sostenible, incluso algunos científicos predicen que el comercio de este sector colapsará para la segunda mitad del siglo XXI (4). La reacción que ha tenido la industria piscícola ante esta problemática es incre- mentar la cría de peces en jaulas y jaulones tanto en grandes lagos como en el mar, disminuyendo así la pesca indiscriminada (3). La cría de peces implica que estos usualmente sean mantenidos o confinados en áreas encerradas por redes sumergidas bajo el agua, con un rango de 15 a 48 metros de profundidad. Grupos de buzos u operadores sin algún elemento de protección son frecuentemente usados para la inspección de la integridad en estas redes, con el fin de detectar daños, defectos, residuos y desechos adheridos que se presentaran con el tiempo. Esto acarrea altos costos y peligros al personal y el piscicultor (5). Se dice que dos de cada tres perdidas de peces se debe a daños en las redes como rasgaduras, por tal razón, una inspección regular es importante para reducir el escape de crías o ingreso de depredadores. Esto constituye uno de los mayores problemas para los acuicultores en general y puede ocasionar efectos adversos para el ambiente, además de grandes pérdidas económicas para el sector (6).
Debido a la problemática presentada es importante el desarrollo de una herramienta com- putacional para mejorar y hacer más eficiente la inspección de redes en piscicultura. Esto como complemento a algunos métodos tradicionales de supervisión ya existentes como vehículos sub- marinos remoto operados.
Este documento presenta el diseño, desarrollo e implementación de un software o herramienta computacional para la inspección y análisis de redes en piscicultura, llamado NetInspector. Este software permite la detección de daños y defectos en la estructura de las redes conformadas por nudos y segmentos de cuerdas.
A partir de un banco de imágenes suministrado y por medio de algoritmos y métodos de CV el programa es capaz de reconstruir el patrón de la red, realizar la inspección de integridad y generar reportes de estado por cada muestra o banco provisto. Esto se logra mediante el ajuste manual de opciones y parámetros de procesamiento, los cuales podrían variar de acuerdo a las condiciones de la red y su entorno.
desarrollo del proyecto. Se expone inicialmente una breve reseña del estado de la piscicultura y acuicultura global y nacional, tipo de redes usadas en este sector, formas, causas y tipos de daños y costos de mantenimiento. Un estudio del estado del arte en inspección de redes y mallas, teoría de algoritmos y métodos de visión por computador implementados, finalmente estándares en la ingeniería que aplican a este trabajo.
Capítulo 3: Se exponen los objetivos del proyecto así como la síntesis de lo alcanzado en el mismo. También se incluyen las características finales del software desarrollado, sus especifica- ciones, alcances y limitaciones.
Capítulo 4: Se descompone el proyecto en una serie de subproblemas que irán siendo de- sarrollados por secciones de procesamiento y resueltos hasta llegar a la solución y propósito general del programa. Por cada sección se indicarán los algoritmos, técnicas y métodos imple- mentados en el análisis e inspección de red, remitiendo finalmente al lector a los códigos fuente del programa. En este capítulo se demuestra el cumplimiento de los entregables definidos en la propuesta de trabajo de grado y se definen los protocolos de pruebas.
Capítulo 5: Análisis e interpretación de los resultados obtenidos al seguir el protocolo de pruebas desarrollado en el capítulo anterior.
Capítulo 6: Conclusión del proyecto con observaciones importantes sobre los resultados obtenidos. Las conclusiones están enfocadas en los métodos y algoritmos utilizados, la identi- ficación de daños, defectos y la reconstrucción de patrón en la red y el desempeño general del software, trabajo futuro y otros aportes.
Marco Teórico
2.1 Estado del Arte
Han sido muy limitadas las investigaciones sobre la detección de daños en redes de piscicultura y las pocas existentes son probadas bajo escenarios muy idealizados. La tabla 2.1 compara algunas características de distintos programas y trabajos para la inspección de redes en pisci- cultura, algunos de estos fueron desarrollados con propósitos académicos y otros como paquetes comerciales:
Algunos métodos y algoritmos CV son tratados por Jakobsen (7) con el fin de reconstruir e inspeccionar la estructura de redes en acuicultura. Su trabajo involucra el uso de un micro ROV y el desarrollo de un software que incluye una GUI, controles de desplazamiento, algorit- mos de análisis y un módulo de sensores que permite ubicar el dispositivo de inspección a una determinada distancia respecto a la red con gran precisión. Jakobsen lograba rastrear la malla y ubicarse a una distancia entre 15 a 60 cm con una distorsión por movimiento y perspectiva muy baja dependiendo del tamaño de la malla. Una vez obtenidas las condiciones adecuadas de vista e iluminación se ejecuta el algoritmo de inspección. La detección de daños fue lograda primero realizando una segmentación de la red respecto al fondo o segundo plano con la selección del canal apropiado de color y threshold, luego se ejecuta un algoritmo basado en depth first search (DFS) y otros para lograr identificar los segmentos de cuerda y nudos de la red para realizar una reconstrucción digital del área en inspección. El enfoque de segmentación de fondo y red fue comparado con un método basado en la detección de borde o contorno, combinado con una técnica conocida como ooding que conecta bordes aislados. Jakob-sen concluye que separar la red del fondo con un umbral percentil da mejores resultados, y que la inspección de la integridad de la red por visión por computador parece muy prometedora.
Tormod Haugene (8) tenía como objetivo en su estudio desarrollar una técnica robusta para la detección automática de daños en redes mediante la cámara de un ROV y visión por com- putador. El sistema podría ser manejado con ayuda de un operador humano o a futuro con un sistema de navegación autónomo. Para la segmentación de la red y fondo se aplican técnicas como detección de borde, estimación de movimiento y selección de multi canal. La evaluación del daño en la red se realiza a partir de una imagen binaria en primer plano resultante de emplear un esquema de detección basado en operaciones morfológicas. El rendimiento de la segmentación de fondo, la precisión de detección y la robustez del sistema desarrollado se tra- bajó con vídeos grabados previamente de un ROV y una configuración de prueba simulada. Los resultados mostraron que el proceso de segmentación de fondo proporcionó una imagen bina- rio de primer plano muy estable y comprensible, pero con capacidad reducida para segmentar ciertos objetos de la red. La metodología de evaluación de daños, por otra parte, mostró una
Tabla 2.1: Estado del arte en Software, métodos CV Y técnicas para inspección de redes en piscicultura.
NOMBRE DEL PROYECTO DESARROLLADOR TIPO DE PROYECTO
Automatic Inspection of Cage Integrity with Underwater Vehicle(7)
Rolf Arne Hult Jakobsen. Académico (maestría)
Evaluation of Methods for Robust,Automatic Detection of Net Tear with Remotely Operated
Vehicle and Remote Sensing (8)
Tormod Haugene Académico (maestría)
Underwater Vehicle Navigation Systems for Net Inspection in Salmon Aquaculture (9)
Rundtop, Per Stahl Annette, Frank Kevin, Svendsen Eirik, Bjerkeng Magnus,
Grøtli Esten Ingar
Académico (Doctorado/Comercial)
Deep Trekker DTG2 (10)
Deep Trekker Comercial
capacidad de evaluación rigurosa y eficiente. Con algunas medidas adicionales, el procedimiento desarrollado parece prometedor para lograr una robusta detección de daños considerables en una implementación práctica.
Otro trabajo de mucho interés es hecho por Sletta (11). En esta tesis de maestría se exploran y usan una gran variedad de técnicas de visión por computador, algunas de las cuales se combi- naron con algoritmos diseñados de evaluación de daños y defectos particulares como crecimiento de algas. En particular Sletta investiga el uso de tres técnicas de umbralización como medio para aislar la estructura de la red del fondo, como Otsu, umbral directo y adaptable en comparación con los algoritmos detectores de borde de Sobel y Scharr. Además, desarrollo un algoritmo de detección de daños basado en el crecimiento de la región de los píxeles de fondo (ceros binarios) utilizando una técnica conocida como 4 connectivity. Sletta concluye que entre los algoritmos probados y desarrollados, la detección de bordes fue el mejor para el proceso de segmentación.
Consiguió separar la red del fondo en condiciones bastante ideales independientemente del color del mar y de la red. Sin embargo el éxito del algoritmo fue muy variable cuando condiciones como la calidad de la imagen es reducida, se presenta movimiento de cámara o problemas de enfoque de lentes, condiciones de luz variables, como sombras y luces solares, así como objetos extraños obstruyendo la estructura de la red. El algoritmo en general tuvo un buen desempeño, pero se puede dar el caso de una segmentación inexacta.
Actualmente en el sector comercial e industrial de la piscicultura existen instrumentos o dispositivos con los cuales se puede llevar a cabo una inspección completamente supervisada de la integridad de la red. Un claro ejemplo es el ROV Deep Trekker DTG2 (10) el cual cuenta con una cámara HD de alto rango de focalización y 270 grados de rotación, el sistema consta de un monitor para supervisión y control de navegación. La mayoría de estos elementos e instrumentos comerciales no ofrece una navegación autónoma ni mucho menos una inspección de integridad eficiente y no supervisada.
2.2 Revisión General de la Piscicultura
2.2.1 La Piscicultura en el Mundo
Debido a una población global en constante crecimiento la demanda de alimentos es cada vez mayor. Como respuesta a este problema la industria piscícola en mar abierto y grandes lagos ha aumentado el uso de jaulas y jaulones flotantes durante los últimos años. Este crecimiento es más notorio en la cuenca mediterránea, seguido por Latinoamérica y el caribe. Según datos de la FAO, en el año 2009 la acuicultura proporcionaba el 81% del marisco, el 76% del pescado de agua dulce, el 69% del salmón y el 42% del camarón que se consume en el mundo, generando empleo para alrededor de 9 millones de personas. La piscicultura es el sector alimentario que crece más rápido en el mundo: un 7% por año, respondiendo por más del 50% de los peces para el consumo humano. Para mantener el consumo per cápita actual de pescado, para el año 2030 la piscicultura deberá producir 28,8 millones de toneladas más al año que en la actualidad.
En América Latina y el Caribe, la producción también ha crecido a tasas anuales de cerca del 20%, mientras que en 1990 se producían 186 mil toneladas al año, el año 2006 dicha producción superó el millón trescientas mil toneladas (3).
2.2.2 La Piscicultura en Colombia
Según el reporte de la AUNAP (Autoridad Nacional de Acuicultura y Pesca) en el diagnóstico del estado de la acuicultura en Colombia, la mayoría de las granjas piscícolas se encuentran en grandes lagos y océanos representando respectivamente 24925 (30%) y 111 (0,13%) toneladas de producción al año (12). La cantidad de acuicultores en el país se calcula alrededor de 29400
y la actividad aporta el 0,7% del producto interno bruto (PIB) nacional. Para el gobierno Nacional Colombiano, la pesca y la acuicultura representan dos importantes elementos para el desarrollo productivo del sector agropecuario, así como para mejorar los índices de pobreza en las zonas rurales. Sin embargo, como se estipula en (12), "es necesario reforzar estos centros para que puedan dar cobertura completa a todas las necesidades de los acuicultores en temas de prevención, control de enfermedades y certificación de inocuidad de los productos de la acuicultura, principalmente para la exportación, pero también para reforzar la diferenciación de los productos nacionales en el mercado interno".
2.3 Redes en Piscicultura
Las mallas o redes en piscicultura (Fig:2.1), también conocidas como trasmallos, chinchorros, atarrayas, boliches y entre otros, son herramientas usadas para la extracción o confinamiento de peces en la industria acuícola. Hace algunas décadas cuando no existía demasiada tecnología e industria en este sector, las redes eran elaboradas de forma artesanal, lo cual resultaba en una labor dispendiosa y agotadora. Ahora el desarrollo tecnológico ha traído consigo líneas de pro- ducción y maquinas especializadas en tejeduría y confección de redes. La elaboración artesanal generalmente carece de calidad y presentan un deterioro más progresivo debido a que la red no sufre el proceso de termo fijación que requiere un paño para mejorar la firmeza en los nudos. Los materiales de fabricación de estas mallas van desde metales, nylon, poliéster hasta polietilenos de alta densidad, dependiendo de las condiciones del entorno, cada material tendrá sus ventajas respecto a otro (1).
Una red de piscicultura está compuesta por un patrón uniforme cuadrado, hexagonal o diamante (1), existiendo muchas técnicas de trenzado y elaboración para cada una. Dejando a un lado el sistema de amarre, una red se descompone principalmente de dos elementos:
• nudos.
• segmentos de cuerda.
Estos forman lo que se conoce como ojos de red, es decir los orificios de la malla. Comer- cialmente existen muchos tamaños para las redes y sus ojos, casi siempre determinado por las necesidades del mercado o el consumidor. La mayoría de fabricantes ofrece dimensiones de ojo que pueden ir desde 0.083 pulgadas hasta 1.25 pulgadas. Para aplicaciones más específicas este valor puede ser mucho más grande o pequeño. No obstante siempre se debe garantizar calidad y seguridad al consumidor con la red (Std 1263-1).
Figura 2.1: Redes comerciales para piscicultura (1).
2.3.1 Daños Más Comunes de Redes en Piscicultura
De acuerdo con Heide and Moe (13), la rasgadura en L (Fig:2.2(a)) es la mayor causa de es- cape de peces en criaderos. Las rasgaduras verticales (Fig:2.2(b)) y horizontales (Fig:2.2(c)) son usualmente más estrechas, por lo que le costara más a los peces pasar a través de este tipo de aberturas. Estos daños son un deterioro a largo plazo de roturas en segmentos de cuerda o nudos (Fig: 2.2(d) y 2.2(e)), además son más costosos, dispendiosos y tediosos de reparar. Por ello, una identificación y corrección temprana de daños o defectos es importante en el proceso de inspección.
(a) Rasgadura L (b) Rasgadura vertical (c) Rasgadura horizontal
(d) Hueco en red (e) Daño en segmento de cuerda
Figura 2.2: Daños más comunes en redes de piscicultura.
2.3.2 Inspección de Estado, Mantenimiento y Reparación de Redes en Pis- cicultura
Los entornos marinos tienen un gran número de fuerzas físicas, químicas y bilógicas trabajando en todo instante. Este alto número de variables involucradas y en constante movimiento afectan a todo lo que está sumergido. Los daños y defectos en redes (Fig:2.2), jaulas y jaulones causan grandes pérdidas económicas a través de costos de materiales de reparación, tiempo de eval- uación, rectificación de problemas, y sobre todo por escape de crías (producto), lo que causa también un gran impacto ecológico (14).
Las fuerzas físicas que afectan las redes sumergidas son generalmente dos tipos: Fuerzas estáticas y dinámicas causadas respectivamente por efectos de gravedad y empuje del agua y debido a corrientes marinas o fuerzas horizontales. En ambos casos, estas fuerzas actúan con- stantemente de manera conjunta, afectando toda la estructura o el sistema de la red, produciendo abrasión y roturas en varios componentes. Las redes también están expuestas a procesos biológi- cos y químicos como oxidación, degradación y actividad biológica por microorganismos. Esto acelera notablemente la degradación de plástico y polímeros en cuerdas y nudos, aumenta la
corrosión de partes metálicas como cadenas, anillos, paltos y grilletes, reduciendo así la carga máxima para rotura. Estos parámetros definirán con que gradualidad se deben llevar a cabo inspecciones, mantenimiento y reparaciones (14).
La inspección de redes y jaulas bajo superficie son usualmente realizadas por buzos capac- itados y preparados en el área 2.3(b), sin embargo hace poco se está dando uso a vehículos submarinos remoto operados para esta labor(10)2.3(a). El trabajo en entornos marinos o bajo superficie 2.3(c) involucran altos riesgos y peligros a pesar de todas las precauciones de seguridad que se tomen (15).
(a) ROV para inspección de integri- dad de red
(b) Buzo en inspección de integri- dad de red
(c) Buzo en reparación y manten- imiento de red
Figura 2.3: Evaluación de estado y reparación de redes en acuicultura.
2.4 Visión por Computador
La visión por computador o (CV ) es la ciencia de extraer información de una imagen para re- solver una tarea o un problema en específico.
Como humanos, percibimos el mundo que nos rodea como una estructura tridimensional con aparente facilidad. Por ejemplo, cuando una persona aprecia un objeto en un espacio o entorno, como un carro en la autopista, esta podrá describir su forma, su color, reflejos, brillo, caracterís- ticas de superficie, entre otras cosas. La persona podrá además sustraer o distinguir el auto en el cual está enfocado del resto de objetos y del entorno. Otro ejemplo algo más complejo es cuando miramos un portarretratos familiar, se podrá distinguir con facilidad la cantidad de personas, quienes son e incluso su estado de ánimo a partir de sus expresiones faciales. Un gran porcentaje de psicólogos y científicos han gastado décadas intentando descifrar este tipo de entendimiento y pensamiento abstracto. En los años 70s, las máquinas y computadores tenían suficiente poder de procesamiento para realizar análisis simples sobre imágenes digitales. Desde aquel tiempo, un gran número de investigaciones en el área han sido desarrolladas con un único fin, replicar o imitar lo más posible el procesamiento, reconocimiento y detección del sistema de visión humano.
Un problema con la CV es que no existe una formulación estándar hacia como los problemas deben ser enfocados y resueltos. En lugar, existen en abundancia métodos y algoritmos para resolver tareas específicas, donde la solución puede ser raramente generalizada sobre un rango amplio de aplicaciones. Un problema asociado, es la dificultad de heredar métodos que sean robustos y adaptables al cambio. Esto quiere decir que un método trabaja bien en un escenario que puede fallar absolutamente en otro, si algunos factores y elementos tales como condiciones
de luz cambiaran ligeramente. Por lo tanto es necesario métodos exhaustivos de prueba cuando se implementan algoritmos de CV.
2.5 Modelos de Color y Separación de Canales
Antes de entrar en detalle con cualquier algoritmo de CV, es importante saber cómo las imágenes son representadas de forma matemática y tratadas por un computador o cualquier dispositivo.
Para entender esto se necesita tomar un vistazo de cómo son almacenadas digitalmente las imágenes. Por ejemplo, para una imagen en escala de grises, se tiene una única representación matricial de tamaño nxm, donde n y m son la cantidad de pixeles (Resolución) horizontales y verticales respectivamente. Para una imagen de 8 bits cada posición (x, y) en este rango posee un valor que varía desde 0 (color negro) hasta 255 (color blanco). Una imagen a color podrá ser vista entonces como una matriz de nxmxc, donde la dimensión extra c, es el número de canales de color (usualmente c=3, pero dependerá del modelo o espacio de color). Para interés de este trabajo solamente se hablara de dos modelos: RGB 2.5.1 y HSV 2.5.2.
2.5.1 Modelo RGB
El modelo RGB es uno de los más comunes para uso en cámaras y displays. Para conformar un color en específico se sobreponen tres capas, cada una con una tonalidad determinada: rojo (R), azul (B) y verde (G). Cada una contendrá por cada posición de la matriz nxm el número que representa su respectivo tono de color. Para una imagen de 8 bits se podrá representar 256 niveles por cada pixel, con lo cual se puede lograr una gran gama de tonos y colores (2.4).
Figura 2.4: Modelo de color RGB: Rojo (R), verde (G) y Azul (B)
2.5.2 Modelo HSV
Como RGB, HSV es un modelo que define tres canales de presentación por cada pixel, pero ahora denominados H, S y V donde son respectivamente un canal de matiz, uno de saturación y otro de valor. A diferencia del modelo RGB, HSV tiene una representación de puntos en coordenadas cilíndricas (Fig:2.5).
El canal de matiz (H) representa el ángulo alrededor del eje vertical central y decide el color.
Inicia desde 0◦, pasando a través de verde en 120◦, azul en 240◦, y regresando a rojo en 360◦. El canal de saturación (S) es la distancia del eje vertical del cilindro y representa la intensi- dad de color. Un alto valor de saturación da como resultado un color más fuerte, mientras que
para valores bajos un pixel en escala de grises.
Finalmente el canal de valor (V) dada por la posición a través del eje vertical, determina el brillo del pixel, teniendo tonos oscuros para valores bajos y muy brillantes para valores altos.
En otras palabras, el valor de 0 en este canal representa un pixel oscuro sin importar el valor en los otros canales. Por otro lado para crear blanco el canal de valor deberá estar al máximo y el de saturación en cero.
Figura 2.5: Modelo de color HSV: Matiz (H) para color, Saturación (S) para intensidad y valor (V) para brillo
2.6 Algoritmos de Visión por Computador
El propósito principal de CV en este trabajo, es analizar la red en busca de daños y defectos, así como lograr la reconstrucción de su patrón. De esta forma, el usuario podrá identificar en una posible etapa temprana un daño que pueda permitir el escape de peces o ingreso de depredadores a largo plazo.
Algunos retos en CV para la detección automática de daños y defectos de redes en piscicultura son:
• Color variante, contraste, iluminación, escalado, rotación, perspectiva, visibilidad poco clara en la mayoría de casos y condiciones en entornos subacuáticos.
• Vista obstruida por peces, cuerdas, crecimiento de algas y objetos extraños.
• Múltiple estructura de redes.
• Borrosidad por movimiento y elementos no estáticos.
Más limitaciones y consideraciones serán discutidas en la sección 3.6. A continuación se dará una breve revisión teórica y práctica de los principales algoritmos de CV aplicados en este trabajo.
2.6.1 Filtros Estadísticos de Convolución
Algunos filtros de imagen clásicos como mediana, gaussiano, bilateral y homogéneo son utilizados para la reducción de ruido y supresión de partículas pequeñas produciendo algo de borrosidad.
Estos filtros consisten en calcular el valor de píxel para todos los puntos de la imagen de acuerdo con la vecindad de cada píxel individual a través de una plantilla de convolución.
El tipo más común de filtros son los lineales, en estos el valor de los pixeles resultantes de la operación de filtrado g(i, j) están determinados como el peso de la suma de los pixeles de entrada f (i + k, j + l). La expresión que detalla esta operación es:
g(i, j) =X
k,l
f (i + k, j)h(k, l) (2.1)
El termino h(k, l) de la ecuación 2.1 es llamado Kernel, el cual no es nada más que el co- eficiente de filtrado. Se podrá visualizar el filtro entonces como una ventana de coeficientes desplazándose a través de la imagen.
El filtro homogéneo también conocido como "Normalized box filter" es el más simple de todos. En este método cada píxel de salida es la media de sus vecinos y su kernel es de la forma:
f rac1Kwidth· Kheight
1 1 1 ... 1 1 1 1 ... 1 . . . ... 1 . . . ... 1 1 1 1 ... 1
(2.2)
El filtro gaussiano es considerado como una de las técnicas más óptimas para suavizado de imágenes. Casualmente el ruido está muy asociado a una distribución gaussiana, en este caso el kernel de este filtro será más útil para la reducción de ruido. Este kernel suele generarse en base a un tamaño de conjunto con una media y una varianza dada que luego se normalizara. El kernel sería una aproximación discreta a la ecuación de filtro gaussiano bidimensional mostrada en 2.3:
Go(x, y) = A
−(x−µx)2 2·σ2x
+−(y−µy )
2 2·σ2y
e (2.3)
El filtro mediana es casi tan simple como el de suavizado homogéneo. Este pasa a través de cada elemento de la imagen y reemplaza cada pixel con la mediana de sus vecinos en un barrido cuadrado alrededor del pixel evaluado.
2.6.2 Umbralización de Imagen
El proceso de binarizado, también conocido como umbralización o thresholding (en inglés), es uno de los métodos más simples de segmentación logrando separar regiones y objetos que se deseen analizar en una imagen. Esta separación está basada en la variación de intensidad entre los pixeles del objeto y el segundo plano. Para lograr esta separación se realiza una comparación de la intensidad de pixeles con un umbral. Una vez encontrado o determinado el valor apropiado de umbral para la segmentación, se estable un nuevo valor para los pixeles que estén por encima y por debajo.
Para ilustrar como el proceso de umbralización funciona deberá considerarse una imagen fuente cuyos pixeles tengan una intensidad o valor de la forma src(x, y). La figura 2.6 describe esta relación y la línea azul indica el valor de umbralización conocido como threshold (thresh).
Figura 2.6: Modelo de imagen fuente para umbralización.
Se distinguen 5 principales métodos de umbralización 2.2:
(a) Muestra original (b) Umbralización binaria (c) Umbralización binaria invertida
(d) Umbralización truncada (e) Umbralización a cero (f) Umbralización a cero in- vertida
Figura 2.7: Resultados de Umbralización, Valor de umbral = 100
2.6.2.1 Umbralización Adaptativa Otsu
Los métodos anteriores requieren un umbral global para el proceso de segmentación (Fig:2.10(b)), sin embargo esto puede llegar a ser inadecuado cuando las condiciones de luz cambian abrupta- mente a lo largo de toda la imagen (Fig:2.10(a)), en estos casos es más adecuado el uso de un umbral que se adapte a estas condiciones dinámicas. Los algoritmos de umbralización adapta- tivos calculan el valor de umbral y binarizán la imagen por pequeñas regiones dando mejores resultados en proceso de segmentación.
Uno de estos métodos de umbralización adaptativa más conocidos y usados es Otsu. Este algoritmo considerada una imagen bimodal, la cual consta de dos picos en su histograma. Otsu aproxima el valor de umbral entre el medio de estos picos, con lo cual se pueden obtener re- sultados como los de la figura 2.8(c). Sin embargo aún pueden obtenerse mejores resultados (Fig:2.8(d)) para el caso de análisis de red (no bajo todas las condiciones), esto se logra mez- clando las capas binarias obtenidas de la umbralización Otsu para los canales R, G y B. Existen otros métodos de umbralización adaptativa mediante el uso de probabilidades gaussianas y promedios (16).
Para imágenes bimodales Otsu trata de encontrar un valor de umbral (t) que minimice la clase
(a) Muestra Original, Filtro Gaussiano (K=20)
(b) Umbralización binaria, Canal R (Threshold=50)
(c) Umbralización por Otsu en canal R
(d) Umbralización por Otsu compuesto
Figura 2.8: Resultados de binarizado con umbral adaptativo de varianza ponderada por la relación:
sigma2w(t) = q1(t)σ12(t) + q2(t)σ22(t) (2.4) Donde
q1(t) =
t
X
i=1
P (i) y q1(t) =
I
X
i=t+1
P (i) (2.5)
mu1(t) =
t
X
i=1
iP (i)
q1(t) y mu2(t) =
I
X
i=t+1
iP (i)
q2(t) (2.6)
σ12(t) =
t
X
i=1
[i − µ1(t)]2P (i)
q1(t) y σ22(t) =
I
X
i=t+1
[i − µ1(t)]2P (i)
q2(t) (2.7)
En realidad todo consiste en encontrar un valor de t que se halle entre dos picos tales que las variaciones entre ambas clases sean mínimas.
Tabla 2.2: Métodos de umbralización. Ilustraciones tomadas de OpenCV Basic Thresholding Operations (2).
Tipo de umbralización Representación gráfica
Binaria 2.7(b): Se valorizan los pixeles que estén por encima del umbral en 255 (blanco) y por debajo en 0 (negro).Como resultado se obtiene una máscara binaria
del objeto de interés.
dst(x, y) =
( maxVal if src(x, y) > thresh 0otherwise
Binaria invertida 2.7(c): Se valorizan los pixeles que estén por encima del umbral
en 0 (negro) y por debajo en 255 (blanco). Como resultado se obtiene una
máscara binaria del segundo plano.
dst(x, y) =
( 0 if src(x, y) > thresh maxVal otherwise
Truncada 2.7(d): Se valorizan los pixeles que estén por encima del umbral en su
valor y por debajo en el valor de pixel original. Como resultado se obtiene una
máscara binaria del objeto de interés valorizado en el umbral.
dst(x, y) =
( threshold if src(x, y) > thresh src(x,y)otherwise
A cero 2.7(e): Se valorizan los pixeles que estén por encima del umbral en el valor de pixel original y por debajo a 0 (negro).
Como resultado se elimina el segundo plano dejando el objeto de interés.
dst(x, y) =
( src(x,y)if src(x, y) > thresh 0otherwise
A cero invertida 2.7(f): Se valorizan los pixeles que estén por encima del umbral en 0 (negro) y por debajo, en el valor de pixel original. Como resultado se elimina el objeto de interés dejando el segundo
plano.
dst(x, y) =
( 0 if src(x, y) > thresh src(x,y)otherwise
2.6.3 Operaciones Morfológicas
El mundo de la morfología puede ser entendido como el estudio de formas, figuras y estructuras en particular. En procesamiento de imágenes implica una operación la cual evalúa iterativa- mente cada pixel de una imagen por medio de la sobre posición de plantillas conocidas como elementos estructurantes (17). La forma en particular de estos elementos determinara el efecto u operación sobre la imagen (Tabla:2.3). Las operaciones conocidas como dilatación, erosión, apertura, y cerrado (Dilatation, Erosion, Opening, Closing) son comúnmente usadas para el pro- ceso de segmentación en imágenes. Debido a la gran importancia de estos métodos para ciertas condiciones de entorno y red en algunas muestras se explicaran brevemente a continuación.
La notación matemática para evaluar una imagen binaria srcbin(x, y) con un elemento es- tructurante s puede ser detonado para una determinada operación como lo indica la tabla 2.3:
s1
1 1 1 1 1 1 1 1 1
s2
0 1 0 1 1 1 0 1 0
El elemento estructurante s1 calza en A y seajusta parcialmente en B y C, mientras que s2 lo hace para A y B parcialmente, sin obtener respuesta con C (17).
Para entender la diferencia entre erosión y dilatación, los términos calzar y ajuste parcial deben ser explicados: Se dice que un elemento estructurante s se ajusta parcialmente a un pixel central (x, y) si al menos un uno binario en s coincide con un uno de las vecindades de (x, y), si todos los unos binarios en s coinciden con todos los unos binarios de las vecindades de (x, y) se dice que el elemento estructurante s calza en (x, y).
Tabla 2.3: Notaciones matemáticas para operaciones morfológicas.
Operación Notación Erosión srcbin s Dilatación srcbin⊕ s
Opening srcbin◦ s = (srcbin s) ⊕ s Closing srcbin• s = (srcbin⊕ s) s
2.6.3.1 Erosión y Dilatación
La operación de erosión es usada típicamente para remover pequeñas e indeseadas partículas de alguna imagen binaria con el propósito de reducir algo de ruido o adelgazar los bordes con- formados por pixeles negros (17). Un pixel con coordenadas (x, y) es erosionado de acuerdo a la ecuación 2.8:
dst(x, y) = min
(x0,y0):element(x0,y0)6=0src(x + x0, y + y0) (2.8) La operación de dilatación tiene un efecto contrario a erosión. Esta técnica consiste en adicionar características extras y es usada comúnmente para llenar pequeños huecos, regiones o espacios conectando áreas muy cercanas pero separadas o aumentando las fronteras de las regiones 2.8. En la segmentación de fondo, la dilatación se utiliza a menudo para fusionar ruido y resultados irregulares en objetos conectados. Esta operación se realiza para un píxel (x, y) de la siguiente manera:
dst(x, y) = max
(x0,y0):element(x0,y0)6=0src(x + x0, y + y0) (2.9)
(a) Erosión (Threshold=20) (b) Dilatación (Threshold=30)
Figura 2.9: Resultados de operaciones de erosión y dilatación.
2.6.3.2 Opening y Closing
El nombre Opening o apertura viene de la habilidad de cortar o suprimir conexiones o puentes muy finos que conectan múltiples regiones. Es una operación compuesta, que consiste primero en erosionar 2.8 la imagen para remover pequeños caminos y algunas características de partículas y luego se aplicará dilatación2.9 para traer el área de vuelta a su tamaño original (17).
La operación Closing o cerrado como su nombre lo implica, consiste en llenar huecos o áreas vacías contenidas dentro de alguna región. La operación consiste primero en dilatar 2.9 la imagen binaria para llenar huecos, pero también para aumentar las fronteras o regiones de la imagen, luego es aplicada erosión2.8 para reducir las regiones escaladas de nuevo a su tamaño original.
Las operaciones de Opening y Closing son algunas veces más preferidas que erosión y di- latación, Ya que normalmente dan el efecto deseado sin alterar o deteriorar el tamaño total de
todos los objetos en la imagen binaria.
(a) Opening (Threshold=30) (b) Closing (Threshold=50)
Figura 2.10: Resultados de operaciones de Opening y Closing.
2.6.4 Detección de Bordes Cerrados
Los bordes o fronteras en una imagen pueden ser descritos como el punto donde se presente un cambio rápido en la intensidad de pixeles, por ejemplo un borde para la transición entre fondo y un objeto en una imagen (18). Los algoritmos para detección de bordes o fronteras están típicamente basados en contrastar las intensidades de pixeles por medio del análisis de la primera y segunda derivada de la imagen.
El detector de bordes más óptimo y conocido fue desarrollado por John F. Canny en 1986 (19), este algoritmo busca satisfacer tres criterios principales:
• Baja tasa de error que traduce en una buena detección de bordes existentes.
• Buena localización lo cual indica que se debe minimizar la distancia entre los pixeles de borde detectados y los pixeles de borde real.
• Respuesta mínima, es decir solo una respuesta del detector por borde.
Los pasos del algoritmo para detección de bordes en imagen 2.6.4 son:
1- Filtrado de ruido y supresión de pequeñas partículas 2.6.1.
2- Se encuentra el gradiente de intensidad aplicando un par de máscaras de convolución (Eq.2.10 y Eq.2.11) en las direcciones de x y y:
Gx =
−1 0 +1
−2 0 +2
−1 0 +1
(2.10)
Gy =
−1 −2 −1
0 0 0
+1 +2 +1
(2.11)
Se encuentra la fuerza y dirección del gradiente con las ecuaciones 2.12 y 2.13:
G =qG2x+ G2y (2.12)
θ = arctan(Gy
Gx) (2.13)
La dirección es redondeada a uno de los cuatro posibles ángulos: 0, 45, 90 o 135.
3. Se aplica una técnica conocida como supresión no máxima (Non-maximum suppression) con el fin de remover pixeles que no sean considerados parte de un borde, por lo tanto quedaran solamente presentes líneas delgadas.
4. Histéresis: El algoritmo para detección de borde utiliza dos umbrales, uno superior y otro inferior. Si el gradiente del pixel es más alto que este umbral será suprimido, si esta entre el valor de umbral inferior y superior será aceptado solamente si está conectado a otro pixel que esté por encima del umbral superior.
2.6.5 Transformada de Hough
El conjunto de algoritmos de Hough usa varios métodos y técnicas para encontrar líneas rectas o circulares en una imagen. Para aplicar esta transformación primero es necesario una detección de bordes o fronteras de la imagen (2.6.4). Es conocido que una línea en una imagen puede ser expresada con dos sistemas de coordenadas diferentes: cartesianas (m, b) y en polares (r, θ). Para las transformadas de Hough, se expresan estas líneas en el segundo sistema con una ecuación que puede ser expresada como:
y = (−cosθ
sinθ)x + ( r
sinθ) (2.14)
Reordenando los términos como:
r = xcosθ + ysinθ (2.15)
En general para cada punto (Xo, Yo) se podrán definir la familia de líneas que pasan a través de ese punto como:
rθ = x0cosθ + y0sinθ (2.16)
La transformada de línea de Hough (HLT) usa la ecuación 2.16 junto a una matriz de acu- muladores globales para cada pixel y vecinos en la imagen, si existe suficiente evidencia que indique que hay una línea en ese punto el acumulador incrementara en la posición del pixel lo cual indicara que se ha encontrado una línea.
Una vez toda la imagen haya sido analizada se inspeccionara la matriz de acumuladores, donde cada línea debería en principio pasar a través de varios puntos con lo cual el acumulado presentara picos en esas posiciones. Cada uno de estos picos en el acumulador corresponde a
una línea en el espacio (r, θ) y podrá ser extraída y representada sobre la imagen.
La transformada probabilística de línea de Hough (PHT) es una extensión del método base (HLT). Esta técnica consiste en aplicar un tipo de función probabilística una vez la matriz de acumuladores es obtenida con el fin de describir la probabilidad de la existencia de una línea en un punto dado. Otra versión muy común y utilizada es realizar enfoque con mínimos cuadrados lo cual no necesita un conocimiento a priori. El beneficio de utilizar este tipo de algoritmo sobre HLT es que las líneas debidas por el acumulador no serán globales, esto viene del hecho de que una solución por mínimos cuadrados puede determinar si el error entre una línea descrita y su probabilidad en la imagen va más allá de un umbral dado.
2.6.6 Análisis y Descriptores de Forma por Momentos Geométricos de Ima- gen
Los momentos son cantidades escalares usadas para caracterizar una función, obtener ciertas características y describir formas de una función de densidad de probabilidad y mecanismos de cuerpos rígidos para medir la distribución de masa de un determinado objeto. En CV se entienden como propiedades numéricas que se pueden obtener de una imagen, considerando todos los pixeles y no solamente sus bordes, con los cuales pueden obtenerse datos relevantes como orientación, área, perímetro, centro de masa, entre otros. Los momentos se clasifican como simples, centrales y centrales normalizados (20).
2.6.6.1 Momentos Simples
Estos momentos son empleados para obtener otros momentos, pero también dan información por sí mismos. Si tenemos un objeto en una región α que viene dado por los puntos en los que scr(x, y) > 0, definimos el momento de orden p, q discretamente como:
M (p, q) =X
x
X
y
xpyqsrc(x, y) (2.17)
El teorema de representación de los momentos nos dice que el conjunto infinito de momentos determinan unívocamente scr(x, y) y viceversa. Tendremos una imagen digital definida por la función scr(x, y), donde (x, y) son las coordenadas de un punto y scr(x, y), el valor de ese punto;
una imagen binaria, este valor será 0 si el punto es distinto de negro y 1 si es negro.
2.6.6.2 Momentos Centrales
La aplicación más útil de los momentos son las características que podemos extraer de ellos, que son invariantes a transformaciones geométricas tales como traslación, escalado y rotación. Los momentos centrales se usan para reconocer una imagen independientemente de su situación en un eje de coordenadas. Por ejemplo, la imagen de la forma no sería igual que la imagen de la forma Centrada, sin embargo, lo que es la figura en sí, es la misma. Para calcular los momentos centrales se usa el centroide de la figura u objeto. Para calcular los momentos centrales se em- plean las ecuaciones 2.18:
M Cpq =X X(x − X)p(y − Y )qsrc(x, y) (2.18)
El centroide viene representado por los momentos de orden 0 y 1 como:
X = M (1, 0)/M (0, 0) Y = M (0, 1)/M (0, 0)
El centroide o centro de masas de una figura viene determinado por las coordenadas (X, Y ), de forma que el área de la figura que queda a la derecha e izquierda del punto X es la misma, al igual que el área que queda por encima y por debajo del punto Y .
2.6.6.3 Momentos Centrales Normalizados
Permiten reconocer figuras dentro de una imagen independientemente de su tamaño. Se normal- izan los momentos centrales con el momento de orden 0, obteniendo así figuras independientes de la escala.
M CN (p, q) = M C(p, q)/M Cβ(0, 0) (2.19) Donde
β = p+q2 + 1 2.6.6.4 Momentos de Orden 0
Los momentos simples de orden 0 M (0, 0) suma todos los píxeles cuyo valor es uno, es decir los que son distinto de blanco, por lo tanto es útil para el cálculo de área de objetos.
El momento simple de orden 0 representa el área de la figura en imágenes binarias y la superficie en imágenes en escala de grises. Puede ser entendido entonces como la suma de los valores de todos los píxeles y su expresión está basada en la fórmula de los momentos simples como:
M (p, q) =X
x
X
yxpyqsrc(x, y) (2.20)
2.6.6.5 Momentos de Orden 1
Los momentos simples de orden 1 M (1, 0), M (0, 1) como se ha mencionado se usan principal- mente para hallar el centro de masas de una objeto determinado en una imagen.
M (1, 0)X
x
X
y
xsrc(x, y) (2.21)
M (0, 1)X
x
X
y
ysrc(x, y) (2.22)
Momentos centrales de orden 1, MC(1,0), MC(0,1): Estos momentos son 0 por definición.
U (1, 0) =X
x
X
y
(x − ¯x)1(y − ¯y)0f (x, y) (2.23)
= M (1, 0) −M (1, 0)
M (0, 0)M (0, 0) (2.24)
U (0, 1) =X
x
X
y
(x − ¯x)0(y − ¯y)1f (x, y) (2.25)
= M (0, 1) −M (0, 1)
M (0, 0)M (0, 0) (2.26)
Momentos centrales normalizados de orden 1, MCN(1,0), MCN(0,1): Estos momentos son 0 por definición.
2.6.7 Aproximación de Contorno
Esta técnica consiste en aproximar la forma de un contorno a otra forma con un número menor de vértices dependiendo de la precisión que se especifique. El método aplicado es una imple- mentación del algoritmo de Douglas-Peucker. En este algoritmo el argumento llamado épsilon indicara la distancia máxima del contorno original al contorno a aproximar, es considerado un parámetro de precisión, donde el resultado, curva aproximada o número de vértices dependerá de este. Un segundo parámetro es usualmente especificado en este algoritmo para especificar si la curva a aproximar es cerrada o no.
La figura 2.11(b) muestra una línea verde la cual representa la curva aproximada para ép- silon=10% de longitud de arco mientras que la imagen 2.11(c) lo hace para épsilon=1%.
2.6.8 Líneas de Simetría de Formas Planas
La detección de simetría en imágenes reales es una tarea bastante compleja y difícil. Existen varios algoritmos que tienen como objetivo evaluar y encontrar ejes de simetría en múltiples objetos de imágenes, sin embargo ninguno de estos es tan simple si quiera de implementar.
Un eje de simetría es una línea de referencia imaginaria que al dividir una forma cualquiera en dos partes, sus puntos opuestos son equidistantes entre sí, es decir, quedan simétricos. Otra definición para Simetría sería: Proporción adecuada de las partes de un todo. Correspondencia de posición, forma y dimensiones de las partes de un cuerpo o una figura a uno y otro lado de un plano transversal (bilateral) o alrededor de un punto o un eje (radial).También sabremos que una figura es simétrica cuando podemos pasar una línea recta o eje por ella de tal forma que dicha línea divide la figura en dos partes que tienen la misma forma. Por el contrario, una figura no es simétrica cuando, al trazar una línea recta por su mitad, la figura se divide en dos partes
(a) Imagen binaria de objeto (b) épsilon = 10% de longitud de arco
(c) épsilon = 1% de longitud de arco
Figura 2.11: Resultados de aproximación de contorno.
que tienen formas distintas.
(a) Cuadrado (b) Rectángulo (c) Diamante (d) octágono
Figura 2.12: Ejes de simetría de figuras geométricas.
• El cuadrado tiene cuatro ejes de simetría.
• El rectángulo tiene dos ejes de simetría.
• El rombo tiene dos ejes de simetría.
• El octágono tiene ocho ejes de simetría.
En el capítulo 4 se expondrá la utilidad y aplicación del concepto de simetría.