Bienvenido: Ingresar
location: Diferencias para "Vision/hog_makefile"
Diferencias entre las revisiones 3 y 6 (abarca 3 versiones)
Versión 3 con fecha 2010-08-26 15:57:08
Tamaño: 606
Comentario:
Versión 6 con fecha 2010-10-12 14:46:23
Tamaño: 4490
Comentario:
Los textos eliminados se marcan así. Los textos añadidos se marcan así.
Línea 3: Línea 3:
= Descripcion del entrenamieno = = Descripcion del entrenamiento =
Línea 5: Línea 5:
*Se extraen 10 imagenes aleatorias crop de las imagenes negativas == 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.
Línea 7: Línea 8:
*Calcula el hog para las imagenes positivas y negativas_crop 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.
Línea 9: Línea 10:
*Se entrena la SVM Lineal. Se obtiene el modelo 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.
Línea 11: Línea 12:
*Se busca en las imagenes negativas personas con el modelo obtenido 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
Línea 13: Línea 14:
*Se crean los hog de las imagenes falsas positivas obtenidas en el paso anterior. === Los pasos de entrenamiento son ===
Línea 15: Línea 16:
*Entreno el modelo con las imagenes falsas positivas obtenidas  1. Se crea el set de imagenes normalizadas positivas y negativas
Línea 17: Línea 18:
*Creo el nuevo modelo hard  2. Del set de imagenes se crea un subconjunto de test positivo y negativo para verificar el proceso de deteccion.
Línea 19: Línea 20:
*Testeo las imagenes con el nuevo model hard. La serie de imagenes para test.  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'''

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

None: Vision/hog_makefile (última edición 2010-10-12 14:46:23 efectuada por AlvaroSchapiro)