Stap 7: Maken en configureren van de Computer visie System (CVS)
De bibliotheek OpenCV is waar alle verwerkingen van de video wordt gedaan en de gegevens uit deze verwerking is gereed maken beslissingen robotica platform en andere onderdelen waarmee de dynamische systeem. Zijn versie is de OpenCV-2.2.8 aanwezig voorbeelden en alle functies beschikbaar in versies voor Windows, MAC en Linux.
Het was nodig om de installatie met de opdracht te doen:
Update van het systeem: sudo ad rem-worden bijwerken
Updates installeren: sudo apt-get upgrade
Installeren van de bibliotheek OpenCV: sudo ad rem-worden installeren python-opencv
De CVS (Computer Vision systeem):
De afbeelding van deze stap wordt de set van functies van het systeem. Deze functies worden uitgevoerd achtereenvolgens, herhaaldelijk en voor de echte waarden van de dynamische eigenschappen van het object (coördinaten en grootte), maximaal zes keer (of zes variaties) een tweede tijd. IE, elke seconde tot zes waarden die zullen worden verwerkt en vergeleken worden gegenereerd, stroomlijning van het platform.
Gebruik de afbeelding van deze stap voor elke stap beschrijving:
- Eerst was het noodzakelijk om te vangen (of ontvangen) de afbeelding, specifiek het frame met de afbeelding (het frame). De grootte is 160 x 120 pixels. Het frame in het algemeen (bijvoorbeeld 640 pixels breed en 480 pixels hoog), veroorzaakte vertragingen in het herkenningsproces toen het beeld werd overgebracht op afstand. De systeemstandaard is RGB-kleur, dit kleurensysteem is vertegenwoordigd in het frame van de webcam verkregen door middel van de basiskleuren: rood (rood), groen (groen) en blauw (blauw). Deze kleuren worden weergegeven op een pixel voor pixel-dimensionale vector, bijvoorbeeld de kleur rood is vertegenwoordigd 0com waarden (0, 0, 255), respectievelijk vertegenwoordigd voor elk kanaal. Dat wil zeggen heeft elke pixel de RGB-waarde vertegenwoordigd door drie bytes (rood groen en blauw).
- Na de opname, werd de omzetting van RGB -kleursysteem in de kleur HSV (tint, verzadiging en waarde) uitgevoerd, aangezien dit model vergelijkbaar met de erkenning door de kleuren van het menselijk oog beschrijft. Aangezien het systeem van RGB (rood, groen en blauw) de kleuren op basis van combinaties van de primaire kleuren (rood, groen en blauw heeft) en de HSV systeem kleuren als hun kleur definieert, vergemakkelijken glans en glans (tint, verzadiging en waarde), de extractie van informatie. In diagram stap 2 geeft de conversie van RGB naar HSV, met behulp van de "cvtColor" native OpenCV, die de invoerafbeelding van een input-kleurensysteem naar een andere functie converteert.
- Met de afbeelding in HSV model bleek het noodzakelijk om te vinden van de juiste waarden voor HSV minimale en maximale kleur van het object die zal worden gevolgd. Sla deze waarden werden gemaakt twee vectoren met minimale HSV en HSV maximale color-object als waarden: minimale tint (42) minimale verzadiging (62) minimale helderheid (63) maximale tint (92) maximale verzadiging (255) maximale helderheid (235). Dus de volgende stap voor het genereren van een binaire image, kan relevante informatie alleen in het kader van deze waarden worden beperkt. Deze waarden zijn nodig om het beperken van het kleurenpatroon van het object. Een functie van het vergelijken van de pixelwaarden met de standaard waarden van de ingebrachte vector werd gebruikt. Het resultaat was een binaire beeld verstrekken van slechts één waarde voor elke pixel.
- Hebben gemaakt de segmentatie, wat resulteert in de binaire image, wordt opgemerkt dat geluid nog steeds aanwezig in het frame. Deze geluiden zijn elementen die een belemmering vormen voor de segmentatie (met inbegrip van het verkrijgen van de werkelijke grootte) van het object. Om te bevestigen (of proberen te herstellen) dit probleem, het was nodig toe te passen van een morfologische transformatie door exploitanten in het frame, zodat de pixels die niet voldeed aan de gewenste standaard werden verwijderd. Hiervoor was de morfologische operator EROSIE, die uitgevoerd een 'schone' in het frame, verminderen van ruis die erin gebruikt.
- Vervolgens werd het gebruikt voor "Momenten" functie, waarmee wordt berekend van de momenten van positieve contour (wit) met behulp van een integratie van alle pixels in de contour aanwezig. Deze functie is alleen mogelijk in een frame al binarizado en zonder ruis, zodat de grootte van de omtrek van het object wordt niet gewijzigd door dwalen pixels in het frame, die een belemmering vormen voor en veroorzaken redundantie in informatie.
momenten = cv2.moments (imgErode, True)Bijvoorbeeld in de voorgestelde bleek het noodzakelijk om te vinden van het gebied van de contour en de coördinaten van de locatie in het frame worden gemaakt van de berekeningen van de herpositionering van het chassis. De berekening van de oppervlakte van het object voert de binaire som van positieve, het genereren van de variabele M00 en opgenomen in de variabele "gebied":
gebied momenten ['m00'] =
De specificiteit van de contour verwijst naar een object, niet een veelhoek. Deze waarde komt een geschatte oppervlakte van positieve pixels (wit) die make-up van het object. Als deze waarde null gebied is, wordt veronachtzaamd behandeld van het bestaan van de kleur van een object (als de "groene" kleur) in het frame. Met deze functie zal helpen volbrengen van de beweging van de robot naderen en afstand van het doelobject, probeert om te behandelen het probleem van de diepte. Dat wil zeggen, het feit dat het object is nadert of overdreven chassis te distantiëren.En van het gerichte gebied was mogelijk, het definiëren van de coördinaten van het object in dit frame. Voor de coördinaten van het object was gebruikte parameters verkregen van de functie van de momenten die zijn gecoördineerd gevonden. Maar dit was gecoördineerd op basis van het zwaartepunt van het object, wordt alleen gevonden als het gebied van het object groter dan nul is. Met deze functie was belangrijk voor het verkeer van horizontale en verticale aanpassing van de robot om te vergroten de mate van vrijheid en minimaliseren van de beperking van de beweging van het object te identificeren. Met behulp van het gebied van de objectparameter en gecombineerd met M00 x en y parameters momenten van functie, het was mogelijk om te vinden van de coördinaten (x, y).
Dus de waarden ontvangen in de coördinaten (x, y) verwijst naar de plaatsing van de gevonden segmentatie van het object ten opzichte van het frame en ter vergemakkelijking van de interpretatie van de informatie die wordt getrokken uit de coördinaatgegevens, een functie die tekent een cirkel op het zwaartepunt was toegepast op het object.
Het resultaat:
Stap 6 zal worden aangetoond in de loop van de volgende stappen het zal noodzakelijk zijn om uit te leggen van de configuratie van motoren en andere delen voordat u verdergaat met deze deel.
Het bijgevoegde script "SVC.py" kunt u beginnen te begrijpen hoe het systeem zal werken. Als problemen uw Raspberry Pi geven, adviseer ik de herziening van de geïnstalleerde bibliotheken of contactpersoon.
Een python script uitvoeren in de Raspberry Pi? Klik hier!
We gaan met de vergadering robot? Slag te gaan!