Multi-Track 알고리즘#

Multi-track은 University of Maryland College Park의 Collective Dynamics and Control Lab에서 Derek Paley 박사를 위해 Steve Sherman이 개발한 CMUcam3용 간단한 다중 물체 트래킹 알고리즘입니다. 이 알고리즘의 핵심은 이미지 프레임의 작은 영역에 대해 간단한 컬러 트랙을 호출한 다음 반환된 경계 상자들을 다시 병합하여 발견된 물체 목록을 제공하는 것입니다.

일반적인 3채널 전체 해상도 이미지에서, multitrack은 실행하는 데 약 450 ms가 걸립니다. 이는 simple_color_track의 300ms, 기본 밝은 픽셀 검색의 200ms와 비교됩니다. 전체 해상도 단일 채널 이미지에서, multitrack은 ~340ms, 간단한 컬러 트랙은 ~200ms, 밝은 픽셀은 약 150ms가 걸립니다. 분명히 개선할 최적화가 많이 있을 것이므로, 자유롭게 알고리즘을 손보고 개선하십시오.

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;

각 multitrack_pkt_t는 다음과 같이 정의됩니다:

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;

추가 문서는 샘플 main 파일과 함께 소스에서 확인할 수 있어야 하지만, 질문이 있으면 포럼에서 자유롭게 문의하십시오.