Tentang proyek ini
Pelacakan objek adalah tugas penting dalam bidang visi komputer. Proliferasi komputer bertenaga tinggi, ketersediaan kamera video berkualitas tinggi dan murah, dan meningkatnya kebutuhan akan analisis video otomatis telah menghasilkan banyak minat dalam algoritme pelacakan objek. Ada tiga langkah utama dalam analisis video: deteksi objek bergerak yang menarik, pelacakan objek tersebut dari bingkai ke bingkai, dan analisis trek objek untuk mengenali perilakunya. Oleh karena itu, penggunaan pelacakan objek berkaitan dengan tugas:
1. Pengenalan berbasis gerakan, yaitu, identifikasi manusia berdasarkan gaya berjalan, objek otomatis
deteksi, dll.;
2. Pengawasan otomatis, yaitu memantau tempat kejadian untuk mendeteksi aktivitas yang mencurigakan atau
kejadian yang tidak terduga;
3. Pengindeksan video, yaitu anotasi otomatis dan pengambilan video di multimedia
database;
4. Interaksi komputer manusia, yaitu pengenalan gerakan, pelacakan tatapan mata untuk data
masukan ke komputer, dll.;
5. Pemantauan lalu lintas, yaitu pengumpulan statistik lalu lintas secara real-time untuk mengarahkan arus lalu lintas.
6. Navigasi kendaraan yaitu, perencanaan jalur berbasis video dan kemampuan menghindari rintangan. Dalam bentuknya yang paling sederhana, pelacakan dapat didefinisikan sebagai masalah memperkirakan lintasan suatu objek dalam bidang gambar saat bergerak di sekitar pemandangan. Dengan kata lain, pelacak memberikan label yang konsisten ke objek yang dilacak dalam bingkai video yang berbeda. Selain itu, bergantung pada domain pelacakan, pelacak juga dapat memberikan informasi yang berpusat pada objek, seperti orientasi, area, atau bentuk objek.
Proyek ini adalah tentang metode deteksi dan pelacakan objek waktu nyata di mana kami menggunakan kamera CCTV untuk mengidentifikasi dan melacak target dalam jangkauan pandang kamera dari ruang pengawasan. Seiring dengan perangkat lunak pelacakan, sistem juga akan melacak objek di tempat kejadian menggunakan lengan robot yang dipasang laser. Lengan robot beroperasi sedemikian rupa sehingga menutupi setiap koordinat dalam bingkai video dengan gerakan pan-tilt-nya.
Tautan file CAD-
Kode
- 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
Ini adalah kode pemrosesan yang mentransfer koordinat mouse ke arduino dan mengatur servo sesuai dengan posisi penunjuk mouse///////////////////// Kode Pemrosesan / ///////////////////////////////import processing.serial.*;import processing.video.*;import java.awt .*;import gab.opencv.*;Rekam 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 =Serial baru (ini, portName, 9600); video =Tangkapan baru(ini, 640/2, 480/2); opencv =new OpenCV(ini, 640/2, 480/2); opencv.loadCascade(OpenCV.CASCADE_FRONTALFACE); video.mulai(); //Com7 =Serial baru(ini, Serial.list()[1], 9600); background(0,0,0);elips(lebar/2,lebar/2,10,10);}void draw(){ scale(2); opencv.loadImage(video); tidak ada Isi(); pukulan (0, 255, 0); strokeBerat (3); gambar(video, 0, 0 ); Rectangle[] wajah =opencv.detect(); println(wajah.panjang); 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]); //latar belakang(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
Kode ini melacak wajah seseorang dalam jarak pandang//////////////////// Kode Pemrosesan ////////////// ///////////////////import processing.serial.*;import processing.video.*;import java.awt.*;import gab.opencv.*;Rekam 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 =Serial baru (ini, portName, 9600); video =Tangkapan baru(ini, 640/2, 480/2); opencv =new OpenCV(ini, 640/2, 480/2); opencv.loadCascade(OpenCV.CASCADE_FRONTALFACE); video.mulai(); //Com7 =Serial baru(ini, Serial.list()[1], 9600); background(0,0,0);elips(lebar/2,lebar/2,10,10);}void draw(){ scale(2); opencv.loadImage(video); tidak ada Isi(); pukulan (0, 255, 0); strokeBerat (3); gambar(video, 0, 0 ); Rectangle[] wajah =opencv.detect(); println(wajah.panjang); 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]); //latar belakang(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
Ini adalah kode arduino untuk gerakan 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);} } }
Buka pustaka CV untuk Diproses
Instal perpustakaan ini agar kode ini berfungsihttps://github.com/atduskgreg/opencv-processing Suku cadang dan penutup khusus