Videotracking: Difference between revisions
No edit summary |
No edit summary |
||
Line 22: | Line 22: | ||
5. Output gevonden tracks | 5. Output gevonden tracks | ||
} | } | ||
<code> | <\code> | ||
==== Frame laden ==== | ==== Frame laden ==== |
Revision as of 13:41, 21 November 2015
Video Tracking
Introductie
Video tracking is het volgen van objecten per frame van een video. In geval van een stilstaande camera wordt meestal één beginframe vergeleken met alle frames die erna komen. Het verschil tussen frame 1 en frame x zijn vervolgens alle bewegende objecten.
Het verschil tussen verschillende objecten en het bijhouden welk object waarheen gaat, wordt gemaakt door: ófwel van elk object een mesh te maken en die constant te vergelijken (dit werkt alleen als het object niet van vorm verandert), óf door het vergelijken van (voorspelde) snelheid en versnelling (dit werkt alleen goed als objecten niet te lang buiten beeld vallen of elkaar aanraken).
Bewegende objecten worden gedetecteerd met behulp van mean-shifting. Per frame wordt er iteratief gekeken naar het gemiddelde van de cluster van punten (bewegende pixels) om zo positie, snelheid en acceleratie vast te stellen.
Onderdelen van video tracking algoritme
Video tracking bestaat uit een aantal stappen, die in de introductie al kort beschreven zijn. In pseudo-code kan het als volgt beschreven worden:
Open video bestand of stream;
while ( not (einde video) )
{
1. Open 1 frame uit video
2. Detecteer interessante objecten uit het frame via image processing
3. Vergelijk met tracks uit vorig(e) frame(s)
4. Maak nieuwe tracks aan voor nieuwe objecten
5. Output gevonden tracks
}
<\code>
Frame laden
Video analyse wordt logischerwijs altijd per frame gedaan, daarom moet het algoritme in een while-loop uitgevoerd worden, waarin in elke iteratie één frame geanalyseerd wordt en vergeleken met resultaten van de vorige. Dit heeft als groot voordeel dat slechts één frame tegelijk in het geheugen hoeft te blijven.
Object detectie
Track bijhouden =
Nieuwe tracks
Output
Mesh tracking
Velocity prediction tracking
Video tracking in MATLAB
MATLAB heeft een standaard example dat als basis kan worden gebruikt voor video tracking.
typ >>multiObjectTracking in command window.
Typ >>edit multiObjectTracking voor de code.
Zie MathWorks site. [1]