RR.O.P. - proyecto de OpenCV RaspRobot (7 / 14 paso)

Paso 7: Crear y configurar el sistema de visión de computadora (CVS)

La biblioteca OpenCV es donde se realiza todas las operaciones de procesamiento de vídeo y la información extraída de este procesamiento es hecho haciendo decisiones robótica plataforma y otros componentes que permiten al sistema dinámico. Su versión es la 2.2.8 OpenCV que presente ejemplos y todas las funciones disponibles en versiones para Windows, MAC y Linux.

Era necesario hacer la instalación con el comando:

Actualización del sistema: sudo apt-get update
Instalar actualizaciones: sudo apt-get upgrade
Instalar la librería OpenCV: sudo apt-get instalar python-opencv

El CVS (Computer Vision System):

La figura de este paso muestra el conjunto de las funciones del sistema. Estas funciones se ejecutan secuencialmente y repetidamente para valores reales de las características dinámicas del objeto (coordenadas y tamaño) hasta seis veces (o seis variaciones) una segunda vez. Es decir, cada segundo se generan hasta seis valores que serán procesados y comparados, racionalización de la plataforma.

Utilice la figura de este paso para cada descripción del paso:

  1. Primero fue necesario capturar (o recibir) la imagen, específicamente el marco que contiene la imagen (fotograma). El tamaño es 160 x 120 píxeles. La estructura en general (por ejemplo, 640 píxeles de ancho y 480 píxeles de alto), causado una ralentización en el proceso de reconocimiento cuando la imagen se transmite de forma remota. El valor predeterminado de sistema de color RGB, este sistema de color está representada en el marco de la webcam obtenido a través de los colores básicos: rojo (Red), verde (Green) y azul (azul). Estos colores están representados en un vector dimensional de pixel por pixel, por ejemplo, el color rojo es 0com mentionada valores (0, 255, 0), respectivamente representados para cada canal. Es decir, cada píxel tiene su valor RGB representado por 3 bytes (rojo verde y azul).
  2. Después de la imagen capturada, la conversión de sistema de color RGB a color HSV (tonalidad, saturación y valor) fue emprendida, puesto que este modelo describe similar al reconocimiento de los colores del ojo humano. Puesto que el sistema RGB (rojo, verde y azul) tiene los colores basados en combinaciones de los colores primarios (rojo, verde y azul) y el sistema HSV definen colores como su color, brillo y brillo (tono, saturación y valor), facilitando la extracción de información. En el diagrama el paso 2 muestra la conversión de RGB a HSV, usando el "cvtColor" nativa OpenCV, que convierte la imagen de entrada de un sistema de color de entrada a otra función.
  3. Con la imagen en el modelo HSV , fue necesario encontrar los valores correctos de color mínimo y máximo de HSV del objeto que se seguirá. Para guardar estos valores, se hicieron dos vectores con VHS y VHS máximo objeto de color como valores: brillo de mínima saturación (62) (63) de Hue (42) mínima mínima máxima tonalidad (92) máxima saturación (255) máximo brillo (235). Así que el siguiente paso para generar una imagen binaria, puede verse limitada la información pertinente sólo en el contexto de estos valores. Estos valores son necesarios para limitar el patrón del color del objeto. Se utilizó una función de comparación de los valores de píxel con los valores estándar del vector insertado. El resultado fue una imagen binaria proporcionar un solo valor para cada píxel.
  4. Realizar la segmentación, lo que resulta en la imagen binaria, se observa que ruido todavía están presentes en el marco. Estos ruidos son elementos que dificultan la segmentación (incluyendo obtención del tamaño real) del objeto. Para solucionarlos (o intente arreglar) este problema, fue necesario aplicar una transformación morfológica a través de operadores en el marco, para que los píxeles que no cumplían con el estándar deseado fueron quitados. Para ello, se utilizó el operador morfológico erosión, que realizó una "limpia" en el marco, reducir el ruido contenido en él.
  5. Entonces fue utilizado para la función de "Momentos" , que calcula los momentos de contorno positivo (blanco) mediante una integración de todos los píxeles en el contorno. Esta función sólo es posible en un marco ya binarizado y sin ruido, para que no se cambia el tamaño del contorno del objeto por stray pixels en el marco, que dificultan y redundancia en información.
    momentos = cv2.moments (imgErode, True)

    En el ejemplo propuesto, era necesario encontrar el área del contorno y sus coordenadas de ubicación en el marco de hacer los cálculos de reposicionamiento del chasis. El cálculo de la superficie del objeto realiza la suma binaria de positivo, generar la variable M00 y registrado en la variable "zona":
    área = momentos ['m00']
    La especificidad del contorno se refiere a un objeto, no un polígono. Este valor se encuentra un área aproximada de píxeles positivos (blanco) que componen el objeto. Si este valor es null, no se respetan la existencia de un color del objeto tratado (si el color "verde") en el marco. Usando esta función le ayudará a lograr el movimiento del robot acercarse y distanciamiento del objeto, intentar tratar el problema de la profundidad. Es decir, el hecho de que el objeto se acerca o distanciar excesivamente chasis.

    Y de la específica zona de fue posible, definir las coordenadas del objeto en este marco. Para las coordenadas del objeto fue utilizados parámetros obtenidos función momentos que encontró su coordinada. Pero esto fue coordinado basándose en el centroide del objeto, es encontrado solamente si el área del objeto es mayor que cero. Usando esta característica era importante que el movimiento de ajuste horizontal y vertical del robot con el fin de aumentar el grado de libertad y minimizar la restricción del movimiento del objeto para ser identificado. Usando el área del parámetro objeto y combinado con M00 x e y momentos de la función de los parámetros, era posible encontrar las coordenadas (x, y).

Así los valores en la coordenada (x, y) se refiere a la colocación de la segmentación encontrada del objeto en relación con el marco y para facilitar la interpretación de la información que se se extrae de la información de coordenadas, una función que dibuja un círculo en el centroide fue aplicado al objeto.

El resultado:

Paso 6 se demostrará en el transcurso de los próximos pasos será necesario explicar la configuración de los motores y otras partes antes de proceder con esta parte.

El script adjunto "SVC.py" le ayuda a comenzar a entender cómo funciona el sistema. Si problemas dan su frambuesa Pi, te recomiendo revisar las bibliotecas instaladas o contacto.
Cómo ejecutar un python script en frambuesa Pi?? aqui!

¿Se procederá con el robot de montaje? Manos a la obra!

Artículos Relacionados

Color de seguimiento utilizando el Kit de desarrollo de Intel Edison

Color de seguimiento utilizando el Kit de desarrollo de Intel Edison

Me lancé a crear un proyecto de OpenCV en Intel Edison usando Node.js para el seguimiento de objetos. OpenCV solo tiene C, C++, Python y interfaces de Java ¿cómo puede usted trabajar con solo JavaScript? OpenCV nunca se ha portado a JavaScript en su
Primeros pasos con OpenCV y Edison Intel

Primeros pasos con OpenCV y Edison Intel

Como robots comienzan a poblar el planeta necesitan una manera de "ver" el mundo de manera similar a lo que hacemos los seres humanos y ser capaces de utilizar estos datos de la visión para tomar decisiones. Hoy en día un sistema de visión de or
Frente a la detección y seguimiento con Arduino y OpenCV

Frente a la detección y seguimiento con Arduino y OpenCV

versiones20 de febrero de 2013: En respuesta a una pregunta de estudiante Hala Abuhasna si desea utilizar la clase Serial. net, utilice la Convención de nomenclatura "\\\.\\COMn" y reemplazar n por un número > 9 para definir el puerto com par
RasPi + OpenCV = seguimiento de cara

RasPi + OpenCV = seguimiento de cara

Este instructable le mostrará todo lo que necesitas saber sobre la instalación de su nueva cámara RasPi a su frambuesa Pi e implementar cara de OpenCV bibliotecas de seguimiento. El tutorial no se asume que sabes programar o entender el funcionamient
Proyecto ANPR usando el Edison de Intel

Proyecto ANPR usando el Edison de Intel

Este es un proyecto de reconocimiento de placa de número automático usando openCV y el tablero de Edison de Intel.Un resumen:Capturar una imagen, pre-proceso él en opencv luego pásela tesseract OCR para obtener los caracteres de la imagen. Mostrará l
Usando Python y la librería OpenCV detección de rostros

Usando Python y la librería OpenCV detección de rostros

Este proyecto utilizará la librería OpenCV y python para facilitar la detección de la caraPaso 1: Lo que usted necesita1. la Junta de desarrollo de Intel Edison2. una cámara web, utilizamos la luz onda LW-IC5003. Python y la librería openCV instalado
DETECCIÓN de objetos y seguimiento OPENCV, C++ de VISUAL STUDIO 2010 y ARDUINO

DETECCIÓN de objetos y seguimiento OPENCV, C++ de VISUAL STUDIO 2010 y ARDUINO

IntroducciónEn este proyecto la cámara envía fotogramas de vídeo para el Visual Studio C++ que contiene biblioteca de Open CV funcionando en nuestro ordenador.Si Visual Studio C++ programa detecta la imagen del objeto desde la webcam y luego calcula
Cómo realizar el seguimiento de tu Robot con OpenCV

Cómo realizar el seguimiento de tu Robot con OpenCV

ACTUALIZACIÓN: Permite hacer Robots, mi hogar digital hackerspace, fue comprado por RobotShop. No quiero entrar, pero los nuevos propietarios prohibición yo y la mayoría de los miembros veteranos. Dijo la mayoría de los enlaces allí estará rota. Por
Seguimiento con el proceso y OpenCV se enfrentan

Seguimiento con el proceso y OpenCV se enfrentan

visión por computador es increíble. Procesos computacionales permite la oportunidad de ver el mundo que les rodea. Es necesario para un montón de aplicaciones robóticas, el aprender de máquina o proyectos interactivos. OpenCV es una biblioteca de vis
Aceleración de OpenCV DSP

Aceleración de OpenCV DSP

Aceleración de OpenCV DSP - GSoC 2010Su objetivo es acelerar algoritmos de OpenCV en plataformas OMAP3 utilizando la en-viruta C64x + DSP. Utiliza OpenCV 2.1 como referencia y es dependiente de la misma. La primera versión de este proyecto demuestra
Proyecto de artesanía de papel DIY: Cómo hacer papel multicolor pavo real para la decoración del hogar

Proyecto de artesanía de papel DIY: Cómo hacer papel multicolor pavo real para la decoración del hogar

Un interesante Proyecto de artesanía de papel de DIY puede consistir en una amplia variedad de fácil Hacer lo mismo papel Craft Ideas para hacer en casa. Este proyecto paso a paso tutorial con instrucciones sobre cómo hacer multicolor pavo real de pa
Proyectos para niños: Cómo hacer un DIY 8 señaló la estrella Ninja

Proyectos para niños: Cómo hacer un DIY 8 señaló la estrella Ninja

Compañeros amantes Instructable! Yo traigo para ti un extraordinario Modelo de papel de Origami arte y aprender Cómo hacer una estrella Ninja puntas de bricolaje 8. Una idea de arte papel absolutamente fácil para los niños, para hacer, este Origami M
Blinky papel Robot papel - 1er circuito proyecto

Blinky papel Robot papel - 1er circuito proyecto

Este pequeño proyecto es una introducción rápida y barata a los circuitos de papel. Él también hace uso de robusto autónomo personas de papel de mi anterior ' ible (Blinky es un pequeño robot feliz con un alegre rojo sobre su cabeza. El foco rojo se
Proyecto de arte reciclado: Cómo hacer organizador de escritorio DIY

Proyecto de arte reciclado: Cómo hacer organizador de escritorio DIY

Hola amigos! Esta vez vuelve con otro fantástico reciclado manualidades proyecto de bricolaje. Aprender cómo hacer un organizador de escritorio DIY con cartulina con un tutorial paso a paso con instruccionesy este fabuloso Útil portalápices es un art