web-dev-qa-db-fra.com

Comment ajouter "Tracker" dans OpenCV Python 2.7

Je travaille avec python 2.7 et opencv 3.1 Je veux exécuter un code pour le suivi des objets par ceci:

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)

mais quand je le lance, je fais face à cette erreur:

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

Voici le code source: http://www.learnopencv.com/object-tracking-using-opencv-cpp-python/ .__ Je cherche des solutions mais je ne trouve rien qui soit utile… Que puis-je faire pour ajouter ce module à ma bibliothèque open source?

6
Elahe

Il suffit d'installer opencv-contrib-python

pip install opencv-contrib-python

et ça va marcher!

15
Manish S

Je pense que la méthode la plus simple et la plus rapide consiste à installer via les fichiers .whl. @foobar donne la réponse dans les liens post @kyjanond, mais vous pouvez obtenir les fichiers .whl à partir des liens suivants.

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

J'ai installé OpenCV 3.3.0 sur Python 2.7, j'ai donc téléchargé:

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

Pour installer, j'ai couru: 

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

Cela a fonctionné, mais dans la version mise à jour d'OpenCV, la façon dont les fonctions de suivi sont appelées a changé.

Le code original dans le référentiel GitHub était:


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

tracker_type = tracker_types[1]

tracker = cv2.Tracker_create(tracker_type)

J'ai changé cela en


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()

Cette approche a semblé bien fonctionner pour moi.

2
solarflare

Une fois l'installation terminée. Tous les fichiers sont installés dans le dossier /usr/local/.
Mais pour l'utiliser, votre Python devrait pouvoir trouver le module OpenCV

Vous avez deux options pour cela.

  1. Déplacez le module dans n’importe quel dossier du chemin Python: le chemin Python peut être trouvé en entrant import sys;print sys.path dans le terminal Python. Il imprimera de nombreux endroits. Déplacez /usr/local/lib/python2.7/site-packages/cv2.so dans l'un de ces dossiers. Par exemple, su mv /usr/local/lib/python2.7/site-packages/cv2.so /usr/lib/python2.7/ → site-packages. Mais vous devrez le faire chaque fois que vous installez OpenCV.

  2. Ajoutez /usr/local/lib/python2.7/site-packages au PYTHON_PATH: cela ne doit être fait qu'une fois. Ouvrez simplement ~/.bashrc et ajoutez-y la ligne suivante, puis déconnectez-vous et revenez. export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python2.7/site-packages. Ainsi, l'installation d'OpenCV est terminée. Ouvrez un terminal et essayez Import cv2.

1
Deepak

Il semblerait que vous n’ayez pas compilé votre OpenCV avec les modules opencv_contrib. Vous devez le recompiler. Vous pouvez trouver un très bon tutoriel étape par étape pour savoir comment le faire dans this blogpost.

MODIFIER:

Si vous avez besoin de le compiler sous Windows, vous pouvez utiliser this excellent tutoriel de @Osama 

J'espère que ça aide.

1
kyjanond

Les nouvelles versions d’openCV utilisent par exemple la notation TrackerKCF_create ().

Vous pouvez trouver de nouveaux exemples ici

0
Bojan Petrovic