Tips en trucs#

Demomodus#

Met de demomodus kun je de CMUcam4 demonstreren zonder een masterprocessor. In de demomodus voert de CMUcam4 het “TW”-commando (Track Window) uit en stuurt vervolgens twee standaard hobbyservo’s richting het object dat wordt gevolgd, terwijl het het gevolgde object tegelijkertijd op een standaard tv weergeeft. Zodra de CMUcam4 de demomodus binnengaat, verlaat hij de demomodus pas nadat hij is gereset. Volg de onderstaande stappen om de demomodus binnen te gaan:

  1. Houd de resetknop op de CMUcam4 ingedrukt

  2. Houd de gebruikersknop op de CMUcam4 ingedrukt

  3. Laat de resetknop los (laat de gebruikersknop niet los)

  4. Wacht totdat de rode hulp-LED gaat branden (2 seconden)

  5. Wacht totdat de rode hulp-LED begint te knipperen op 10 Hz en laat vervolgens de gebruikersknop los

    • De tv zou moeten aangaan (je zou een splashscreen op de tv moeten zien) als de CMUcam4 op een tv is aangesloten

  6. De CMUcam4 past zich nu de komende 5 seconden aan de lichtomstandigheden aan

    • Plaats het object dat je wilt volgen de komende 5 seconden niet voor de CMUcam4

  7. Wacht totdat de rode hulp-LED stopt met knipperen op 10 Hz

    • De CMUcam4 is nu klaar met het aanpassen aan de lichtomstandigheden

    • De pan- en tilt-servopinnen zouden 1500 μs-pulsen bij 50 Hz moeten uitvoeren

  8. Plaats het object dat je wilt volgen voor de CMUcam4 en druk op de gebruikersknop

    • Als de rode hulp-LED begint te knipperen op 10 Hz, onderzoek dan de verbinding van de OV9665-cameramodule

      • De OV9665-cameramodule is mogelijk beschadigd en moet hoogstwaarschijnlijk worden vervangen

  9. Je zou nu het gevolgde object (of iets dergelijks) op de tv moeten zien als de CMUcam4 op een tv is aangesloten

    • De pan- en tilt-servo’s zullen, indien aangesloten, ook proberen de camera richting het gevolgde object te sturen

  10. Probeer deze procedure met verschillende objecten in verschillende omgevingen om te zien wat het best werkt

  11. De CMUcam4 draait nu in demomodus

Druk op de resetknop om de demomodus te verlaten.

Voor niet-omgekeerde werking van de pan-servo moeten pulslengtes lager dan 1500 µs de X-positie van de cameramodule naar rechts bewegen (vanuit het gezichtspunt van de cameramodule) en pulslengtes hoger dan 1500 µs moeten de X-positie van de cameramodule naar links bewegen (vanuit het gezichtspunt van de cameramodule).

Voor niet-omgekeerde werking van de tilt-servo moeten pulslengtes lager dan 1500 µs de Y-positie van de cameramodule naar beneden bewegen (vanuit het gezichtspunt van de cameramodule) en pulslengtes hoger dan 1500 µs moeten de Y-positie van de cameramodule naar boven bewegen (vanuit het gezichtspunt van de cameramodule).

Halt-modus#

Met de halt-modus kun je de CMUcam4 stoppen terwijl deze nog met een Arduino is verbonden. In de halt-modus verbruikt de CMUcam4 zeer weinig vermogen en voorkomt hij niet dat een Arduino wordt geprogrammeerd door de seriële poort van de Arduino te blokkeren. De halt-modus is alleen nodig als de CMUcam4 het Arduino-programmeerproces verstoort. Als dat niet zo is, is de halt-modus onnodig - dit is meestal het geval. Zodra de CMUcam4 de halt-modus binnengaat, verlaat hij de halt-modus pas nadat hij is gereset. Volg de onderstaande stappen om de halt-modus binnen te gaan:

  1. Houd de resetknop op de CMUcam4 ingedrukt

  2. Houd de gebruikersknop op de CMUcam4 ingedrukt

  3. Laat de resetknop los (laat de gebruikersknop niet los)

  4. Wacht totdat de rode hulp-LED gaat branden (2 seconden)

  5. Laat de gebruikersknop los

  6. De CMUcam4 is nu voor onbepaalde tijd gestopt

Druk op de resetknop om de halt-modus te verlaten.

Opmerkingen over betere tracking#

Betere tracking met auto-gain en witbalans#

Auto-gain is een interne besturing die het helderheidsniveau van het beeld aanpast om het best bij de omgeving te passen. Het probeert de lichte en donkere delen in het beeld te normaliseren zodat ze de algehele helderheid van een handmatig aangepast beeld benaderen. Dit proces itereert over vele frames terwijl de camera automatisch zijn helderheidsniveaus aanpast. Als er bijvoorbeeld een lamp wordt aangezet en de omgeving helderder wordt, zal de camera proberen de helderheid aan te passen om het algehele beeld te dimmen.

Witbalans daarentegen probeert de kleurgains van de camera te corrigeren. Het omgevingslicht in je beeld is mogelijk niet zuiver wit. In dat geval ziet de camera kleuren anders. De camera begint met een initiële schatting van hoeveel gain elk kleurkanaal moet krijgen. Indien actief, past witbalans deze gains frame voor frame aan zodat de gemiddelde kleur in het beeld een grijze kleur benadert. Empirisch is gebleken dat deze “gray world”-methode relatief goed werkt. Het probleem met gray-world-witbalans is dat als een effen kleur het gezichtsveld van de camera vult, de witbalans de gains langzaam zo instelt dat de kleur grijs lijkt en niet zijn ware kleur. Wanneer de effen kleur vervolgens wordt verwijderd, heeft het beeld ongewenste kleurgains totdat het zijn grijze gemiddelde opnieuw vaststelt.

Bij het volgen van kleuren, zoals in de demomodus, wil je misschien auto-gain en witbalans een korte periode laten draaien en ze vervolgens uitschakelen. Terwijl ze gedurende ongeveer 5 seconden aan staan, kan de camera zijn helderheidsgain en kleurgains instellen op wat hij gepast acht. Door ze vervolgens uit te schakelen, stopt de camera met het onnodig wijzigen van zijn instellingen als gevolg van een object dat dicht bij de lens wordt gehouden, schaduwen, enz. Als auto-gain en witbalans niet waren uitgeschakeld en de camera zijn instellingen voor de RGB- of YCbCr-waarden wijzigde, kunnen de nieuw gemeten waarden buiten de oorspronkelijk geselecteerde kleurtrackingdrempels vallen.

De cameramodule vereist dat auto-gain is ingeschakeld om witbalans te kunnen gebruiken.

YUV (YCbCr)-kleurruimte#

YCbCr is een andere kleurruimtedefinitie dan de bekendere RGB-ruimte. In YCbCr worden de belichtingsgegevens in een apart kanaal opgeslagen. Vanwege deze eigenschap kan de camera in de YCbCr-modus beter bestand zijn tegen veranderingen in belichting. Omdat het een andere kleurruimte is, zien beelden in YCbCr er niet uit als standaard RGB-beelden wanneer ze rechtstreeks door een frame-dumpprogramma worden toegewezen. De RGB-kanalen worden toegewezen aan CrYCb. Dus in de YCbCr-modus is de waarde die als de rode parameter wordt geretourneerd eigenlijk Cr, de groene parameter is Y en de blauwe parameter is Cb. Dus als je een rood object wilt volgen, moet je naar een gedumpt frame kijken om te zien waar de kleuren van dat object naartoe worden toegewezen in YCbCr. Het zou dan mogelijk moeten zijn de Cb- en Cr-grenzen te vinden terwijl je een zeer soepele Y-grens geeft, wat aantoont dat belichting niet erg belangrijk is. Houd er bij gebruik van YCbCr rekening mee dat wat betreft alle CMUcam4-I/O, Rood wordt toegewezen aan Cr, Groen aan Y en Blauw aan Cb.

Merk op dat de RGB-kanalen zo worden toegewezen dat je CrYCb krijgt, niet YCbCr.

Over de cameramodule#

Vanaf het inschakelen kan de camera tot 5 seconden nodig hebben om zich automatisch aan het licht aan te passen. Drastische veranderingen in de omgeving, zoals lampen die aan en uit worden gezet, kunnen een vergelijkbare heraanpassingstijd veroorzaken. Bij gebruik van de camera buiten zal het vanwege de krachtige IR-emissies van de zon, zelfs op relatief bewolkte dagen, waarschijnlijk nodig zijn om ofwel een IR-filter of een neutraaldichtheidscamerafilter te gebruiken om het omgevingslichtniveau te verlagen.

De functies die het cameraboard biedt, zijn bedoeld om de gebruiker een gereedschapskist van kleurvisiefuncties te geven. Werkelijke toepassingen kunnen sterk variëren en worden overgelaten aan de verbeelding van de gebruiker. De mogelijkheid om het zichtbare venster te wijzigen, kleur- en lichtstatistieken te verzamelen en kleuren te volgen kan door de hostprocessor worden verweven om functionaliteit op een hoger niveau te creëren.