Algoritma Multi-Track#

Multi-track adalah algoritma pelacakan banyak objek sederhana untuk CMUcam3 yang dikembangkan oleh Steve Sherman untuk Dr. Derek Paley di Collective Dynamics and Control Lab, University of Maryland College Park. Inti dari algoritma ini adalah memanggil simple color track pada area kecil dari frame gambar dan kemudian menggabungkan kembali bounding box yang dikembalikan untuk memberikan daftar objek yang ditemukan.

Pada gambar tiga saluran resolusi penuh yang tipikal, multitrack akan memakan waktu sekitar 450 ms untuk dieksekusi. Ini dibandingkan dengan 300ms untuk simple_color_track, dan 200ms untuk pencarian bright pixel dasar. Pada gambar saluran tunggal resolusi penuh, multitrack akan memakan waktu ~340ms, simple color track ~200ms, dan bright pixel sekitar 150ms. Saya yakin ada banyak optimasi yang dapat dilakukan, jadi jangan ragu untuk mengutak-atik dan meningkatkan algoritma.

Contoh pemanggilan multitrack:

multitrack_pkt_t tracker;
cc3_pixbuf_load();  //takes picture
multitrack(&tracker);

//make sure to free the memory after you are done to prevent a memory leak
free(tracker.objects);

tracker.entries=0;

Setiap multitrack_pkt_t didefinisikan sebagai berikut:

typedef struct {

  uint8_t entries; // the number of objects

  cc3_track_pkt_t* objects;//pointer to the array of objects
  cc3_track_pkt_t base; //the reference color data

  uint8_t divh; //number of rows of blocks

  uint8_t divw; //number of columns of blocks

  uint16_t tolerance; //max distance track_pkts must be to merge

  uint8_t minpix; // minimum number of pixels to not be filtered

  uint8_t mindensity; //minimum density to not be filtered

  uint8_t minwidth; //minimum dimension of a track pkt

} multitrack_pkt_t;

Dokumentasi lebih lanjut seharusnya tersedia dalam sumber, serta contoh berkas main, tetapi jika Anda memiliki pertanyaan jangan ragu untuk bertanya di forum.