Presentación:
Propósito:
Propósito:
EL propósito del proyecto es la detección de obstáculos en tiempo real a través de una cámara utilizando diferentes técnicas de visión computacional. Además de enmarcar dichos objetos sin perder tanto tiempo en la ejecución del sistema.
Justificación:
Hoy en día existen diferentes necesidades o usos que necesiten detectar obstáculos en tiempo real. Por ejemplo:
Advertencia de colisión:
Automóvil: Esta necesidad esta mas enfocada a automoviles, de tal manera que se percaten de algun señalamiento, botes, baches o simplmente para sacar la vuelta a otro vehiculo ya sea de manera autonoma, que el mismo automovil se condusca por si mismo o para ayudar a algun conductor distraido.
Maniobrar robots:
En la actualidad existen diferentes usos para los robots o vehículos especiales, por ejemplo:
http://www.ultimahora.com/notas/560951-Prueban-robot-en-volcan-espanol- |
Se utilizan robots tipo vehículo para obtener información de los volcanes en lugares donde una persona no podría estar o podría correr peligro, pero la mayoría de las ocasiones estas máquinas trabajan a distancia con una persona operando, la detección de obstáculos le ayudaría al operador a evitar rocas, hoyos entre otras cosas y no simplemente fiarse de la vista.
http://www.cadenaser.com/tecnologia/fotogaleria/curiosity-aterriza-marte/csrcsrpor/20120806csrcsrtec_1/Zes |
Diseño del Software
Pasos que se siguieron:
1-. Se obtuvo la imagen de entrada que se obtendría del la cámara en ese instante.
2-. Se elimino ruido de esa imagen, ya que las tomas de la cámara llegan con una cantidad considerable de ruido.
3-. Se paso la imagen a escala de grises.
4-. Posteriormente se binarizo.
5-. Teniendo la imagen binarizada solo se tomo 3/4 de la imagen para procesarla, lo demas se tomo como fondo, ademas para la utilización posterior los colores se invirtieron, de blanco se paso a negro y de negro se paso a blanco.
6-. Se obtuvieron los contornos de la imagen ya procesada.
7-. Se separaron los contornos de tal manera de obtener los diferentes objetos u obstáculos.
8-. Se enmarcaron los objetos, poniendo un rectángulo a su alrededor.
9-. Se etiquetaron.
10-. Se muestra en la pantalla la imagen final.
Librerías
Opencv:
- cv.QueryFrame() guarda la imagen tomada de la cámara.
- cv.Smooth() reduce el ruido.
- cv.CvtColor() cambia la imagen a escala de grises u otros colores.
- cv.Threshold() binariza la imagen.
- cv.FindContours() obtiene los contornos.
Para las direcciones, la separación de los contornos de los objetos, el cambio de la imagen de blanco a gris y viceversa y la toma de 3/4 de la imagen, se usaron funciones propias.
Desempeño
Umbrales altos en eliminación de ruido
Con promedio de 0.580681741238 segundos en procesar un solo frame, esto nos indica que para tomar el siguiente frame tiene que esperar 0.58 segundos, esto no es tan óptimo aunque sea menos de un segundo ya que si es muy importante el trabajo puede ser un problema.
Umbrales bajos en eliminación de ruido
Como observamos la evidencia indica que entre mejores filtros , la aplicación tarda menos en ejecutarse, con menos umbrales aproximadamente tarda en promedio 0.597395379203.
Como observamos al iniocio tarda casi un segundo en procesar la imagen
Trabajos a futuro
Tener en cuenta la luz del lugar
Optimizar los diferentes umbrales para la eliminación de ruido y la binarizacion
Uso de mas de una sola cámara.
Demo:
Dentro de una habitación
En la calle:
Todas las pruebas se realizo con las siguientes características de la computadora:
Repositorio : https://github.com/alejandroave/provis
Referencias:
1-. "Curiosity" |ultima modificación: 7 abril de 2013 | http://es.wikipedia.org/wiki/Curiosity.
2-. "Ejemplos Básicos con OpenCv"| Sebest | 29 de julio de 210 | http://www.sebest.com.ar/?q=node/79.
3-. "Manipulación del color en OpenCV" | ucoopencv| ultima modificación: 11 de enero de 2011 | http://ucoopencv.wikispaces.com/Espacios+de+Color.
4-. "Filtro de detección de bordes (Canny) usando OpenCV" |por Oscar García| 2 julio de 2011 | http://blogrobotica.linaresdigital.com/2011/02/filtro-de-deteccion-de-bordes-canny.html.
Tu readme requiere mejora y revisión de ortografía antes de que llegue a calificar el repositorio; van 9 pts por la presentación.
ResponderEliminar9 pts por el reporte; en el readme uno esperaría ver los datos del autor. Es mala idea dejar código no relevante comentado en una versión final de un archivo fuente. 8 pts por el código.
ResponderEliminar