RR.O.P. - RaspRobot OpenCV projekt (7 / 14 steg)

Steg 7: Att skapa och konfigurera datorn Vision System (CVS)



OpenCV biblioteket är där alla bearbetningen av videon är klar och den information som hämtats från denna bearbetning är gjort att göra beslut robotics plattform och andra komponenter som aktiverar det dynamiska systemet. Hans version är OpenCV-2.2.8 att vara närvarande exempel och alla funktioner som finns i versioner för Windows, MAC och Linux.

Det var nödvändigt att göra installationen med kommandot:

Uppdatera systemet: sudo lämplig-få uppdatera
Installera uppdateringar: sudo apt-get upgrade
Installera OpenCV biblioteket: sudo lämplig-få installera python-opencv

CVS (Computer Visionsystem):

Bilden av detta steg visar uppsättningen systemfunktioner. Dessa funktioner körs sekventiellt, upprepade gånger och för verkliga värden för de dynamiska egenskaperna för objektet (koordinater och storlek), upp till sex gånger (eller sex variationer) en andra gång. Dvs, varje sekund genereras upp till sex värden som kommer att bearbetas och jämfört, effektivisera plattformen.

Användning av detta steg för varje steg-beskrivning:

  1. Först var det nödvändigt att fånga (eller få) bilden eller, särskilt den ram som innehåller bilden (frame). Den är 160 x 120 bildpunkter. Ramen i stort (t.ex., 640 pixlar bred och 480 bildpunkter hög), orsakade avmattning i erkännandeprocessen när bilden överlämnades distans. Systemstandard är RGB-färg, färgsystemet representeras i ramen webcam erhålls genom den grundläggande färger: röd (röd), grön (grön) och blå (blå). Dessa färger är representerade på en pixel för pixel dimensionell vektor, exempelvis färgen röd är föreställda 0com värden (0, 255, 0), respektive representerade för varje kanal. Det vill säga har varje pixel dess RGB-värde som representeras av tre byte (röd grön och blå).
  2. Efter den tagna bilden utfördes konvertering från RGB färgsystem till färgen HSV (nyans, mättnad, och värdet) , eftersom denna modell beskriver liknande erkännande av de mänskliga ögat färgerna. Eftersom RGB (röd, grön och blå) systemet har de färger som bygger på kombinationer av primärfärgerna (rött, grönt och blått) och HSV systemet definierar färger som deras färg, glitter och glans (nyans, mättnad och värde), att underlätta utvinning av information. I diagram steg 2 visar konvertering från RGB till HSV, med hjälp av "cvtColor" native OpenCV, som konverterar indatabilden från en ingång färg till en annan funktion.
  3. Med bilden i HSV modell var det nödvändigt att hitta rätt värden av HSV minimi- och färgen på det objekt som kommer att följas. Spara dessa värden, gjordes två vektorer med minimal HSV och HSV högsta färg objektet som värden: minsta nyans (42) minst mättnad (62) minsta ljusstyrka (63) maximal nyans (92) maximal mättnad (255) maximal ljusstyrka (235). Så nästa steg för att skapa en binär bild, kan relevant information begränsas endast i samband med dessa värden. Dessa värden för att begränsa färgmönster för objektet. En funktion för att jämföra pixelvärdena med standard värderar av den införda vektorn användes. Resultatet blev en binär bild som ger endast ett värde för varje pixel.
  4. Efter att ha gjort segmentering, vilket resulterar i den binära bilden, bör det noteras att buller är kvar i ramen. Dessa ljud är faktorer som hindrar segmentering (inklusive att få den faktiska storleken) för objektet. Att fixa (eller försöka fixa) detta problem, det var nödvändigt att tillämpa en morfologisk förändring genom operatörer i ramen, så att pixlarna togs bort som inte uppfyller standarden som önskat. För detta användes morfologiska operatören EROSION, som utförde en "ren" i ramen, att minska buller som det innehåller.
  5. Sedan användes till "Ögonblick" funktion, som beräknar stunder av positiv kontur (vit) med en integration av alla pixlar i konturen. Denna funktion är endast möjligt i en ram redan binarizado och utan buller, så att storleken på konturen av objektet inte ändras av avviker pixlar i ramen, vilket hindrar och redundans i information.
    stunder = cv2.moments (imgErode, True)

    I föreslagna exempel var det nödvändigt att hitta området av contour och dess platsens koordinater i ramen för att göra beräkningar av ompositionering chassit. Beräkningen av området av objektet utför den binära summan av positiva, generera variabeln M00 och registreras i variabeln "område":
    område = stunder [m00]
    Specificitet av kontur refererar till ett objekt, inte en polygon. Detta värde visar en ungefärlig yta på positiva pixlar (vit) som gör upp objektet. Om detta värde är null område, ignoreras förekomsten av ett objekt färg behandlas (om den "gröna" färgen) i ramen. Denna funktion hjälper utföra rörelsen av roboten närmar sig och distanserar av objektet, försöker behandla problemet med djup. Det vill säga det faktum att objektet närmar sig eller distansera alltför chassi.

    Och från den riktade område var möjligt, ange koordinaterna för objektet i denna ram. Var används parametrar erhålls stunder funktion som hittade sin samordnade för koordinaterna för objektet. Men detta var samordnat utifrån centroiden för objektet, hittade bara om objektet är större än noll. Denna funktion var viktigt att göra rörelsen av horisontella och vertikala justering av roboten för att öka den grad av friheten och minimera begränsning av rörelsefriheten för objektet kan identifieras. Använda området för parametern objekt och i kombination med M00 x och y parametrar stunder av funktion, det var möjligt att hitta koordinaterna (x, y).

Således de värden fick i koordinaten (x, y) hänvisar till placeringen av hittade segmentering av objektet i förhållande till bildrutan och att underlätta tolkningen av den information som dras från av koordinatinformationen, en funktion som ritar en cirkel på centroiden var tillämpas objektet.

Resultatet:

Steg 6 kommer att demonstreras under loppet av nästa steg man måste förklara konfigurationen av motorer och andra delar innan du fortsätter med denna del.

Den bifogade skriften "SVC.py" hjälper dig att börja förstå hur systemet fungerar. Om problem ge din Raspberry Pi, rekommenderar jag granska den installerade bibliotek eller kontakt.
Hur ska köras ett skript python i Raspberry Pi? Klicka här!

Vi kommer att fortsätta med församlingen roboten? Få arbeta!

Se Steg
Relaterade Ämnen

Färg spårning med hjälp av Intel Edison Development Kit

I anges för att skapa ett OpenCV-projekt på Intel Edison med Node.js för att spåra objekt. OpenCV har bara C++, C, Python och Java gränssnitt så hur kan du arbeta med bara JavaScript? OpenCV har aldrig portats till JavaScript i sin helhet, men enskil...

Kom igång med OpenCV och Intel Edison

När robotarna börjar att fylla planet måste de ett sätt att "se" världen på samma sätt som det sätt vi människor gör och att kunna använda denna vision data för att fatta beslut. Idag är en mycket populär dator Visionsystem själv köra bilen. Som...

RasPi + OpenCV = Face Tracking

Detta instructable kommer att lära dig allt du behöver veta om hur du installerar din nya RasPi kamera till din Raspberry Pi och genomföra Opencvs ansiktsspårning bibliotek. Handledningen kommer inte utgå från att du vet hur man programmerar eller fö...

ANPR projekt med hjälp av Intel Edison

Detta är en automatisk nummer plattan Recogniton projekt med openCV och Intel Edison styrelsen.En översikt:Ta en bild, pre-process det i opencv sedan passera den genom tesseract OCR får tecknen i bilden. Sedan Visa tecken på grove LCD skärmen.Så här:...

Hur man gör laser projektion virtuellt tangentbord

Laser projektionen virtuellt tangentbord utformade i denna avhandling bygger på OpenCV kombinera med bild kamera, 980nm linjär laser, 980nm IR-filter och tangentbord projektion laser, bild kameran upptäckt används med 980nm IR filter orsakas av skärm...

Mini projektion-mappade landskap

Detta Instructable om att skapa en enkel skulptur som är förstärkt med projection kartläggning, planerat på springa på Raspberry Pi, byggd med OpenFrameworks.Projection Mapping är en process som bygger på kunskap om den fysiska utrymme, grafik progra...

Ansiktsigenkänning och spårning med Arduino och OpenCV

uppdateringar20 feb 2013: Som svar på en fråga från student Hala Abuhasna om du vill använda klassen .NET seriell, använda namnkonventionen "\\\.\\COMn" och ersätt n med en nummer > 9 definiera com-porten för COM-portar över 9 som COM10, COM1...

Hur till spår din Robot med OpenCV

UPPDATERING: Låter göra robotar, mitt hem digital hackerspace, köptes av RobotShop. Jag vill inte gå in, men de nya ägarna förbjudit mig själv och de flesta veteran medlemmarna. Som sagt, de flesta av länkarna där kommer att brytas. Lyckligtvis kunde...

Face Tracking med bearbetning och OpenCV

datorseende är otroligt. Chansen att se världen omkring dem kan computational processer. Det är nödvändigt för många robotic program, maskininlärning och interaktiva projekt. OpenCV är ett open source bibliotek dator vision som gör datorn vision funk...

Ansiktsdetektering med hjälp av Python och OpenCV bibliotek

Detta projekt kommer att använda OpenCV biblioteket och python för att underlätta ansiktsavkänningSteg 1: Vad du behöver1. en Intel Edison Development Board2. en webbkamera, vi kommer att använda ljus våg LW-IC5003. Python och openCV biblioteket inst...

OBJEKTET identifiering och spårning med hjälp av OPENCV, VISUAL STUDIO C ++ 2010 och ARDUINO

IntroduktionI detta projekt skickar Webcam video ramar till Visual Studio C ++ som innehåller öppen CV biblioteket på vår dator.Om Visual Studio C ++ programmet upptäcker bilden av objektet från webbkameran och sedan beräknas de co koordinaterna X, Y...

OpenCV DSP Acceleration

OpenCV DSP Acceleration - GSoC 2010Syftet är att påskynda OpenCV algoritmer i OMAP3 plattformar med på chip C64x + DSP. Det använder OpenCV 2.1 som referens och är beroende av samma. Den första utgåvan av detta projekt visar accelerationen av några a...

Vem är i kaffebryggaren? Ansiktsigenkänning med Raspberry Pi, OpenCV och Sigfox

IntroduktionHar du någonsin under hur ansiktsigenkänning fungerar? Har du hört talas om Sigfox? Gillar du hallon?I den här guiden kommer vi att utveckla en prototyp med en Raspberry Pi att känna igen ansikten med OpenCV och skicka Id för den igenkänd...

Att lägga till rörelsekontroll en projektion klocka

mål: lägga till en rörelsesensor som tänder upp klockan på natten när den upptäcker rörelse och göra bakgrundsbelysningens ljusstyrka manuellt justerbara.Varför: Jag har bara några krav på en bra säng-side klocka. Det måste vara väl synlig, men inte...

Klockan projekt

För detta projekt kommer du behöver-1 Arduino1 set av brödunderläggenHoppare ledningarSju segment displayen knappOm du av någon typ2 motståndUSB-sladd(Mest med i Sunfounder kit)Steg 1: Ställa wries Det första steget till att göra en exakt klocka är l...

2010 POWERPOINT projekt: ansikten

Hej alla! JAG ÄR DENSITET OCH JAG ÄR 14 ÅR GAMMAL. DU HAR NÅGONSIN UNDRAT HUR MAN SKAPA COOLA SAKER PÅ DATORN SOM ANIMATIONER OCH OBJEKT. JAG KAN VISA DIG HUR MAN GÖR DE BÄSTA OBJEKT, VAPEN, ANSIKTEN, ANIMATIONER OCH ALLA MÖJLIGA SAKER PÅ POWER POINT...

3 projekt

3 projekt :DSteg 1: Projekt 1: matrixVad är matrisen?Matrix ser är såhärmatrisen är fallande siffror är matrisen på hackarens datorer på filmerna.Steg 2: Projekt 1: matrix 1. Öppna Anteckningar2. Skriv kodenkod:utanförfärg en titel cmd: code1 echo på...

85 tum bak projektion Wiimote IWB (interaktiva White Board)

detta Instructable visar hur du ställer in en Wiimote interaktiv Whiteboard med Johnny Lee teknik. Det finns andra Instructables tillägnad ställer in och använder Wiimoteboard, så jag inte kommer att täcka de grundläggande inrätta steg.Jag ursprungli...

5 DIY projekt som ökar värdet på din bostad

Ditt hem är utan tvekan en av de största investeringarna du någonsin kommer att göra i ditt liv, så du säkert vill göra det så stor en som möjligt, speciellt om du funderar på att sälja det inom en snar framtid.Därför har vi satt ihop en lista med 5...