RR.O.P. - RaspRobot OpenCV Projekt (7 / 14 schritt)

Schritt 7: Erstellen und Konfigurieren von Computer-Vision-System (CVS)


Die OpenCV-Bibliothek ist wo alle Verarbeitungen des Videos geschieht und die Informationen aus dieser Verarbeitung fertig machen Entscheidungen Robotik Plattform und andere Komponenten, die das dynamische System zu ermöglichen. Seine Version ist die OpenCV-2.2.8, vorliegenden Beispiele und alle Funktionen, die in Versionen für Windows, MAC und Linux verfügbar.

Es war notwendig, um die Installation mit dem Befehl tun:

Aktualisieren des Systems: Sudo apt-Get update
Updates zu installieren: Sudo apt-Get Upgrade
Die OpenCV-Bibliothek installieren: Sudo apt-Get installiert Python-Opencv

CVS (Computer-Vision-System):

Die Abbildung dieses Schrittes zeigt den Satz von Systemfunktionen. Diese Funktionen werden ausgeführt, nacheinander, wiederholt und für die wahren Werte der dynamischen Eigenschaften des Objekts (Koordinaten und Größe), bis zu sechs Mal (oder sechs Variationen) ein zweites Mal. D. h. jede Sekunde entstehen bis zu sechs Werte, die verarbeitet und verglichen werden, Straffung die Plattform.

Verwenden Sie die Figur dieses Schrittes für jeden Schritt-Beschreibung:

  1. Zuerst war es notwendig, ein Bild oder, speziell der Rahmen mit dem Bild (Frame) zu erfassen (oder erhalten). Die Größe beträgt 160 x 120 Pixel. Im großen Rahmen (z. B. 640 Pixel breit und 480 Pixel hoch), verursacht Verlangsamung in den Erkennungsprozess, wenn das Bild aus der Ferne übertragen wurde. Die Standardeinstellung des Systems ist RGB-Farbe, dieses Farbsystem ist vertreten in der Webcam-Frame erhalten durch die Grundfarben: rot (rot), Green (grün) und blau (blau). Diese Farben werden auf einem dreidimensionalen Vektor Pixel für Pixel dargestellt, zum Beispiel die Farbe Rot ist vertretenen 0com Werte (0, 255, 0), bzw. für jeden Kanal vertreten. Jedes Pixel hat seine RGB-Wert von drei Bytes (rot-grün und blau) vertreten.
  2. Nach das aufgenommene Bild erfolgte die Umwandlung von RGB -Farbsystem in der Farbe HSV (Farbton, Sättigung und Wert) , da dieses Modell ähnlich wie die Anerkennung durch das menschliche Augenfarben beschrieben werden. Da das RGB (rot, grün und blau) System die Farben basierend auf Kombinationen der Grundfarben (rot, grün und Blau hat) und der HSV-System Farben als ihre Farbe definiert, erleichtern funkeln und Strahlen (Farbton, Sättigung und Wert), die Gewinnung von Informationen. Im Diagramm die Schritt 2 zeigt die Umwandlung von RGB in HSV, mit der "CvtColor" native OpenCV, die das Eingangsbild aus einem Eingabefarbe-System auf eine andere Funktion wandelt.
  3. Mit dem Bild im HSV -Modell war es notwendig, die korrekten Werte für HSV Mindest- und Farbe des Objekts zu finden, die befolgt werden. Zu speichern diese Werte wurden zwei Vektoren mit minimalen HSV und HSV maximale Color-Objekt als Werte: Hue (42) Minimum Sättigung (62) Minimum Mindesthelligkeit (63) maximale Hue (92) maximale Sättigung (255) maximale Helligkeit (235). Also der nächste Schritt, um ein binäres Bild zu erzeugen, kann die relevante Informationen nur im Rahmen dieser Werte beschränkt werden. Diese Werte werden benötigt, um das Farbmuster des Objekts zu begrenzen. Eine Funktion für den Vergleich der Pixelwerte mit den standard Werten des eingefügten Vektors diente. Das Ergebnis war ein binäres Bild nur ein Mehrwert für jedes Pixel.
  4. Die Segmentierung, wodurch die binäres Bild gemacht zu haben ist anzumerken, dass Lärm in den Rahmen noch vorhanden sind. Diese Geräusche sind Elemente, die die Segmentierung (einschließlich des Erhalts der Originalgröße) behindern des Objekts. Fix (oder versuchen zu beheben) dieses Problem war es notwendig, eine morphologische Transformation durch Betreiber im Rahmen anwenden, so dass die Pixel entfernt wurden, die nicht den gewünschten Standard entsprachen. Hierzu wurde der morphologischen Operator EROSION, eine "saubere" in the Frame durchgeführt, Reduzierung von Lärm, die darin enthaltenen verwendet.
  5. Dann diente es "Moments" -Funktion, die die Momente der positiven Kontur (weiß) mit einer Integration in die Kontur vorhanden alle Pixel berechnet. Diese Funktion ist nur möglich in einem Frame bereits Binarizado und geräuschlos, so dass die Größe der Kontur des Objekts nicht geändert wird, durch streunende Pixel im Frame, die behindern und dazu führen, dass Redundanz in Informationen.
    Momente = cv2.moments (ImgErode, True)

    Im vorgeschlagenen Beispiel war es notwendig, Bereich der Kontur und die Standort-Koordinaten im Rahmen erfolgen die Berechnungen der Neupositionierung der Chassis zu finden. Die Berechnung der Fläche des Objekts führt die binäre Summe der positiven, die Variable M00 generieren und in die Variable "Bereich" aufgezeichnet:
    Bereich Momente ["m00"] =
    Die Spezifität der Kontur verweist auf ein Objekt, kein Polygon. Dieser Wert findet sich eine ungefähre Fläche von positiven Pixel (weiß), die das Objekt bilden. Wenn dieser Wert null ist, wird ignoriert die Existenz einer Objektfarbe behandelt (wenn das "grün") im Rahmen. Mit dieser Funktion wird helfen, die Bewegung des Roboters Annäherung und Distanzierung des Zielobjekts, versuchen zur Behandlung des Problems der Tiefe zu erreichen. Das heißt, die Tatsache, dass das Objekt nähert oder Distanzierung übermäßig Chassis.

    Und von der gezielten Bereich möglich war, die Koordinaten des Objekts in diesem Rahmen zu definieren. Für die Koordinaten des Objekts war verwendeten Parameter erhalten Momente-Funktion, die die koordinierte gefunden. Aber das koordiniert wurde, basierend auf den Schwerpunkt des Objekts, ist nur gefunden, wenn die Fläche des Objekts größer als Null ist. Mit dieser Funktion war wichtig, machen die Bewegung der horizontale und vertikale Verstellung des Roboters zur Erhöhung der Grad der Gestaltungsfreiheit und minimieren Einschränkung der Bewegung des Objekts identifiziert werden. Im Bereich des Object-Parameter und kombiniert mit M00 X und y Parameter Momente der Funktion, war es möglich, die Koordinaten (X, y) zu finden.

Die Werte in die Koordinate (X, y) bezieht sich daher auf die Platzierung der gefundenen Segmentierung des Objekts im Verhältnis zum Rahmen und die Interpretation der Informationen zu erleichtern, die von den Koordinateninformationen gezeichnet wird, eine Funktion, einen Kreis zeichnet , an der Schwerpunkt war das Objekt angewendet.

Das Ergebnis:

Schritt 6 werden im Laufe der nächsten Schritte demonstriert werden, wäre es notwendig, die Konfiguration von Motoren und andere Teile, bevor Sie fortfahren mit diesem Teil zu erklären.

Das angehängte Skript "SVC.py" hilft Ihnen, beginnen zu verstehen, wie das System funktionieren wird. Wenn Probleme Ihre Raspberry Pi geben, empfehle ich die Überprüfung der installierten Bibliotheken oder Kontakt.
Wie ein Python Skript ausgeführt in Raspberry Pi? klicken Sie hier!

Wir gehen mit dem Montageroboter? Ans Werk!

In Verbindung stehende Artikel

Tracking mit Intel Edison Development Kit Farbe

Tracking mit Intel Edison Development Kit Farbe

Ich machte ein OpenCV-Projekt auf Intel Edison erstellen mit Node.js für die Verfolgung von Objekten. Hat OpenCV nur C, C++, Python und arbeiten Java Schnittstellen also, wie können Sie mit nur JavaScript? OpenCV hat nie in seiner Gesamtheit auf Java
Erste Schritte mit OpenCV und Intel Edison

Erste Schritte mit OpenCV und Intel Edison

Wie Roboter beginnen, um den Planeten bevölkern, den Sie eine Möglichkeit benötigen, "sehen" die Welt ähnlich wie wir Menschen tun und in der Lage, diese Vision-Daten verwenden, um Entscheidungen zu treffen. Heute ist eine sehr beliebte Computer
Mini-Projektion abgebildet Landschaft

Mini-Projektion abgebildet Landschaft

Diese Instructable zum Erstellen einer einfachen Skulptur, die ergänzt mit Projektions-Mapping, ausgelegt auf dem Raspberry Pi, mit OpenFrameworks gebaut.Projection Mapping ist ein Prozess, der stützt sich auf Kenntnisse der physikalischen Raum, Graf
Objekterkennung und TRACKING mit OPENCV, VISUAL STUDIO C++ 2010 und ARDUINO

Objekterkennung und TRACKING mit OPENCV, VISUAL STUDIO C++ 2010 und ARDUINO

EinführungIn diesem Projekt sendet die Webcam video-Frames an die Visual Studio C++ enthält Open CV-Bibliothek auf Ihrem Computer ausgeführt.Wenn Visual Studio C++-Programm das Bild des Objekts von der Webcam erkennt, dann es die co-Koordinaten x ber
Wie erstelle ich Laser-Projektion virtueller Tastatur

Wie erstelle ich Laser-Projektion virtueller Tastatur

Die Laserprojektion virtuelle Tastatur entwickelt, die in dieser Arbeit basiert auf OpenCV kombiniert mit Bild Kamera, 980nm lineare Laser, 980nm Infrarot-Filter und Tastatur Projektion Laser, die Bild-Kamera-Erkennung mit 980nm Infrarot-Filter verwe
Gesichtserkennung mit Python und OpenCV-Bibliothek

Gesichtserkennung mit Python und OpenCV-Bibliothek

Dieses Projekt wird die OpenCV-Bibliothek und Python verwenden, um die Gesichtserkennung zu erleichternSchritt 1: Was Sie brauchen1. ein Intel Edison Development Board(2) eine Webcam nutzen wir das Licht Welle LW-IC5003. Python und die OpenCV-Bibliot
Face-Tracking mit Verarbeitung und OpenCV

Face-Tracking mit Verarbeitung und OpenCV

Computervision ist unglaublich. Es kann rechnerische Prozesse die Chance, die Welt um sie herum zu sehen. Es ist notwendig für eine Vielzahl von Roboteranwendungen, maschinelles lernen oder interaktive Projekte. OpenCV ist ein open-Source Computer Vi
Erkennung und Verfolgung mit Arduino und OpenCV Gesicht

Erkennung und Verfolgung mit Arduino und OpenCV Gesicht

UPDATES20. Februar 2013: Als Antwort auf eine Frage von Student Hala Abuhasna wenn Sie der Serienklasse .NET verwenden möchten, verwenden Sie die Namenskonvention "\\\.\\COMn" und ersetzen Sie n mit einer Zahl > 9 Ihre com-Port für COM-Ports
Wie Sie Ihren Roboter mit OpenCV verfolgen

Wie Sie Ihren Roboter mit OpenCV verfolgen

UPDATE: Lets machen Roboter, meine Heimat digitale Hackerspace wurde von RobotShop gekauft. Ich will nicht darauf eingehen, aber die neuen Besitzer verboten, mich und die meisten Mitglieder der veteran. Das erklärt, die meisten Links es gebrochen wer
ANPR-Projekt mithilfe der Intel Edison

ANPR-Projekt mithilfe der Intel Edison

Dies ist eine automatische Anzahl Teller Wellmer Projekt mit OpenCV und der Intel-Platine.In der Übersicht:Aufnehmen eines Bildes, Pre-Prozess in Opencv dann durchlaufen sie Tesseract OCR um die Zeichen im Bild. Dann werden Sie die Zeichen auf dem Ha
RasPi + OpenCV Face Tracking =

RasPi + OpenCV Face Tracking =

Diese instructable lernen Sie alles, was Sie wissen müssen über die Installation Ihrer neuen RasPi Kamera um Ihre Raspberry Pi und OpenCV Face tracking-Bibliotheken zu implementieren. Das Tutorial wird nicht davon ausgehen, dass Sie wissen, wie das I
OpenCV DSP Beschleunigung

OpenCV DSP Beschleunigung

OpenCV DSP Beschleunigung - GSoC 2010Es soll OpenCV-Algorithmen in OMAP3-Plattformen mit den auf dem Chip C64x + DSP zu beschleunigen. Es OpenCV 2.1 als Referenz verwendet und ist abhängig von der gleichen. Die erste Veröffentlichung dieses Projekts
DIY-Paper Craft-Projekt: Wie erstelle ich bunte Papier Peacock für Inneneinrichtungen

DIY-Paper Craft-Projekt: Wie erstelle ich bunte Papier Peacock für Inneneinrichtungen

Ein interessantes DIY Papier Craft-Projekt kann eine Vielzahl von leicht Tun es selbst Papier Bastelideen für Sie zu Hause machen bestehen. Diese Schritt für Schritt Tutorial mit Anweisungen, wie man bunte Papier Peacock für Home Decor -Projekt ist e
Recycelten Craft-Projekt: Gewusst wie: DIY Stifthalter machen

Recycelten Craft-Projekt: Gewusst wie: DIY Stifthalter machen

Hallo Freunde! Diesmal mit noch eine weitere fantastische DIY Recycling-Handwerk-Projekt zurück. Lernen, wie man eine DIY Stifthalter aus Pappe mit einer Schritt für Schritt Tutorial mit Anweisungen zu machenund diesen fabelhaften Praktisch Stifthalt