Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Vigilância usando rastreamento

Componentes e suprimentos

Processamento Arduino
× 1
Arduino UNO
× 1
Câmera (genérica)
× 1
Servos (Tower Pro MG996R)
× 1

Aplicativos e serviços online

Arduino IDE

Sobre este projeto


O rastreamento de objetos é uma tarefa importante no campo da visão computacional. A proliferação de computadores de alta potência, a disponibilidade de câmeras de vídeo baratas e de alta qualidade e a crescente necessidade de análise automatizada de vídeo gerou um grande interesse em algoritmos de rastreamento de objetos. Existem três etapas principais na análise de vídeo:detecção de objetos em movimento interessantes, rastreamento de tais objetos quadro a quadro e análise das trilhas do objeto para reconhecer seu comportamento. Portanto, o uso de rastreamento de objetos é pertinente nas tarefas de:

1. Reconhecimento baseado em movimento, ou seja, identificação humana baseada na marcha, objeto automático

detecção, etc .;

2. Vigilância automatizada, ou seja, monitorar uma cena para detectar atividades suspeitas ou

eventos improváveis;

3. Indexação de vídeo, ou seja, anotação automática e recuperação dos vídeos em multimídia

bancos de dados;

4. Interação humano-computador, ou seja, reconhecimento de gestos, rastreamento do olhar para os dados

entrada para computadores, etc .;

5. Monitoramento de tráfego, ou seja, coleta em tempo real de estatísticas de tráfego para direcionar o fluxo de tráfego.

6. Navegação de veículos, ou seja, recursos de planejamento de caminho com base em vídeo e prevenção de obstáculos. Em sua forma mais simples, o rastreamento pode ser definido como o problema de estimar a trajetória de um objeto no plano da imagem à medida que ele se move ao redor de uma cena. Em outras palavras, um rastreador atribui rótulos consistentes aos objetos rastreados em diferentes quadros de um vídeo. Além disso, dependendo do domínio de rastreamento, um rastreador também pode fornecer informações centradas no objeto, como orientação, área ou forma de um objeto.

Este projeto é sobre detecção de objetos em tempo real e método de rastreamento no qual usamos câmera CCTV para identificar e rastrear o alvo no alcance de visualização da câmera da sala de vigilância. Junto com o rastreamento de software, o sistema também rastreará o objeto na cena usando um braço robótico montado a laser. O braço robótico opera de tal forma que cobre cada uma das coordenadas no quadro de vídeo por seu movimento pan-tilt.



Link do arquivo 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 é o código de processamento que transfere as coordenadas do mouse para o arduino e ajusta o servo de acordo com a posição do ponteiro do mouse
 ///////////////////// Processing Code / //////////////////////////////////// import processing.serial. *; import processing.video. *; import java.awt . *; import gab.opencv. *; Capturar vídeo; 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 =novo Serial (este, portName, 9600); vídeo =nova captura (esta, 640/2, 480/2); opencv =novo OpenCV (este, 640/2, 480/2); opencv.loadCascade (OpenCV.CASCADE_FRONTALFACE); video.start (); // Com7 =novo Serial (this, Serial.list () [1], 9600); fundo (0,0,0); elipse (largura / 2, largura / 2,10,10);} void draw () {escala (2); opencv.loadImage (vídeo); Sem preenchimento(); curso (0, 255, 0); strokeWeight (3); imagem (vídeo, 0, 0); Rectangle [] faces =opencv.detect (); println (faces.length); para (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]); // fundo (0,0,0); // elipse (largura - inBytes [0] * largura / 180, inBytes [1] * largura / 180,10,10);}}} void captureEvent (Capture c) {c.read ();} 
facetracking_procesing_final_code.pde Arduino
Este código rastreia o rosto de uma pessoa no intervalo de visualização
 ///////////////////// Processing Code //////////////// ///////////////////// import processing.serial. *; import processing.video. *; import java.awt. *; import gab.opencv. *; Capture 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 =novo Serial (este, portName, 9600); vídeo =nova captura (esta, 640/2, 480/2); opencv =novo OpenCV (este, 640/2, 480/2); opencv.loadCascade (OpenCV.CASCADE_FRONTALFACE); video.start (); // Com7 =novo Serial (this, Serial.list () [1], 9600); fundo (0,0,0); elipse (largura / 2, largura / 2,10,10);} void draw () {escala (2); opencv.loadImage (vídeo); Sem preenchimento(); curso (0, 255, 0); strokeWeight (3); imagem (vídeo, 0, 0); Rectangle [] faces =opencv.detect (); println (faces.length); para (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]); // fundo (0,0,0); // elipse (largura - inBytes [0] * largura / 180, inBytes [1] * largura / 180,10,10);}}} void captureEvent (Capture c) {c.read ();} 
mouse_drag_fina_larduino_workinh_code.ino Arduino
Este é o código arduino para o movimento do 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);} void loop () {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);}}} 
Biblioteca de currículos aberta para processamento
Instale esta biblioteca para que este código funcionehttps://github.com/atduskgreg/opencv-processing

Peças personalizadas e gabinetes


Processo de manufatura

  1. C# usando
  2. Perfil de temperatura Raspberry Pi usando LabVIEW
  3. Monitoramento remoto do clima usando Raspberry Pi
  4. SensorTag para Blynk usando Node-RED
  5. Rastreamento Raspberry Pi Ball
  6. Sensor de movimento usando Raspberry Pi
  7. Rastreamento automático de objetos de visão
  8. Robô usando Raspberry Pi e Bridge Shield
  9. Robô controlado por Wi-Fi usando Raspberry Pi
  10. C# - Strings