webentwicklung-frage-antwort-db.com.de

So fügen Sie "Tracker" in openCV Python 2.7 hinzu

Ich arbeite mit Python 2.7 und opencv 3.1 Ich möchte einen Code zum Verfolgen von Objekten folgendermaßen ausführen:

import cv2
import sys

if __== '__main__' :

    # Set up tracker.
    # Instead of MIL, you can also use
    # BOOSTING, KCF, TLD, MEDIANFLOW or GOTURN

    tracker = cv2.Tracker_create("MIL")

    # Read video
    video = cv2.VideoCapture("videos/chaplin.mp4")

    # Exit if video not opened.
    if not video.isOpened():
        print "Could not open video"
        sys.exit()

    # Read first frame.
    ok, frame = video.read()
    if not ok:
        print 'Cannot read video file'
        sys.exit()

    # Define an initial bounding box
    bbox = (287, 23, 86, 320)

    # Uncomment the line below to select a different bounding box
    # bbox = cv2.selectROI(frame, False)

    # Initialize tracker with first frame and bounding box
    ok = tracker.init(frame, bbox)

aber wenn ich es starte, stehe ich vor diesem Fehler:

AttributeError: 'module' object has no attribute 'Tracker_create'

Hier ist der Quellcode: http://www.learnopencv.com/object-tracking-using-opencv-cpp-python/ .__ Ich suche nach Lösungen, finde aber nichts Nützliches ... Was kann ich tun, um dieses Modul meiner opencv-Bibliothek hinzuzufügen?

6
Elahe

Installieren Sie einfach opencv-contrib-python

pip install opencv-contrib-python

und es wird funktionieren!

15
Manish S

Ich denke, die einfachste und schnellste Methode ist die Installation über die .whl-Dateien. @foobar gibt die Antwort in den post @kyjanond-Links an, aber Sie können die .whl-Dateien über die folgenden Links erhalten.

OpenCV: https://pypi.python.org/pypi/opencv-python/3.3.0.10

OpenCV Contrib: https://pypi.python.org/pypi/opencv-contrib-python/3.3.0.10

Ich habe OpenCV 3.3.0 auf Python 2.7 installiert, also habe ich Folgendes heruntergeladen:

  • opencv_python-3.3.0.10-cp27-cp27m-win32.whl
  • opencv_contrib_python-3.3.0.10-cp27-cp27m-win32.whl

Zur Installation lief ich: 

  • python -m pip install opencv_python-3.3.0.10-cp27-cp27m-win32.whl
  • python -m pip install opencv_contrib_python-3.3.0.10-cp27-cp27m-win32.whl

Dies hat funktioniert, aber in der aktualisierten Version von OpenCV hat sich die Art und Weise geändert, in der die Trackerfunktionen aufgerufen werden.

Der ursprüngliche Code im GitHub-Repository lautete:


tracker_types = ['BOOSTING', 'MIL','KCF', 'TLD', 'MEDIANFLOW', 'GOTURN']

tracker_type = tracker_types[1]

tracker = cv2.Tracker_create(tracker_type)

Ich habe das geändert


tracker_types = ['BOOSTING', 'MIL','KCF', 'TLD', 'MEDIANFLOW', 'GOTURN']

tracker_type = tracker_types[1]

if tracker_type == tracker_types[0]:
    tracker = cv2.TrackerBoosting_create()
Elif tracker_type == tracker_types[1]:
    tracker = cv2.TrackerMIL_create()
Elif tracker_type == tracker_types[2]:
    tracker = cv2.TrackerKCF_create()
Elif tracker_type == tracker_types[3]:
    tracker = cv2.TrackerTLD_create()
Elif tracker_type == tracker_types[4]:
    tracker = cv2.TrackerMedianFlow_create()
Elif tracker_type == tracker_types[5]:
    tracker = cv2.TrackerGOTURN_create()

Dieser Ansatz schien für mich gut zu funktionieren.

2
solarflare

Sobald die Installation abgeschlossen ist. Alle Dateien werden im Ordner /usr/local/ installiert.
Damit es jedoch verwendet werden kann, sollte Ihr Python in der Lage sein, OpenCV Modul zu finden. 

Dafür haben Sie zwei Möglichkeiten.

  1. Verschieben Sie das Modul in einen beliebigen Ordner im Python-Pfad: Der Python-Pfad kann durch Eingabe von import sys;print sys.path im Python-Terminal ermittelt werden. Es werden viele Standorte ausgedruckt. Verschieben Sie /usr/local/lib/python2.7/site-packages/cv2.so in einen beliebigen Ordner. Zum Beispiel su mv /usr/local/lib/python2.7/site-packages/cv2.so /usr/lib/python2.7/ → Site-Packages. Sie müssen dies jedoch jedes Mal tun, wenn Sie OpenCV installieren.

  2. Fügen Sie /usr/local/lib/python2.7/site-packages zum PYTHON_PATH hinzu: Dies ist nur einmal durchzuführen. Öffnen Sie einfach ~/.bashrc und fügen Sie die folgende Zeile hinzu, melden Sie sich ab und kommen Sie zurück. export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python2.7/site-packages. Damit ist die OpenCV-Installation abgeschlossen. Öffnen Sie ein Terminal und versuchen Sie es mit Import cv2.

1
Deepak

Es sieht so aus, als hätten Sie Ihre OpenCV nicht mit opencv_contrib-Modulen kompiliert. Sie müssen es neu kompilieren. Eine sehr gute Schritt-für-Schritt-Anleitung, wie Sie dies tun, finden Sie in this blogpost.

EDIT:

Wenn Sie es unter Windows kompilieren müssen, können Sie this great Tutorial von @Osama verwenden 

Ich hoffe es hilft.

1
kyjanond

Neue Versionen von openCV verwenden beispielsweise die TrackerKCF_create () - Notation.

Neue Beispiele finden Sie hier

0
Bojan Petrovic