En las semanas anteriores hemos explicado los conceptos básicos de un esquema general para la detección de objetos. Para ilustrar estos conceptos básicos hemos mostrado un ejemplo concreto que se basaba en utilizar LBP como descriptor de la imagen y en utilizar la regresión logística como método de clasificación. A lo largo de las próximas dos semanas veremos otros dos ejemplos concretos de detectores que nos permitirán ilustrar otros descriptores diferentes y otros métodos de clasificación también diferentes que también se han utilizado, que también se pueden utilizar, para la detección de objetos en una imagen. Además, en el segundo caso nos permitirá también introducir alguna variante respecto al esquema general de detección que you hemos visto. El primer ejemplo que veremos esta semana está basado en un detector de peatones que se presentó en el año 2005 en un famoso artículo y que, que vemos ilustrado aquí, y que se ha convertido en la base de muchos otros métodos posteriores, no solo para la detección de peatones sino también para detectar cualquier otro tipo de objeto en la imagen. Lo que vamos a ver en este vídeo son las principales diferencias de este detector respecto al ejemplo que hemos utilizado en las semanas previas basado en LBP y en la regresión logística y en el resto de vídeos de esta semana iremos detallando las propiedades, tanto del descriptor como del clasificador que se utiliza en este método. Repasemos pues el esquema general de un detector de objetos tal como lo hemos introducido en las semanas previas. Normalmente tenemos un primer paso en el que dentro de la imagen de entrada generamos zonas que son candidatas a contener una instancia del objeto que estamos buscando. Normalmente estas zonas, o lo que hemos visto en las semanas previas, se obtienen desplazando una ventana de tamaño fijo por toda la imagen a diferentes escalas. De esta forma se examinan todas las posibles localizaciones de un objeto en la imagen y genera una gran cantidad de candidatos. Posteriormente, en un segundo paso cada una de estas ventanas que hemos generado en el primer paso se analizan individualmente utilizando un clasificador, clasificador que nos permite determinar cuáles de estas ventanas son potencialmente instancias del objeto que estamos buscando y cuáles de estas ventanas podremos descartar porque no se corresponden con el objeto que estamos buscando. Finalmente normalmente es necesario un último paso de refinación de la decisión del, del clasificador para corregir algunas situaciones como por ejemplo que en la misma zona de la imagen hayamos producido varias detecciones que se solapan o descartar algunas falsas detecciones por ejemplo si detectamos un peatón en una zona que hemos identificado que corresponde al, al cielo. En el ejemplo de esta semana, que vamos a introducir durante esta semana tanto el primer paso como el último paso de este esquema son exactamente iguales a lo que you hemos explicado en las dos semanas previas. Las diferencias de lo que explicaremos esta semana respecto a lo previo se basan básicamente en en el paso del medio, en la clasificación de los candidatos. Como you vimos, en la clasificación de candidatos intervienen básicamente dos componentes. Por un lado un descriptor que nos permite representar el contenido de una ventana en forma de, de vector y un clasificador que nos va a permitir determinar cómo se fija la frontera en espacio del descriptor entre las ventanas que corresponden al objeto y las ventanas que corresponden al fondo. En las semanas previas el ejemplo que vimos utilizaba LBP como descriptor y la regresión logística como método de clasificación. En el detector que veremos durante estas semanas se cambian estos dos componentes. Como descriptor vamos a utilizar HOG que corresponde a las siglas en inglés de Histogram of Oriented Gradients y como método de clasificación vamos a utilizar SVM que corresponde también en inglés a las siglas Support Vector Machine, que es la notación que vamos a utilizar habitualmente porque es la más extendida. Y este clasificador es un clasificador que se utiliza ampliamente en muchas otras tareas tanto de visión por computador como de aprendizaje computacional y es un clasificador bastante eficiente y utilizado. En lo que queda de este vídeo vamos a introducir brevemente las principales características tanto del descriptor, del HOG, como del Support Vector Machine como clasificador. En los vídeos siguientes de esta semana you entraremos a describir los detalles tanto del descriptor como del clasificador. Bien, a diferencia de LBP que era un descriptor que se basaba en información de textura de la imagen, HOG es un descriptor que, que explota la información del gradiente de la imagen. Como podemos ver en esta imagen, el gradiente nos aporta información que puede ser relevante tanto para la detección como el reconocimiento de los objetos you que normalmente valores altos como podemos ver en esta imagen del gradiente se corresponden con los contornos o con la silueta del, de los objetos. El descriptor HOG permite aprovechar de forma bastante eficiente la información del gradiente a partir de combinar esta información en forma de histogramas locales que se calculan en celdas de pequeño tamaño que se distribuyen de forma uniforme por toda la imagen como podemos ver en este ejemplo de aquí. Estos histogramas, podemos ver un, un ejemplo de los histogramas para cada una de las celdas en, en esta imagen de, de ejemplo nos proporcionan información de las orientaciones de, de los contornos que dominan en cada una de las posiciones de la imagen. Así podemos ver por ejemplo aquí las piernas tenemos que las orientaciones dominantes son las verticales y en cambio aquí la orientación dominante es la, la diagonal. Esta información nos va a permitir o nos permite distinguir la forma de los objetos presentes en una imagen y es una buena base para detectar y reconocer los objetos. Como último paso y de forma muy similar a lo que se realizaba en LBP, los histogramas que se calculan localmente en diferentes posiciones de la imagen se agrupan en bloques de un tamaño un poco mayor y estos bloques sirven para normalizar la representación final y para hacerla más invariante a cambios de iluminación y a distorsiones en la imagen. Así la representación final será la, la, concatenación de la representación de todos estos bloques. Por lo que respecta al clasificador, recordemos que el objetivo de cualquier clasificador es encontrar una frontera que nos permita separar los ejemplos positivos, en este caso peatones de los ejemplos negativos, en este caso el fondo o cualquier otro objeto de la imagen. Igual que en la regresión logística Support Vector Machine es un clasificador lineal lo que quiere decir que la frontera de decisión, si tenemos un espacio bidimensional, como en este ejemplo simplificado será una línea y si tenemos un espacio de mayor dimensionalidad será un hiperplano. La diferencia entre la regresión logística y el Support Vector Machine reside en cómo se determina este hiperplano. En el caso del Support Vector Machine este hiperplano se encuentra de manera que se maximice lo que se denomina el margen entre los ejemplos positivos y los ejemplos negativos. ¿Qué significa maximizar el margen? Pues nos referimos a maximizar la distancia entre aquellos ejemplos positivos y negativos que en este caso serían estos de aquí que están más cercanos entre sí. Estos ejemplos se denominan vectores de soporte y el hiperplano que se encuentra busca separar al máximo estos ejemplos de la frontera. De esta forma estos son los ejemplos que se utilizan básicamente para determinar el, el hiperplano, y por lo tanto la frontera de decisión se concentra en poder separar aquellos casos más cercanos entre sí que por lo tanto son los más difíciles. Finalmente, otra ventaja de utilizar Support Vector Machine la vamos a encontrar en los casos que pueden ser bastante habituales, en que los datos de entrada no sean separables fácilmente de forma lineal. Con lo que encontrar un hiperplano que separe ejemplos positivos y negativos pueda ser complicado. Para estas situaciones Support Vector Machine lo que nos permite es aplicar una técnica que se conoce como el kernel trick y que you explicaremos en un vídeo posterior. Y esta técnica nos posibilita transformar el espacio de características original en otro espacio de características diferente que sí que va a ser fácilmente separable de forma lineal, de forma que podremos encontrar la frontera en este nuevo espacio pero la ventaja es que no vamos a necesitar calcular esta transformación de forma explícita. you veremos más adelante cómo se realiza esta transformación. Así, a lo largo de esta semana explicaremos en detalle un nuevo descriptor de la imagen, el descriptor HOG que se basa en información del gradiente y introduciremos también uno de los clasificadores generales más ampliamente utilizados, el Support Vector Machine. Esta combinación de descriptor y clasificador junto con el resto de pasos del esquema general de detección que you vimos en las semanas anteriores, permiten construir un detector de objetos bastante potente que ha sido ampliamente utilizado para detectar tanto peatones como otros tipos de objetos en, en la imagen y que además ha servido de base para construir y para diseñar otros detectores más especializados.