#acl BecariosGrupo:delete,read,write,admin All:read = Descripcion del entrenamiento = == Introducción == La deteccion de objetos mediante vision esta implementado en un sistema basado en aprendizaje. En este sistema se aprenden los razgos característicos de una clase a través de un conjunto de ejemplos etiquetados como positivos y negativos. Se parte de un conjunto de ejemplos positivos y negativos, y mediante un algoritmo de aprendizaje se aprenden los rasgos representativos de cada conjunto de entrenamiento. Utilizamos las técnicas de clasificación basadas en límites de decision. Con este fin se utiliza las support vector machine (SVM), en particular el modelo lineal. Las imágenes se transforman en otro espacio con el objeto de reducir su dimensionalidad. Como resultado, el clasificador aprende el patrón o modelo del objeto deseado. El clasificador utilizado es HOG. El descriptor HOG está basado en el análisis de contornos mediante el cálculo de gradientes. La idea subyacente que presenta este descriptor es que la apariencia y forma de un objeto en una imágen puede ser representado por la distribución de la orientación de los gradientes. El descriptor HOG es invariante ante transformaciones geométricas y fotométricas === Los pasos de entrenamiento son === 1. Se crea el set de imagenes normalizadas positivas y negativas 2. Del set de imagenes se crea un subconjunto de test positivo y negativo para verificar el proceso de deteccion. 3. De las imagenes negativas se realiza 10 crop random de imagenes negativas para realizar el entrenamiento. 4. Se obtienen los HOG de las imagenes positivas y negativas 5. Se entrena un clasificador. Si es la primera vez que se entrena el modelo se debe establecer cual es el modelo y los parametros de entrenamiento mas optimos para el set. 6. Se busca falsas positivas (hard examples) con el modelo obtenido en las imagenes negativas y se guardan. Si las imagenes falsas positivas son demasiadas, se puede extraer una porcion. 7. Se suman las imagenes falsas positivas a las negativas y se vuelve a entrenar el modelo (modelo hard) 8. Se realiza el testeo del descriptor. 9. Se realiza el testeo del proceso de deteccion. === Programas === ==== Se extraen 10 imagenes aleatorias crop de las imagenes negativas ==== La funcion esta implementada en el directorio crop_random. '''parametros''' -data listado de imagenes negativas -count cantidad de imagenes -size tamaño minimo de la extraccion (66x130) -directory_out Directorio de salida de las imagenes '''Ejemplo:''' crop_random/crop -data listas/list_neg.txt -count 10 -size 66x130 -directory_out ../Imagenes/NEG ==== Calcula el hog para las imagenes positivas y negativas_crop ==== Esta implementado en el directorio hog '''parametros''' -data listado de imágenes a extraer el hog -param parametros de hogs -directory_out Directorio de salida de los hogs '''Ejemplo:''' hog/hog -param parameters -data listas/list_pos.txt -directory_out datapos ==== Se entrena la SVM Lineal. Se obtiene el modelo ==== libsvm/libsvm-2.89/svm-train -c 0.1 -t 0 -e 0.1 -h 0 -m 800 -v 5 svm/svm_train.txt > c01.txt libsvm/libsvm-2.89/svm-train -c 0.1 -t 0 -e 0.1 -h 0 -m 800 svm/svm_train.txt svm/svm.model ==== Se busca en las imagenes negativas personas con el modelo obtenido ==== Esta implementado en el directorio buscar_neg. Se le tiene que pasar los parametros y el listado de las imagenes negativas. '''Ejemplo:''' buscar_neg/buscar_neg parameters listas/list_neg.txt ==== Se crean los hog de las imagenes falsas positivas obtenidas en el paso anterior ==== Con estas nuevas imagenes realizaremos un entrenamiento hard ==== Entreno el modelo con las imagenes falsas positivas obtenidas ==== ==== Creo el nuevo modelo hard ==== ==== Testeo las imagenes con el nuevo model hard. La serie de imagenes a utilizar es para test. ==== Esta implementado en el directorio test_images. Obtemnemos un archivo con los valores svm de las imagenes testeadas. Debemos realizarlo tanto para las imagenes de testeo positivas (70x134) como para las imagenes negativas (600x400) '''Ejemplo:'''test_images/test_images parameters listas/list_test_pos.txt ==== Realiza un conteo e imprime los resultados. Los valores son almacenado en valores.txt ==== Se encuentra implementado en el directorio contar. '''Para mas informacion ver Makefile'''