Integral Channel Features ( ICF ), también conocido como ChnFtrs , es un método para la detección de objetos en la visión por computadora . Utiliza imágenes integrales para extraer características como sumas locales, histogramas y características similares a Haar de múltiples canales de imágenes registrados. Este método fue muy explotado por Dollár et al . en su trabajo de detección de peatones , que fue descrito por primera vez en la BMVC en 2009. [1]
Resumen del método
- Calcule varios canales de imagen registrados a partir de una imagen de entrada, utilizando transformaciones lineales y no lineales
- Extraiga características como sumas sobre regiones de canales rectangulares de cada canal. Las características extraídas de varios canales se denominan características de canal integral.
- Entrene el clasificador AdaBoost . Dollár y col. utilizó una técnica de impulso que ofrece un aprendizaje más rápido, pero la capacitación se puede realizar con cualquiera de los otros métodos disponibles, como la máquina de vectores de soporte .
- Finalmente, el clasificador entrenado se usa para detectar objetos.
Imágenes y canales
Normalmente, un "canal" se refiere a un determinado componente que define valores de píxeles en una imagen digital . Una imagen en color, por ejemplo, es un agregado de tres canales (rojo, verde y azul). Los datos de color de una imagen se almacenan en tres conjuntos de valores, conocidos como canales. Si bien esta definición de "canal" es ampliamente aceptada en varios dominios, existe una definición más amplia en la visión por computadora , que permite aprovechar otras características de una imagen además de la información de color. Una de esas definiciones se refiere a un canal como un mapa registrado de la imagen original donde los píxeles de salida se asignan a los píxeles de entrada mediante alguna transformación lineal o no . [1] Según esta noción de canal, los canales de color de una imagen se pueden redefinir como imágenes de salida que se obtienen extrayendo un punto de información de color específico de la imagen de entrada a la vez. De manera similar, un canal para una imagen de entrada en escala de grises es simplemente igual a una imagen de entrada en escala de grises. La implementación simple de MATLAB a continuación muestra cómo los canales de color y el canal de escala de grises se pueden extraer de una imagen de entrada.
I = imread ( 'I_RGB.png' ); % imagen de color de entrada % Output_image = canal_color (I),% donde el canal de color puede ser rojo, verde o azul. Las tres imágenes de salida% se extraen de la imagen de entrada de la siguiente maneracanal_rojo = I (:, :, 1 ); canal_verde = I (:, :, 2 ); canal_azul = I (:, :, 3 ); % Imagen de salida = imagen en escala de grises (I).% Tenga en cuenta si la imagen de entrada ya era una imagen en escala de grises, canal de escala de grises% simplemente habría sido igual a la imagen de entrada, es decir, canal gris = Icanal_gris = rgb2gray ( I );
Está claro a partir de los ejemplos anteriores que se puede generar un canal simplemente extrayendo información específica de la imagen original o manipulando la imagen de entrada de alguna forma para obtener el canal deseado. Dollár y col . definió una función de generación de canal como Ω, que se puede usar para relacionar un canal (es decir, una imagen de salida) con la imagen original de la siguiente manera. [1]
- 𝐶 = Ω (𝐼), donde C es el canal e I es una imagen de entrada
La siguiente sección analiza otros tipos de canales relativamente complejos como se menciona en el artículo original de Dollár et al . La implementación de MATLAB se proporciona para algunos de los canales.
Varios tipos de canales
- Color y escala de grises: como se mencionó anteriormente, podemos extraer fácilmente canales de color y escala de grises de una imagen. Tenga en cuenta que los canales de color pueden ser RGB , LUV o HSV. Los canales de color LUV han demostrado ser los más informativos entre todos los espacios de color.
- Filtros lineales: este es un método simple para generar canales. Hay variedad de filtros lineales que nos permiten capturar diferentes aspectos de una imagen. Algunos ejemplos son el filtro de Gabor y la diferencia de gaussianos (DoG). El filtro Gabor y DoG capturan la información de los bordes y la textura de una imagen. A continuación se muestra un código de muestra para implementar DoG en MATLAB.
% Imagen de salida = DoG (I)% De diferencia de Gauss aplicado en la imagen de entradaH1 = fspecial ( 'gaussiano' , 25 , 0,5 ); % crea un gaussiano con señal 0.5 H2 = fspecial ( 'gaussiano' , 25 , 3 ); % crea un gaussiano con señal 3 DoG_filter = H1 - H2 ; % crea un DoG imagen = doble ( rgb2gray ( imread ( 'RGB_1.jpg' ))); DoG_channel = conv2 ( imagen , DoG_filter , 'mismo' ); % convolve DoG con imagen de entrada
- Canales no lineales: hay muchos canales no lineales. Los más populares son el detector de bordes astuto y la magnitud de gradiente. Canny proporciona la información del borde, mientras que la magnitud del gradiente proporciona la fuerza del borde.
- Transformaciones puntuales: como sugiere el nombre, las transformaciones puntuales operan en píxeles individuales. Los ejemplos incluyen operador logarítmico y operador exponencial. El operador logarítmico mejora los píxeles de baja intensidad, mientras que el exponencial hace todo lo contrario.
- Histograma de gradiente: es un histograma de una imagen donde los contenedores están determinados por el ángulo de gradiente. Cada píxel vota y el peso está determinado por la magnitud de su gradiente. El descriptor de histograma de gradientes orientados (HOG) es un descriptor popular desarrollado por Dalal y Triggs.
Tenga en cuenta que estos canales se pueden utilizar solos o en combinación entre sí.
Extracción de características
Una vez que se obtienen los canales de una imagen de entrada, se pueden extraer varias características de estos canales. Estas funciones se denominan funciones de canal y se pueden clasificar en dos tipos principales: [1]
- Características del canal de primer orden: características extraídas de un solo canal sumando píxeles en regiones rectangulares fijas. Estos se denotan como ƒ ( C ). Tenga en cuenta que es computacionalmente menos costoso extraer sumas locales de una imagen integral que de los píxeles de la imagen. De hecho, Dollár, et al, utilizaron imágenes integrales en su trabajo para extraer características.
- Funciones de canal de orden superior: funciones obtenidas mediante la combinación de dos o más funciones de canal de primer orden. Por ejemplo, las características de Haar.
Implementación de funciones de canal integral
El método ChnFtrs permite agrupar características que capturan la riqueza de diversos canales. Dollár y col. basaron sus resultados experimentales en características de primer orden, ya que las características de segundo orden no aportaron mucho valor agregado. [1] Los canales se vuelven a calcular a múltiples escalas para extraer un conjunto de características de canal que pueden representar todo el espacio de escala. Hay una caja de herramientas de MATLAB que se puede utilizar como guía para implementar el método ChnFtrs. Además, OpenCV tiene una implementación completa de ChnFtrs. [2] [3]
Actuación
Para estudiar el desempeño de ChnFtrs, Dollár et al . Primero evaluó la efectividad de varios canales cuando se usaban individualmente. Los canales estudiados fueron histograma de gradientes orientados (HOG), canal de histograma de gradiente (Hist), magnitud de gradiente (Grad), canales de color (RGB, HSV, LUV) y canal de escala de grises. El rendimiento se evaluó en términos de tasas de detección de peatones en el punto de referencia de 10 - 4 fppw (falso positivo por ventana). HOG resultó ser el canal más informativo en comparación con el resto de canales. La tasa de detección de HOG fue del 89%. Además, entre los canales de color (RGB, HSV y LUV), LUV tuvo la mejor tasa de detección del 55,8%. El canal de escala de grises fue menos informativo con una tasa de detección de solo el 30,7%. A continuación, evaluaron el rendimiento de varias combinaciones de canales, que es su método propuesto. La combinación de los canales LUV, Hist y Grad tuvo la tasa de detección más alta del 91,9%. Esta combinación de canales se utilizó además en sus experimentos con conjuntos de datos de INRIA y Caltech.
Se utilizaron alrededor de 30.000 funciones de primer orden para entrenar el clasificador AdaBoost. El detector ChnFtrs + AdaBoost se probó en imágenes completas de conjuntos de datos de INRIA y Caltech. El rendimiento se comparó con otros 12 detectores, incluido el HOG, que es el método más popular. ChnFtrs superó a todos excepto a LatSvm. La tasa de detección de ChnFtrs fue del 86% en el conjunto de datos INRIA y del 60% en un conjunto de datos Caltech más desafiante.
Mayor desarrollo
El método ICF (ChnFtrs) ha sido ampliamente explotado por investigadores de Computer Vision después de que el trabajo fuera publicado inicialmente por Dollar et al . De hecho, ahora se utiliza como detector de línea de base debido a su eficacia probada y rendimiento razonable. Varios autores han obtenido un rendimiento aún mejor al extender el grupo de características de varias maneras o al elegir cuidadosamente el clasificador y entrenarlo con un conjunto de datos más grande. El trabajo de Zhang et al también explotó las características integrales del canal en el desarrollo del detector Informed Haar para la detección de peatones. [4] Utilizaron la misma combinación de canales que Dollár et al. pero pudieron lograr aproximadamente un 20% más de rendimiento que el método ChnFtrs de referencia. El rendimiento adicional se debió al hecho de que proporcionaron un mejor conocimiento previo de su detector. [4] También es importante señalar que utilizaron características informadas similares a Haar, que son características de segundo orden según la terminología descrita en, [1] mientras que Dollár et al . demostraron sus resultados utilizando solo características de canal de primer orden, ya que su análisis mostró que las características de segundo orden apenas agregaron un aumento del 0.6% a su tasa de detección. Además, Benenson et al . fueron capaces de aumentar la velocidad de detección del método ChnFtrs de línea de base evitando la necesidad de cambiar el tamaño de la imagen de entrada. [5]
ChnFtrs es un método versátil que permite extraer características de múltiples canales, lo que permite capturar información diversa desde una sola imagen de entrada. El rendimiento de un detector de base desarrollado por Dollár et al . se ha demostrado que se mejora al agregar mejores conocimientos y capacitación previos con un conjunto de datos más grande.
Referencias
- ^ a b c d e f P. Dollár, Z. Tu, P. Perona y S. Belongie "Características del canal integral", BMVC 2009
- ^ http://vision.ucsd.edu/~pdollar/toolbox/doc/
- ^ http://docs.opencv.org/3.0-beta/modules/xobjdetect/doc/integral_channel_features.html
- ^ a b S. Zhang, C. Bauckhage y A. Cremers. Las funciones informadas similares a las de Haar mejoran la detección de peatones. En Visión por computadora y reconocimiento de patrones (CVPR), Conferencia IEEE 2014 en, páginas 947–954. IEEE, 2014
- ^ R. Benenson, M. Mathias, R. Timofte y LV Gool. Detección de peatones a 100 cuadros por segundo. En CVPR, 2012