Сравнете сходството на обекти с различни дължини в IDL

Добре, така че имам масив от обекти. Всеки обект има вектор от x и y координати в пиксели.

Трябва ефективно да ги прегледам и сравня един с друг и да кажа, че са едни и същи. (Те са разпределени в няколко времеви рамки, така че има разлика в дължината и може да има няколко пиксела разлика във всяка точка)

Това, което направих досега и което работи добре, е ефективно да начертая кутия около текущия цикъл и след това да сравня бъдещите времеви рамки. Вземете обектите с тази относителна позиция. (С малко излишък отстрани, за да се отчете движението)

След това изчислявам евклидовото разстояние между двата обекта. Това работи добре за някои, но пропуска кадри и включва случайни фалшиви резултати.

За да се опитам да противодействам на това, изчислявам кръстосаната корелация на координатите и след това използвам това като отместване на по-дългия масив, когато изчислявам евклидовото число.

Това обаче изглежда не работи толкова добре, колкото се надявах, и чрез проучване разбирам, че Евклидовият може да не е най-добрият начин.

В идеалния случай искам оценка за сходство между двете и да мога да кажа „да, това е същият обект по-късно“

Какво предлагат хората?


person IainS    schedule 18.06.2013    source източник
comment
Въпросът ви е неясен. Какво представляват рамките? Какво е токова верига?   -  person sds    schedule 24.06.2013


Отговори (2)


Звучи сякаш се опитвате да определите дали множество колекции от координати време/пространство (известни още като „следи“) вероятно съответстват на един и същ обект. Това е известно в някои среди като „проследяване на обекти“, за което има доста литература (напр. Проследяване на обект: Проучване - CRCV - Университет на Централна Флорида). Този документ посочва друга литература, която може да обясни различни алгоритми за прогнозиране на бъдещи местоположения на обектите.

Мисля, че това, което искате да направите, е да екстраполирате известните точки във времето/пространството, така че да можете да сравните точките в определени моменти. (Евклидовото разстояние може да е добре.) Във вашата функция за разстояние вероятно искате да претеглите сравнението на „предсказаните“ местоположения по-малко, отколкото бихте направили за вашето сравнение на действителни (уловени) местоположения.

Надявам се, че не съм изтълкувал погрешно намерението ти.

person kc2001    schedule 26.06.2013
comment
Това е добре благодаря. Не бях попадал на тази конкретна литература. Проблемът ми е, че внедрих евклидовото разстояние между точките в реално време/пространство. Въпреки това може да има доста движение и припокриване на обекти между кадрите и намирам някои (подобряващи) фалшиви резултати. Някакви предположения? - person IainS; 26.06.2013
comment
Можете ли да предоставите конкретен, кратък примерен проблем или това ще включва твърде много данни? - person kc2001; 27.06.2013
comment
Твърде много данни. Ще се опитам да дам кратко описание: Да кажем, че имам 10 времеви рамки и да кажем, че има общо 50 обекта в тези рамки. Нека вземем обект А от първия кадър. Искам да отида напред към следващия кадър и да видя дали обект А е там. Което моите решения в момента правят, с едно предупреждение. Обектите могат да се движат и да се припокриват между кадрите. т.е. обект A може да е 5 пиксела вляво от мястото, където е бил в последния кадър и най-важното е, че обект B може да се е преместил, така че да има по-близко евклидово разстояние до обект A от предишния кадър, отколкото действителният обект A. - person IainS; 27.06.2013

Мисля, че трябва да организирате данните си като k-d дърво.

person sds    schedule 24.06.2013