2009-11-20 12 views
11

Estoy buscando el método más rápido y más eficiente para detectar un objeto en un video en movimiento. Aspectos a tener en cuenta sobre este video: es muy granulado y de baja resolución, también el fondo y el primer plano se mueven simultáneamente.¿Cuál es el mejor método para la detección de objetos en video en movimiento de baja resolución?

Nota: Estoy tratando de detectar un camión en movimiento en una carretera en un video en movimiento.

métodos que he intentado:

El entrenamiento de un Haar Cascade - He intentado la formación de los clasificadores para identificar el objeto mediante la adopción de copping múltiples imágenes del objeto deseado. Esto probó producir muchos detecciones falsas o ningún tipo de detección (el objeto deseado nunca se detectó). Usé alrededor de 100 imágenes positivas y 4000 negativas.

Puntos clave de SIFT y SURF: cuando intento usar cualquiera de estos métodos basados ​​en funciones, descubro que el objeto que quería detectar tiene una resolución demasiado baja, por lo que no hay suficientes funciones para hacer una precisión detección. (El objeto deseado nunca se detectó)

Coincidencia de plantillas: este es probablemente el mejor método que he probado. Es el más preciso, aunque el más travieso de todos. Puedo detectar el objeto para un video específico usando una plantilla recortada del video. Sin embargo, no hay precisión garantizada porque todo lo que se sabe es la mejor coincidencia para cada cuadro, no se realiza ningún análisis en la plantilla de porcentaje que coincide con el marco. Básicamente, solo funciona si el objeto está siempre en el video, de lo contrario creará una detección falsa.

Así que esos son los 3 grandes métodos que he probado y todos han fallado. Lo que funcionaría mejor es algo así como la coincidencia de plantillas, pero con la escala y la invarianza de rotación (lo que me llevó a probar SIFT/SURF), pero no tengo idea de cómo modificar la función de coincidencia de plantillas.

¿Alguien tiene alguna sugerencia sobre cómo realizar mejor esta tarea?

+2

¿Cómo se orienta el camión? ¿Cambia su forma/orientación? ¿La cámara cambia de posición? ¿Es este un video único o un sistema que necesita trabajar en muchas condiciones diferentes? – endolith

+0

Estoy de acuerdo con endolith, es crucial que defina el problema con más detalles. La elección del método afectará la solidez. – Ivan

+0

La vista del camión por su lado y se mueve horizontalmente. La forma del vehículo no cambia mucho, por lo que la coincidencia de plantillas funciona, pero todavía quiero que mi método sea robusto. Básicamente, la cámara se desplaza hacia la izquierda y hacia la derecha, siguiendo unos pocos vehículos diferentes, con algunos otros vehículos pasando por el fondo. Esencialmente, quiero que esto funcione en más situaciones que una (pero principalmente se trata de video de calidad similar). Lo menos que quiero lograr es un detector de objetos en movimiento dentro de un video en movimiento. – monky822

Respuesta

0

¿Qué tan baja resolución estamos hablando? ¿Podría también elaborar sobre el objeto? ¿Es un color específico? ¿Tiene un patrón? Las respuestas afectan lo que deberías estar usando.

Además, podría estar leyendo mal la declaración de coincidencia de la plantilla, pero parece que la está sobreentrenando (probando en el mismo video que extrajo el objeto de).

+0

La resolución es 720x480, pero la calidad del video es muy pobre. El video está muy pixelado en esta resolución. En cuanto a la coincidencia de plantilla, no estoy entrenando nada. Solo estoy usando un objeto recortado del video y simplemente buscando cada marco. – monky822

+0

Bueno, lo estás entrenando, solo en un conjunto de datos. La plantilla coincidirá bien si la iluminación y la orientación del objeto apenas cambian. En el momento que lo haga, la precisión realmente disminuirá. De nuevo, utiliza todas las pistas que puedas - esp. color si está allí. – UsAaR33

0

Una Haar Cascade va a requerir importantes datos de entrenamiento de su parte, y será deficiente para cualquier ajuste en la orientación.

Su mejor opción podría ser combinar la coincidencia de plantillas con un algoritmo similar al camshift in opencv (5,7MB PDF), junto con un modelo probabilístico (tendrá que averiguar esto) de si el camión todavía está en la imagen.

2

This vehicle detection paper utiliza un banco filtro Gabor para la detección de bajo nivel y luego utiliza la respuesta para crear el espacio características donde se entrena a un clasificador SVM .

La técnica parece funcionar bien y al menos es invariable a escala. Aunque no estoy seguro acerca de la rotación.

1

Sin conocer su aplicación, mi impresión inicial es normalized cross-correlation, especialmente porque recuerdo haber visto un correlacionador transversal puramente óptico que tenía el seguimiento del vehículo como aplicación de ejemplo.(Rastreando un vehículo mientras pasa utilizando solo componentes ópticos y una imagen del costado del vehículo - Desearía poder encontrar el enlace.) Esto es similar (si no idéntico) al "emparejamiento de plantilla", que dices que funciona , pero esto no funcionará si las imágenes se giran, como usted sabe.

Sin embargo, hay un related method based on log-polar coordinates que funcionará independientemente de la rotación, la escala, el corte y la traslación.

Imagino que esto también permitiría rastrear que el objeto también haya abandonado la escena del video, ya que la correlación máxima disminuirá.

5

Aplicar optical flow a la imagen y luego segmentar según el campo de flujo. El flujo de fondo es muy diferente del flujo de "objeto" (que principalmente diverge o converge dependiendo de si se mueve hacia o lejos de usted, con algún componente lateral también).

He aquí un proyecto de cierta edad, que funcionaba de esta manera:

http://users.fmrib.ox.ac.uk/~steve/asset/index.html

Cuestiones relacionadas