Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Vigilancia mediante seguimiento

Componentes y suministros

Procesamiento Arduino
× 1
Arduino UNO
× 1
Cámara (genérica)
× 1
Servos (Tower Pro MG996R)
× 1

Aplicaciones y servicios en línea

Arduino IDE

Acerca de este proyecto

El seguimiento de objetos es una tarea importante dentro del campo de la visión por computadora. La proliferación de computadoras de alta potencia, la disponibilidad de cámaras de video de alta calidad y económicas, y la creciente necesidad de análisis de video automatizados ha generado un gran interés en los algoritmos de seguimiento de objetos. Hay tres pasos clave en el análisis de video:detección de objetos en movimiento interesantes, seguimiento de dichos objetos de un cuadro a otro y análisis de las pistas de los objetos para reconocer su comportamiento. Por lo tanto, el uso del seguimiento de objetos es pertinente en las tareas de:

1. Reconocimiento basado en el movimiento, es decir, identificación humana basada en la marcha, objeto automático

detección, etc .;

2. Vigilancia automatizada, es decir, monitorear una escena para detectar actividades sospechosas o

eventos improbables;

3. Indexación de videos, es decir, anotación automática y recuperación de videos en multimedia

bases de datos;

4. Interacción entre humanos y computadoras, es decir, reconocimiento de gestos, seguimiento de la mirada en busca de datos

entrada a computadoras, etc .;

5. Monitoreo del tráfico, es decir, recopilación en tiempo real de estadísticas de tráfico para dirigir el flujo de tráfico.

6. Navegación del vehículo, es decir, capacidad de planificación de ruta basada en video y evitación de obstáculos. En su forma más simple, el seguimiento se puede definir como el problema de estimar la trayectoria de un objeto en el plano de la imagen a medida que se mueve alrededor de una escena. En otras palabras, un rastreador asigna etiquetas consistentes a los objetos rastreados en diferentes cuadros de un video. Además, según el dominio de seguimiento, un rastreador también puede proporcionar información centrada en el objeto, como la orientación, el área o la forma de un objeto.

Este proyecto trata sobre el método de detección y seguimiento de objetos en tiempo real en el que usamos una cámara CCTV para identificar y rastrear el objetivo en el rango de visión de la cámara desde la sala de vigilancia. Junto con el seguimiento del software, el sistema también rastreará el objeto en la escena utilizando un brazo robótico montado en láser. El brazo robótico funciona de tal manera que cubre todas y cada una de las coordenadas del cuadro de video mediante su movimiento de giro e inclinación.

Enlace de archivo CAD-

Código

  • mouse_drag_fina_larduino_workinh_code.ino
  • facetracking_procesing_final_code.pde
  • mouse_drag_fina_larduino_workinh_code.ino
mouse_drag_fina_larduino_workinh_code.ino Arduino
Este es el código de procesamiento que transfiere las coordenadas del mouse al arduino y ajusta el servo de acuerdo con la posición del puntero del mouse
 /////////////////////// Código de procesamiento / //////////////////////////////// procesamiento de importación.serial. *; procesamiento de importación.video. *; importación java.awt . *; importar gab.opencv. *; Capturar video; OpenCV opencv; Serial Com7; float fpan, ftilt; int pan, tilt, x, y; int [] inBytes =new int [3]; void setup () {size (500,500); String portName =Serial.list () [0]; Com7 =nueva serie (este, portName, 9600); video =nueva captura (esto, 640/2, 480/2); opencv =nuevo OpenCV (esto, 640/2, 480/2); opencv.loadCascade (OpenCV.CASCADE_FRONTALFACE); video.start (); // Com7 =new Serial (this, Serial.list () [1], 9600); fondo (0,0,0); elipse (ancho / 2, ancho / 2,10,10);} vacío dibujar () {escala (2); opencv.loadImage (video); sin relleno(); carrera (0, 255, 0); strokeWeight (3); imagen (video, 0, 0); Rectángulo [] caras =opencv.detect (); println (caras.longitud); for (int i =0; i  0) {inBytes [0] =inBytes [1]; inBytes [1] =inBytes [2]; inBytes [2] =Com7.read (); if (inBytes [2] ==255) {println (inBytes [0] + "," + inBytes [1]); // fondo (0,0,0); // elipse (ancho - inBytes [0] * ancho / 180, inBytes [1] * ancho / 180,10,10);}}} vacío captureEvent (Capture c) {c.read ();} 
facetracking_procesing_final_code.pde Arduino
Este código rastrea la cara de una persona en el rango de visión
 ///////////////////// Código de procesamiento ////////////// /////////////////// importar procesamiento.serial. *; importar procesamiento.video. *; importar java.awt. *; importar gab.opencv. *; Capturar video; OpenCV opencv; Serie Com7; float fpan, ftilt; int pan, tilt, x, y; int [] inBytes =new int [3]; void setup () {size (500,500); String portName =Serial.list () [0]; Com7 =nueva serie (este, portName, 9600); video =nueva captura (esto, 640/2, 480/2); opencv =nuevo OpenCV (esto, 640/2, 480/2); opencv.loadCascade (OpenCV.CASCADE_FRONTALFACE); video.start (); // Com7 =new Serial (this, Serial.list () [1], 9600); fondo (0,0,0); elipse (ancho / 2, ancho / 2,10,10);} vacío dibujar () {escala (2); opencv.loadImage (video); sin relleno(); carrera (0, 255, 0); strokeWeight (3); imagen (video, 0, 0); Rectángulo [] caras =opencv.detect (); println (caras.longitud); for (int i =0; i  0) {inBytes [0] =inBytes [1]; inBytes [1] =inBytes [2]; inBytes [2] =Com7.read (); if (inBytes [2] ==255) {println (inBytes [0] + "," + inBytes [1]); // fondo (0,0,0); // elipse (ancho - inBytes [0] * ancho / 180, inBytes [1] * ancho / 180,10,10);}}} vacío captureEvent (Capture c) {c.read ();} 
mouse_drag_fina_larduino_workinh_code.ino Arduino
Este es el código arduino para el movimiento del servo
 #include  byte inBytes [3]; Servo panservo; Servo tiltservo; int panangle =90; int tiltangle =90; void setup () {Serial.begin (9600); panservo.attach (9); tiltservo.attach (11);} bucle vacío () {if (Serial.available ()> 0) {inBytes [0] =inBytes [1]; inBytes [1] =inBytes [2 ]; inBytes [2] =Serial.read (); if (inBytes [2] ==255) {Serial.write (inBytes, 3); panangle =inBytes [0]; tiltangle =inBytes [1]; panservo.write (panangle); tiltservo.write (tiltangle);}}} 
Abrir biblioteca de CV para procesar
Instale esta biblioteca para que este código funcione https://github.com/atduskgreg/opencv-processing

Piezas y carcasas personalizadas


Proceso de manufactura

  1. C # usando
  2. Perfil de temperatura de Raspberry Pi usando LabVIEW
  3. Monitoreo remoto del clima usando Raspberry Pi
  4. SensorTag a Blynk usando Node-RED
  5. Seguimiento de Raspberry Pi Ball
  6. Sensor de movimiento con Raspberry Pi
  7. Seguimiento automático de objetos por visión
  8. Robot que usa Raspberry Pi y Bridge Shield
  9. Robot controlado por Wifi usando Raspberry Pi
  10. C# - Cadenas
  11. Determinación de la precisión del seguimiento dinámico de objetos