Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Toezicht met tracking

Componenten en benodigdheden

Arduino-verwerking
× 1
Arduino UNO
× 1
Camera (algemeen)
× 1
Servo's (Tower Pro MG996R)
× 1

Apps en online services

Arduino IDE

Over dit project

Objecttracking is een belangrijke taak op het gebied van computervisie. De toename van krachtige computers, de beschikbaarheid van hoogwaardige en goedkope videocamera's en de toenemende behoefte aan geautomatiseerde video-analyse hebben geleid tot een grote belangstelling voor algoritmen voor het volgen van objecten. Er zijn drie belangrijke stappen in video-analyse:detectie van interessante bewegende objecten, het volgen van dergelijke objecten van frame tot frame en analyse van objecttracks om hun gedrag te herkennen. Daarom is het gebruik van objecttracking van belang bij de taken van:

1. Op beweging gebaseerde herkenning, dat wil zeggen, menselijke identificatie op basis van gang, automatisch object

detectie, enz.;

2. Geautomatiseerde bewaking, dat wil zeggen het bewaken van een scène om verdachte activiteiten te detecteren of

onwaarschijnlijke gebeurtenissen;

3. Video-indexering, dat wil zeggen, automatische annotatie en ophalen van de video's in multimedia

databases;

4. Mens-computerinteractie, dat wil zeggen, gebarenherkenning, oogbesturing voor gegevens

invoer voor computers, enz.;

5. Verkeersmonitoring, dat wil zeggen, realtime verzamelen van verkeersstatistieken om de verkeersstroom te sturen.

6. Voertuignavigatie, dat wil zeggen op video gebaseerde padplanning en mogelijkheden om obstakels te vermijden. In zijn eenvoudigste vorm kan tracking worden gedefinieerd als het probleem van het schatten van de baan van een object in het beeldvlak terwijl het rond een scène beweegt. Met andere woorden, een tracker wijst consistente labels toe aan de bijgehouden objecten in verschillende frames van een video. Daarnaast kan een tracker, afhankelijk van het trackingdomein, ook objectgerichte informatie verstrekken, zoals de oriëntatie, het gebied of de vorm van een object.

Dit project gaat over de realtime objectdetectie- en volgmethode waarbij we CCTV-camera's gebruiken om het doelwit in het kijkbereik van de camera vanuit de bewakingsruimte te identificeren en te volgen. Naast het volgen van software zal het systeem ook het object in de scène volgen met behulp van een op een laser gemonteerde robotarm. De robotarm werkt zo dat hij elke coördinaat in het videoframe bedekt door zijn pan-tilt-beweging.

CAD-bestandslink- 

Code

  • 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.inoArduino
Dit is verwerkingscode die de muiscoördinaten naar de Arduino overbrengt en de servo aanpast volgens de positie van de muisaanwijzer
///////////////////// Verwerkingscode / ////////////////////////////////import processing.serial.*;import processing.video.*;import java.awt .*;gab.opencv importeren.*;Video vastleggen;OpenCV opencv;Seriële 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 =nieuw serieel (dit, poortnaam, 9600); video =nieuwe Capture (this, 640/2, 480/2); opencv =nieuwe OpenCV (dit, 640/2, 480/2); opencv.loadCascade (OpenCV.CASCADE_FRONTALFACE); video.start(); //Com7 =nieuw serieel (this, Serial.list()[1], 9600); background(0,0,0);ellips(width/2,width/2,10,10);}void draw(){ scale(2); opencv.loadImage(video); geen vulling(); slag (0, 255, 0); slagGewicht (3); afbeelding (video, 0, 0); Rechthoek[] gezichten =opencv.detect(); println(gezichten.lengte); 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]); //achtergrond(0,0,0); //ellipse(width - inBytes[0]*width/180,inBytes[1]*width/180,10,10);}} }void captureEvent(Capture c) { c.read();}
facetracking_procesing_final_code.pdeArduino
Deze code volgt het gezicht van een persoon in het weergavebereik
///////////////////// Verwerkingscode ////////////// ///////////////////import processing.serial.*;import processing.video.*;import java.awt.*;import gab.opencv.*;Video vastleggen; OpenCV opencv;Seriële 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 =nieuw serieel (dit, poortnaam, 9600); video =nieuwe Capture (this, 640/2, 480/2); opencv =nieuwe OpenCV (dit, 640/2, 480/2); opencv.loadCascade (OpenCV.CASCADE_FRONTALFACE); video.start(); //Com7 =nieuw serieel (this, Serial.list()[1], 9600); background(0,0,0);ellips(width/2,width/2,10,10);}void draw(){ scale(2); opencv.loadImage(video); geen vulling(); slag (0, 255, 0); slagGewicht (3); afbeelding (video, 0, 0); Rechthoek[] gezichten =opencv.detect(); println(gezichten.lengte); 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]); //achtergrond(0,0,0); //ellipse(width - inBytes[0]*width/180,inBytes[1]*width/180,10,10);}} }void captureEvent(Capture c) { c.read();}
mouse_drag_fina_larduino_workinh_code.inoArduino
Dit is Arduino-code voor servobeweging
#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] =Serieel.lezen();if(inBytes[2] ==255){ Serieel.schrijven(inBytes,3); panangle =inBytes[0]; tiltangle =inBytes[1];panservo.write(panangle); tiltservo.write(tiltangle);} } }
Cv-bibliotheek openen voor verwerking
Installeer deze bibliotheek om deze code te laten werkenhttps://github.com/atduskgreg/opencv-processing

Aangepaste onderdelen en behuizingen


Productieproces

  1. C# met behulp van
  2. Raspberry Pi-temperatuurprofiel met LabVIEW
  3. Bewaking op afstand van het weer met Raspberry Pi
  4. SensorTag naar Blynk met Node-RED
  5. Raspberry Pi Ball-tracking
  6. Bewegingssensor met Raspberry Pi
  7. Automatisch volgen van zichtobjecten
  8. Robot die Raspberry Pi &Bridge Shield gebruikt
  9. Wifi-gestuurde robot met Raspberry Pi
  10. C# - Strings
  11. Bepalen van de nauwkeurigheid van dynamische objectvolging