The Mission
The Place
Ik doe mijn stageopdracht bij de Embedded Systems Research Group van de Department of Electrical and Computer Engineering van de University of Auckland (UoA). Mijn kantoor bevindt zich in gebouw 301, gelegen aan 38 Princes Street, in hartje Auckland (zie het kaartje hieronder).
The Plan
Ik werk onder leiding van Prof. Zoran Salcic aan een project met smart security cameras. Het einddoel van dit project is het ontwikkelen van een netwerk van camera’s, dat zelfstandig personen kan volgen die door een bepaald gebied (bijvoorbeeld een gebouw of een bedrijventerrein) lopen. Iedere camera moet over motion detection en object tracking hardware beschikken, zodat de camera zelfstandig een persoon kan volgen. Zodra de persoon buiten het blikveld van een camera komt, moet deze camera dit — zonder tussenkomst van een mens of PC — aan de andere camera’s doorgeven, zodat een van deze camera’s de persoon verder kan volgen. Het hele netwerk van camera’s moet ook bestuurbaar zijn met een operator interface (de operator moet individuele camera’s kunnen besturen en aan kunnen geven welk object gevolgd moet worden).
The Work
Het systeem zoals hierboven beschreven, is nog lang niet af. Er is tijdens eerdere projecten van studenten al wel een smart cam gemaakt (een Sony netwerkcamera, die wordt aangestuurd door ’smart camera software’ of hardware), maar deze camera kan niet samenwerken met andere camera’s of een operator interface; hij kan alleen objecten (personen) volgen die niet ál te snel bewegen. De software-implementatie van deze camera is het uitgangspunt voor mijn stageopdracht. Ik moet deze implementatie eerst verbeteren (lees: sneller en stabieler maken) en vervolgens laten samenwerken met een andere camera en een operator interface. Deze operator interface moet ik zelf ontwerpen en programmeren in SystemJ.
SystemJ is een taal die ze in deze vakgroep zelf ontworpen hebben. Het is een reactieve uitbreiding van Java. Reactief wil zeggen, dat de taal bedoeld is om makkelijk en snel te kunnen reageren op gebeurtenissen in de omgeving van het apparaat waarop het SystemJ-programma draait (zoals mensen die voorbij lopen, of een commando van de operator). Dit is het eerste échte project waarin SystemJ gebruikt wordt, dus ik zal ongetwijfeld de nodige bugs tegenkomen…
Als dit allemaal werkt (twee camera’s die mensen kunnen volgen en met elkaar kunnen ‘praten’, plus een operator interface die ze commando’s kan sturen), kan het systeem uitgebreid worden naar meer dan twee camera’s en kan er gewerkt worden aan het volgen van meerdere objecten tegelijk. Ook kan ik dan samen met twee andere studenten (Jordan en David, die aan dit project gaan werken als hun eindejaarsopdracht) gaan werken aan een hardware-implementatie van het hele systeem. Hiervoor moet de huidige implementatie voor één camera verbeterd worden en moet mijn ontwerp voor het softwaresysteem voor twee of meer camera’s overgezet worden naar hardware.
The Progress
- De software-implementatie (in C++) voor één camera werkt een stuk stabieler dan het origineel en ongeveer twee keer zo snel. De software kan de JPEG videobeelden van de Sony netwerkcamera real time decomprimeren en een persoon (mij) volgen met bijna 12 frames per seconde (fps). Dit komt overeen met een normale loopsnelheid.
- Er is een operator interface (in Java) die de beelden van twee Sony camera’s kan laten zien en die de camera’s direct kan besturen (dus de camera bijdraaien en zoomen). Hiervoor wordt de smart camera software tijdelijk uitgeschakeld. De camera’s kunnen nog niet samenwerken en de operator kan nog niet aangeven welk object gevolgd moet worden.
- De operator interface is nu geïmplementeerd in SystemJ en werkt bijna net zo snel als de Java-versie.
- De camera’s kunnen nu een klein beetje samenwerken; de een kan aan de ander doorgeven dat er een object aankomt dat gevolgd moet worden. Er is nog niets geregeld voor uitzonderingsgevallen (bijv: Er zijn meerdere objecten om te volgen; welke gaan we volgen?).
- De operator interface kan met meer dan twee camera’s tegelijk werken. Ook kan er nu naast de camera van Sony (tegelijkertijd) een camera van een ander merk gebruikt worden. Iedere camera kan maar met één andere camera samenwerken.