wake-up-neo.com

Tensorflow Object Detection-API unter Windows - Fehler "ModuleNotFoundError: Kein Modul mit dem Namen" utils ""

Ich versuche, die TensorFlow-Objekterkennungs-API zu erhalten

https://github.com/tensorflow/models/tree/master/research/object_detection

arbeiten Sie unter Windows, indem Sie den Installationsanweisungen folgen

https://github.com/tensorflow/models/tree/master/research/object_detection

Welche scheinen für Linux/Mac zu sein. Ich kann das nur zum Laufen bringen, wenn ich ein Skript in das Verzeichnis schreibe, in das ich das obige Repo geklont habe. Wenn ich das Skript in ein anderes Verzeichnis stecke, erhalte ich diesen Fehler:

ModuleNotFoundError: No module named 'utils'

Ich vermute, dass die Ursache das Windows-Äquivalent dieses Befehls, das in den obigen Installationsanweisungen aufgeführt ist, nicht richtig ausführt:

# From tensorflow/models/research/
export PYTHONPATH=$PYTHONPATH:`pwd`:`pwd`/slim

Ich verwende Windows 10, Python 3.6 und TensorFlow 1.4.0, wenn das wichtig ist. Natürlich habe ich über dieses Anliegen gegoogelt und verschiedene Links gefunden, zum Beispiel Folgendes:

https://github.com/tensorflow/models/issues/1747

Dies hat jedoch die Besorgnis nicht gelöst. Anregungen zur Lösung dieses Problems?

Hier sind die Schritte, die ich bisher gemacht habe:


BEARBEITEN: Diese Schritte funktionieren jetzt nach der Aktualisierung, um die Antwort von RecencyEffect zu integrieren

1) Installieren Sie TensorFlow und die dazugehörigen Werkzeuge über pip3

2) Führen Sie an einer Eingabeaufforderung für den Verwaltungsbefehl Folgendes aus:

pip3 install pillow
pip3 install lxml
pip3 install jupyter
pip3 install matplotlib

3) Klonen Sie das TensorFlow-Repository "models" in den Ordner "Documents", in meinem Fall

C:\Users\cdahms\Documents\models

4) Heruntergeladene Google Protobuf https://github.com/google/protobuf Windows v3.4.0 - Version "protoc-3.4.0-win32.Zip" (Ich habe die aktuellste Version 3.5.1 ausprobiert und habe Fehler auf der nachfolgende Schritte, also habe ich 3.4.0 pro vid/ausprobiert https://www.youtube.com/watch?v=COlbP62-B-U&list=PLQVvvaa0QuDcNK5GeCQnxYnSSaar2tpku&index=1 und die protobuf kompiliert)

5) Extrahieren Sie den Protobuf-Download speziell in die Programmdateien

"C:\Program Files\protoc-3.4.0-win32"

6) CD in das models\research-Verzeichnis, speziell

cd C:\Users\cdahms\Documents\models\research

7) Speziell das Kompilieren von Protobuf ausgeführt

“C:\Program Files\protoc-3.4.0-win32\bin\protoc.exe” object_detection/protos/*.proto --python_out=.

Navigiere zu:

C:\Users\cdahms\Documents\models\research\object_detection\protos

und überprüfen, ob die .py-Dateien erfolgreich erstellt wurden (nur die .proto-Dateien waren anfangs vorhanden)

8) cd in das object_detection-Verzeichnis, zB:

cd C:\Users\cdahms\Documents\models\research\object_detection

geben Sie dann an einer Eingabeaufforderung Folgendes ein, um das object_detection_tutorial.ipynb Jupyter Notebook zu starten

jupyter notebook

9) Wählen Sie im Jupyter Notebook "object_detection_tutorial.ipynb" -> Zelle -> Alle ausführen. Das Beispiel sollte im Notebook ausgeführt werden

10) Wählen Sie im Jupyter Notebook "File" -> "Download As" -> "Python" und speichern Sie die .py-Version des Notebooks im selben Verzeichnis, d. H.

C:\Users\cdahms\Documents\models\research\object_detection\object_detection_tutorial.py

Sie können das Skript jetzt in Ihrem ausgewählten Python-Editor (z. B. PyCharm) öffnen und ausführen.


BEARBEITEN Sie die Antwort von RecencyEffect unten. Wenn Sie diese zusätzlichen Schritte ausführen, können Sie das Script object_detection_tutorial.py in einem beliebigen Verzeichnis ausführen

11) Verschieben Sie das Skript in ein anderes Verzeichnis und versuchen Sie es auszuführen. Sie werden feststellen, dass Sie den Fehler erhalten:

ModuleNotFoundError: No module named 'utils'

weil wir Python noch nicht informiert haben, wie man das Verzeichnis utils findet, das diese Zeilen verwenden:

from utils import label_map_util
from utils import visualization_utils as vis_util

Um das zu lösen. . .

12) Gehen Sie zu System -> Erweiterte Systemeinstellungen -> Umgebungsvariablen. . . -> Neu und füge eine Variable mit dem Namen PYTHONPATH und diesen Werten hinzu:

 enter image description here

13) Bearbeiten Sie auch unter Umgebungsvariablen PATH und fügen Sie% PYTHONPATH% wie folgt hinzu:

 enter image description here

14) Starten Sie den Computer neu, um sicherzustellen, dass diese Pfadänderungen wirksam werden

15) Rufen Sie eine Eingabeaufforderung auf, und führen Sie den Befehl "set" aus. Vergewissern Sie sich, dass PYTHONPATH vorhanden ist und PYTHONPATH und PATH die Werte aus den vorherigen Schritten enthalten.

16) Nun können Sie "object_detection_tutorial.py" in ein beliebiges anderes Verzeichnis kopieren und es wird ausgeführt

7
cdahms

Wie im Kommentar erwähnt, ist utils ein Submodul, also müssen Sie object_detection zu PYTHONPATH hinzufügen, nicht object_detection/utils.

Ich bin froh, dass es für dich funktioniert hat.

3
RecencyEffect

Der folgende Befehl funktioniert nicht unter Windows:

export PYTHONPATH=$PYTHONPATH:`pwd`:`pwd`/slim

Stattdessen habe ich die Anweisungen dieses Tutorials befolgt, in dem empfohlen wird, die Pfadvariablen für drei verschiedene Verzeichnisse manuell festzulegen. Ich habe einfach einen Pfad für das utils-Verzeichnis hinzugefügt. Bisher hat es ohne Fehler funktioniert.

0
lmum27

Stellen Sie sicher, dass sich in Ihrem Ordner research/object_detection/protos eine __init__.py-Datei befindet! Die __init__.py-Datei ist leer, muss jedoch vorhanden sein, damit das protos-Modul korrekt erstellt werden kann.

0
lrumancik

cd Forschung/Objekterkennung

cd ..

Forschung

  1. export PATH = ~/anaconda3/bin: $ PATH

FORSCHUNG

  1. git clone https://github.com/tensorflow/models.git

FORSCHUNG

3.export PYTHONPATH = $ PYTHONPATH: pwd: pwd/slim 

4.protoc object_detection/protos/string_int_label_map.proto --python_out =.

CD OBJECT_DETECTION

  1. protoc protos/string_int_label_map.proto --python_out =.

6. jupyter Notizbuch

0
manoj vasi