Navigieren mit OpenCV

  • Moin,
    momentan arbeite ich an einem kleinen Roboter der mithilfe von OpenCV, dem Raspberry pi 3 + RaspiCam eine Linie erkennen und dieser folgen soll.
    Bisher habe ich "threshold" über das Bild gelegt und es nochmal geglättet.

    Um die Linie zu erkennen war es mein Plan, 5 kleine Kreise in der Mitte des unteren Bildschirmrandes zu erstellen. Diese Kreise sind, mit einem kleinen Abstand, übereinander.

    O

    O

    O

    O

    O

    Diese Kreise sollen jetzt aber nicht starr, sondern nach links und rechts flexibel sein, damit diese immer der Mitte der Linie folgen können und ich so den Winkel der Kurven berechnen kann.

    Allerdings weiß ich jetzt nicht wirklich wie ich das mit Python und OpenCV umsetzen kann. Könnte mir da jemand einen Tipp geben, wie man da am besten anfängt oder wo man das nachlesen könnte? Habe bisher nichts im Internet gefunden.

    Vielen Dank schon mal

    War klar. Kurz nachdem ich den Post hier eröffnet habe, bin ich auf Meanshift und Camshift gestoßen nach kurzem überfliegen ist es glaube ich genau das was ich gesucht habe. :lol:

    Edited once, last by Mofi (November 21, 2016 at 11:37 PM).

  • Es wuerde helfen, deine tatsaechlichen Aufnahmen hier zu sehen, damit man damit mal rumspielen bzw. einschaetzen kann.

    Und welchen Effekt es haben soll, Kreise zu malen, ist mir auch nicht klar. Die folgen ja nicht magisch. Sondern es laeuft andersherum: wenn du die Information extrahiert hast, kannst du zur Kontrolle irgendwas malen.

    Ich habe mal das hier gemacht: https://www.dropbox.com/s/zm5qd0ykuky2….02.46.mov?dl=0

    Da arbeite ich mit Hough-Lines, und ich glaube vorher einem Canny-Edge-Filter. Ist uebrigens auf einem PI gerechnet.

    Deine Thresholding/Blurring Reihenfolge finde ich uebrigens falsch - erst solltest du blurren, weil das die hoeherfrequenten Anteile eliminiert, und danach thresholden. Wie zB hier beschrieben: http://docs.opencv.org/trunk/d7/d4d/t…resholding.html

    Was auch schon meine Antwort auf "im Internet nix gefunden" ist - durch die OpenCV Tutorials kann man sich schon mal durcharbeiten, fuer CV braucht man einen gewissen Bodensatz an Kenntnissen.

    Last but not least kann man noch darueber nachdenken, eine Kalman-Filter fuer die Tracking-Punkte zu nutzen, um zB wie in meinem Video vorkommende Stoerungen abzufangen.
    Automatisch zusammengefügt:
    Nachtrag: bestimmt vorher Canny-Edge, sieht man hier: http://docs.opencv.org/3.1.0/d6/d10/t…houghlines.html

    Auch Tutorial-Material, btw. Was ich ganz gut finde ist uebrigens http://www.pyimagesearch.com/ - der will allerdings (zu Recht) Geld fuer seine Inhalte. Bis zu ~$1000 Dollar. Ich ueberlege noch, ob mir das mein Hobby wert ist :D

  • Ich hätte gedacht, dass man den Inhalt der Kreise abfragen kann ob dieser Schwarz oder Weiß ist und die so auf der Linie bleiben...jetzt beim schreiben klingt deins sinniger. :rolleyes:

    Genau sowas wie in deinem Video meine ich.

    Mit dem Tutorial habe ich auch gearbeitet und habe diese auch in der richtigen Reihenfolge nur falsch geschrieben xD

    Das ist von pyimagesearch mal eine Ansage :lol:

    Vielen Dank deets ich probier das morgen

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!