Veelgestelde vragen#
Algemene vragen#
Wat is er uniek aan de CMUcam1?#
Traditioneel zijn er snelle computers nodig om camerabeelden vast te leggen en te verwerken. Het is ook noodzakelijk de software te schrijven om deze verwerking uit te voeren. Hierdoor is het moeilijk om visie als sensor in eenvoudige systemen te gebruiken.
Het CMUcam1-visiesysteem gebruikt een snelle, goedkope microcontroller om alle hogesnelheidsverwerking van de cameragegevens af te handelen en bevat software om eenvoudige visietaken uit te voeren. Omdat de gebruiker ervoor kan kiezen alleen high-level-informatie met lage bandbreedte uit het visiesysteem uit te voeren, zoals het rode object bevindt zich op positie X-Y, is het mogelijk voor een eenvoudige processor zoals een PIC-microcontroller om deze gegevens te lezen en een kleine robot aan te sturen bij taken zoals het achtervolgen van een gekleurde bal. Het CMUcam1-visiesysteem maakt het mogelijk de complexiteit van camera-interfacing te negeren en visie net als elke andere sensor (d.w.z. sonar) te gebruiken die vaak in robotsystemen wordt gebruikt.
Wat is de framesnelheid van de CMUcam1?#
De snelste framesnelheid is 16,7 frames per seconde. Dit betekent dat de CMUcam1 je ongeveer 17 keer per seconde de positie van een object kan vertellen. Met behulp van het seriële softwareprotocol kun je dit desgewenst vertragen.
Welke baudrates ondersteunt de CMUcam1?#
Vanaf de nieuwste versie van de firmware (v1.12) kan de CMUcam1 communiceren met baudrates van 9600, 19200, 38400 of 115200. De baudrate wordt geselecteerd via jumperinstellingen op het board.
Hoe upgrade ik mijn CMUcam1-firmware?#
Als je momenteel firmware v1.11 gebruikt, is er geen reden om te upgraden, tenzij je ondersteuning voor de lagere baudrates nodig hebt. Versie 1.11 ondersteunt 38400 en 115200 baud. Versie 1.12 ondersteunt die baudrates en voegt ondersteuning voor 9600 en 19200 baud toe. Om je firmware te upgraden, moet je het flashgeheugen in je processorchip herprogrammeren. Als je een programmer hebt, kun je de huidige versie downloaden van onze Downloads-pagina en de processor zelf opnieuw flashen.
Werkt de CMUcam1 buiten?#
De CMUcam1 werkt buiten, maar niet in direct zonlicht. De CMOS-camera die we gebruiken heeft geen hoogwaardig IR-filter, waardoor zonlicht de rode pixels verzadigt en het beeld in direct zonlicht in wezen monochroom wordt. Het is mogelijk een extern filter toe te voegen om de werking buitenshuis te verbeteren. We hebben een korte uiteenzetting die je laat zien hoe verlichtingsomstandigheden de CMUcam1 beïnvloeden, die je hier kunt downloaden.
Kan ik aangepaste code schrijven voor de CMUcam1?#
Zeker. Om dit te doen, vraag je ons om de firmware-broncode, bestel je een C-programmeeromgeving voor de Ubicom-chip en ga je ervoor. Wanneer we je de firmware-broncode sturen, sturen we je ook een samenvatting van hoe de code is gestructureerd en informatie over de programmeeromgeving die we gebruiken.
Hoeveel vermogen verbruikt de CMUcam1?#
Het complete systeem verbruikt ongeveer 200 milliampère.
Wat is het gezichtsveld van de CMUcam1?#
Dit hangt af van de lens die je op de CMOS-camera monteert. Als je de CMOS-camera bestelt zoals deze standaard wordt verkocht, krijg je een gezichtsveld van ongeveer 25 graden, wat relatief smal is. Je kunt echter lenzen met een grotere hoek op maat bestellen wanneer je je CMOS-camera bestelt.
Welke processor gebruikt de CMUcam1?#
Onze beeldverwerkingscode bevindt zich op een microcontrollerchip van Ubicom die op 75 MHz draait, de SX28AC. Deze chip leest alle pixels van de CMOS-camera via een parallelle interface en doet alle verwerking in realtime. Vervolgens communiceert het de resultaten naar je microcontroller of computer via een seriële-poortinterface.
Welke CMOS-camera gebruikt de CMUcam1?#
We gebruiken een CMOS-camera die de OmniVision OV6620 CMOS-camera-op-een-chip gebruikt. We gebruiken een CMOS-cameraboard met modelnummer C3088 waarop de sensor, een connector en een lens zijn gemonteerd.
Werkt de CMUcam1 met andere CMOS-camera’s?#
Nee. Momenteel zijn het hardware- en softwaresysteem specifiek ontworpen om te werken met de OmniVision OV6620 CMOS-camera. Het systeem zou volledig opnieuw moeten worden ontworpen om met een andere camera te werken.
Is er ergens waar ik antwoorden kan vinden op aanvullende vragen die ik heb?#
Ja. We hebben wat informatie over meer technische vragen op deze pagina.
Waar kan ik meer te weten komen over computer vision in het algemeen?#
De CMUcam1 voert de eenvoudige computer-vision-taak uit waarvoor hij is ontworpen, in een klein, goedkoop pakket. Het algemene computer-vision-probleem van het proberen willekeurige objecten onder willekeurige omstandigheden te herkennen, is echter nog steeds een zeer actief onderzoeksonderwerp en verre van een opgelost probleem.
Als je meer wilt leren over computer vision, wil je misschien deze links proberen:
Technische vragen#
Wat is de exacte volgorde van stappen die de demomodus uitvoert bij het inschakelen?#
Hier is de exacte volgorde die de demomodus uitvoert bij het inschakelen:
Reset de camera.
Wacht 5 seconden totdat de automatische aanpassing van de cameraparameters stabiliseert.
Stuur de camera-registerstring:
CR 18 32 19 32die de YCrCb-modus selecteert en auto-gain uitschakelt.Voer het
TW-commando uit.
Waarna de camera een servo begint aan te sturen richting de middenmassa van de kleur die door het TW-commando is gedetecteerd.
Wat is de exacte volgorde van stappen die het “TW”-commando uitvoert?#
Hier is de exacte volgorde die het TW-commando uitvoert:
Verklein het venster tot 1/4 van de grootte (in elke dimensie) van het huidige venster naar een nieuw venster gecentreerd op het midden van het huidige venster.
Roep get mean aan.
Herstel het venster naar de volledige beeldgrootte.
Stel de max- en min-waarde voor elk kleurkanaal in op het gemiddelde voor dat kanaal +/- 30.
Waarna de camera pakketten van type C, M of N begint te streamen.
Onder welke omstandigheden gaat de tracking-LED branden wanneer de automatische modus is ingeschakeld?#
De LED gaat branden wanneer de geretourneerde pixel_count >= 2. De geretourneerde pixel_count = (actual_pixel_count + 4) / 8.
Als de CMOS-camera een resolutie van 352 x 288 pixels heeft, waarom is de resolutie van de CMUcam1 dan slechts 80 x 143?#
De kwestie hier is hoe digitale kleurencamera’s werken. In alle digitale kleurencamera’s (zelfs de zeer dure - behalve sommige gebaseerd op een zeer geavanceerde technologie) krijg je slechts één kleurkanaalmeting per pixellocatie; dit wordt mozaïekfiltering genoemd. Hier is een mooi diagram dat dit helpt verklaren:

(Diagram met dank aan Foveon, Inc.)
Wat je dus kunt zien, is dat pixels kunnen worden gezien als gerangschikt in groepen van vier, waarbij er twee G-metingen en één R- en één B-meting per groep zijn. Als je een van de G-metingen weggooit (wat wij doen), zie je dat de werkelijke resolutie van een 352x288-camera dichter bij 176x144 ligt. We laten de camera in halve-resolutiemodus draaien, waarbij elk ander 2x2-blok horizontaal wordt overgeslagen, wat je 88x144 geeft. Vanwege geheugenbeperkingen in de processor gooien we 8 kolommen horizontaal en één rij verticaal weg, die een testpatroon bevat, wat je 80x143 als uiteindelijke resolutie geeft.
Even ter info: standaard digitale camera’s gebruiken complexe interpolatietechnieken om te proberen de ontbrekende kleurwaarden bij elke pixel in te vullen en je iets te geven dat iets dichter bij de volledige resolutie van de sensor ligt.
Hoe kan ik de CMUcam1 nauwkeurig scherpstellen?#
Natuurlijk is de beste manier om verder te gaan met scherpstellen het maken van frame dumps met de GUI. Je hebt misschien geen computer bij de hand, of je gebruikt misschien een BotBall CMUcam1, die bij zijn vast bedrade 9600-baudrate niet voldoende resolutie heeft om dit goed te laten werken.
In dat geval zijn er twee alternatieven. Ten eerste kun je proberen schroefdraden te tellen. De lens is niet volledig ingeschroefd bij de piekscherpte. In plaats daarvan is er ongeveer 1 millimeter schroefdraad zichtbaar. Uitgedrukt in aantal schroefdraden zijn dat ongeveer 2 schroefdraden zichtbaar in de opening tussen de lens en de lensmontage.
Het tweede alternatief is gebaseerd op het idee dat wanneer een beeld scherp is, de donkere delen het donkerst en de heldere delen het helderst zijn. Met andere woorden, wanneer het contrast het grootst is. Wanneer het beeld onscherp wordt, vervagen de extremen tot een meer uniforme verdeling van intensiteiten. Dus als je de streaming-modus opstart en vervolgens GM (Get Mean) aanroept, kun je in realtime scherpstellen. Kijk naar de rode deviatie. Terwijl je scherp scherpstelt op een contrastrijk object (zoals een vel papier met veel tekst erop) op de gewenste afstand, zal er een merkbare piek in de rode deviatie zijn wanneer het het scherpst is scherpgesteld. Merk op dat deze benadering van scherpstellen vereist dat je de camera en het doel behoorlijk stevig geplant houdt terwijl je aan de lens draait.