2012-07-02 19 views
10

Supongamos que el usuario tiene un navegador moderno como Chrome y habilita la configuración necesaria de la cámara HTML5 (para que getUserMedia funcione), ¿cómo detectaría objetos predefinidos específicos mostrados en la vista de webcam, usando JavaScript?Detección de objeto de cámara en JavaScript

Por ejemplo, hay HTML5/ JS-based face detection que funciona muy bien, y vi otra demo de hand detection (que no funcionó bien aquí, podría estar haciendo algo mal). ¿Cuáles son los pasos necesarios para entrenar a la cámara para detectar otros objetos de elección (desarrollador)? Diga, quiero que la cámara reconozca la ubicación de una pluma roja; o tal vez el objeto más oscuro a la vista; o tal vez un iPhone negro saludó en la cámara, etc.

¡Gracias!

+13

Escribes una gran cantidad de software, así es como lo haces. – Pointy

+0

Me vinculé para hacer proyectos de código abierto existentes arriba, así que pensé que podría haber una posibilidad de que estos puedan ser entrenados con otros elementos visuales, o ¿cree que eso está fuera de cuestión? –

+0

Comparto la respuesta de Pointy, pero también ofrezco un punto de partida. En resumen, requerirá MUCHO software. http://www.ee.columbia.edu/ln/mmsp/papers/thesis-hluo.pdf –

Respuesta

5

La detección de objetos en sí misma es un asunto muy complicado. Debe saber cuál es su objeto, si es liso, flexible, tiene mucho contraste de color, se mueve rápidamente y muchas otras preguntas antes de poder determinar el mejor método.

Además, depende de si sólo desea detectar un objeto, o si desea realizar un seguimiento de que durante su movimiento delante de la cámara.

Voy a mencionar solo algunos métodos aquí, porque no tengo tiempo para elaborar mucho. Probablemente pueda encontrar mucha documentación en Google una vez que sepa los nombres, pero tenga en cuenta que puede necesitar algunas habilidades matemáticas si tiene que implementarlas usted mismo. Por lo tanto, esto implica generalmente:

  • descriptores Informática en los puntos interesantes. Mire los descriptores SIFT o HoG (Histogramas de degradados) en Google, estos son los más utilizados.
  • Creando un tipo de una estructura de reconocimiento, que, de nuevo, puede cambiar mucho, dependiendo de su objeto y sus descriptores. Los métodos populares incluyen Redes neuronales, Máquinas de vectores de soporte. Para objetos en movimiento, generalmente puede agregar técnicas relacionadas con gráficos, como Graph Cuts en la mezcla.

De nuevo, dependiendo del objeto, estos pueden no estar cerca del método correcto.

Por lo que yo sé, hay muy poco software disponible para todo eso en JavaScript, pero estaría encantado de saberlo si encuentra algo. De nuevo, aquí hay algunas sugerencias:

  • Su Detección de la cara muestra está usando algo muy popular llamado un Cascade clasificador, que está disponible en el aún más popular OpenCV biblioteca, y es considerado por la mayoría como el método de elección para la detección de rostros.
  • Si puede considerar mover parte del procesamiento a un servidor, puede usar OpenCV que tiene toneladas de algoritmos disponibles.

Espero haber sido capaz de ayudarle a empezar un poco;)

Cuestiones relacionadas