De RR.O.P. - RaspRobot OpenCV Project (7 / 14 stap)

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:

  1. 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).
  2. 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.
  3. 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.
  4. 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.
  5. 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!

Gerelateerde Artikelen

Bijhouden van het gebruik van Intel Edison Development Kit kleur

Bijhouden van het gebruik van Intel Edison Development Kit kleur

Ik heb uiteengezet een OpenCV-project maken op Intel Edison Node.js gebruikt voor het bijhouden van objecten. OpenCV heeft alleen C, C++, Python en Java interfaces dus hoe kan je werken met alleen JavaScript? OpenCV is nooit geport naar JavaScript in
Opsporen van cirkels met OpenCV en Python

Opsporen van cirkels met OpenCV en Python

Inspiratie:-Het idee voor deze kwam toen ik was knutselen met OpenCV en het is verschillende functies. Vervolgens vroeg een vriend hem ontwikkelen van een algoritme dat kan detecteren dat een cirkel van een FPV Camera gemonteerd op een RC-vliegtuig e
Aan de slag met OpenCV en Intel Edison

Aan de slag met OpenCV en Intel Edison

Aangezien de robots beginnen te bevolken de planeet moeten ze een manier om te "zien" de wereld op dezelfde manier aan de manier waarop wij mensen doen en kunnen deze visie-gegevens gebruiken om beslissingen te nemen. Vandaag is een zeer populai
OBJECT detectie en bijhouden van het gebruik van OPENCV, VISUAL STUDIO C++ 2010 en ARDUINO

OBJECT detectie en bijhouden van het gebruik van OPENCV, VISUAL STUDIO C++ 2010 en ARDUINO

InleidingIn dit project stuurt de Webcam videoframes naar de Visual Studio C++ waarin Open CV bibliotheek op onze computer.Als Visual Studio C++-programma de afbeelding van het object van de webcam detecteert dan het berekenen van de co-coördinaten v
Gezicht detectie en tracking met Arduino en OpenCV

Gezicht detectie en tracking met Arduino en OpenCV

UPDATES20 februari 2013: In antwoord op een vraag van de student Hala Abuhasna wilt u de seriële .NET-klasse gebruiken, gebruiken de naamgevingsconventie "\\\.\\COMn" en n vervangen door een nummer > 9 te definiëren uw com-poort voor COM-poor
Mini projectie-toegewezen landschap

Mini projectie-toegewezen landschap

Dit Instructable over het maken van een eenvoudige sculptuur die wordt aangevuld met projectie mapping, ontworpen om te draaien op de Raspberry Pi, gebouwd met OpenFrameworks.Projectie Mapping is een proces dat is gebaseerd op kennis van de fysieke r
RasPi + OpenCV = Face Tracking

RasPi + OpenCV = Face Tracking

Dit instructable leert u alles wat u moet weten over het installeren van uw nieuwe RasPi-Camera naar uw Raspberry Pi en implementeren van OpenCV van ' Face-tracking bibliotheken. De tutorial zal niet wordt verondersteld dat u weet hoe program of begr
Hoe maak je laser projectie virtueel toetsenbord

Hoe maak je laser projectie virtueel toetsenbord

De laser projectie virtueel toetsenbord ontworpen in deze scriptie is gebaseerd op OpenCV combineren met beeld camera, 980nm lineaire laser, 980nm Infrarood filter en toetsenbord projectie laser, de camera detectie van afbeeldingen gebruikt in combin
ANPR-Project met behulp van de Intel Edison

ANPR-Project met behulp van de Intel Edison

Dit is een automatische nummer plaat Recogniton Project met behulp van openCV en de Intel Edison-bestuur.Een overzicht:Een opname, pre-proces het in opencv vervolgens passeren het tesseract OCR om de tekens in de afbeelding. Geef de tekens op het gro
Hoe bijhouden van uw Robot met OpenCV

Hoe bijhouden van uw Robot met OpenCV

UPDATE: Laat maken Robots, mijn huis digitale hackerspace, werd gekocht door RobotShop. Ik wil niet ingaan, maar de nieuwe eigenaren verboden mezelf en de meeste van de ervaren leden. Dat gezegd, allermeest naar de verbinding er gebroken zal worden.
Gezichtsdetectie met behulp van Python en OpenCV bibliotheek

Gezichtsdetectie met behulp van Python en OpenCV bibliotheek

Dit project zal de OpenCV bibliotheek en python gebruiken om de opsporing van het gezichtStap 1: Benodigdheden1. een Intel Edison Development Board2. een webcam, zullen we gebruik maken van de licht Golf LW-IC5003. Python en de openCV bibliotheek geï
OpenCV DSP versnelling

OpenCV DSP versnelling

OpenCV DSP Acceleration - GSoC 2010Het wil versnellen OpenCV algoritmen in OMAP3-platforms met behulp van de op de chip C64x + DSP. Het OpenCV 2.1 als referentie gebruikt en is afhankelijk van hetzelfde. De eerste versie van dit project toont aan dat
Blinky papier Robot - 1e papier Circuit Project

Blinky papier Robot - 1e papier Circuit Project

Deze leuke kleine project is een snelle, goedkope Inleiding tot papier circuits. Het maakt ook gebruik van sturdy zelf permanent papier mensen van mijn vorige ' ible (Blinky is een gelukkige kleine robot met een vrolijke rood licht op zijn hoofd. Het
Pandahall origineel DIY Project - Vintage zwart zaad kralen Choker ketting

Pandahall origineel DIY Project - Vintage zwart zaad kralen Choker ketting

wil je leren chick ketting? Als ja, je nooit hedendaagse Pandahall oorspronkelijke DIY project missen kunt - bead vintage zwart zaad choker ketting.Stap 1: Materialen die nodig zijn voor de choker ketting:IJzeren Jumprings18 x 8.5 ~ 9mm Rood glas pun