Ich versuche, das Programm object_detection.ipynb
auszuführen, aber es ist ein normales Python-Programm (.py). Es funktioniert sehr gut, aber wenn es im ..models/research/object_detection
-Ordner ausgeführt wird, aber das Hauptproblem ist, wenn ich versuche, diesen Code in einem anderen Verzeichnis mit korrektem sys.append
auszuführen, lande ich mit dem folgenden Fehler:
Traceback (letzter Anruf zuletzt):
Datei "obj_detect.py", Zeile 20, in
from utils import label_map_util
ImportError: Kein Modul mit dem Namen utils
Wenn ich versuche, die Datei aus dem ..models/research/object_detection
-Ordner in ein Python-Programm in einem anderen Verzeichnis zu importieren, bekomme ich mehr Fehler wie folgt:
Traceback (letzter Anruf zuletzt):
Datei "classify_image.py", Zeile 10, in
import object_dt
Datei "/home/saikishor/Tensorflow_Models/models/research/object_detection/object_dt.py", Zeile 18, in
from utils import label_map_util
Datei "/home/saikishor/Tensorflow_Models/models/research/object_detection/utils/label_map_util.py", Zeile 22, in
from object_detection.protos import string_int_label_map_pb2
ImportError: Kein Modul mit dem Namen object_detection.protos
Wie löse ich dieses Problem?
Es kann sein, dass sich der object_detection-Ordner nicht in Ihrem Pfad befindet, sodass Python nicht weiß, wo er nach den Dateien suchen soll.
sie können dies aus Python heraus mit überprüfen
import sys
sys.path
wenn dies das Problem ist, können Sie es mit lösen
sys.path.insert(0, 'path/to/your/object_detection')
Ich habe das gleiche Problem gesehen. Das liegt daran, dass string_int_label_map_pb2.py
-Datei nicht existiert.
1.Sie müssen protobuf
installieren.
https://github.com/google/protobuf/releases
cd
Ihr Pfad zu object_detection
protoc objektdetektion/protos/string_int_label_map.proto --python_out =.
sie finden string_int_label_map_pb2.py
-Datei in 'object_detection\protos'
PYTHONPATH
hinzufügen.Sie müssen protoc Version 3.3 (bereits kompiliert) herunterladen. Benutzte protoc im bin-Verzeichnis, um diesen Befehl wie folgt auszuführen:
tensorflow$ mkdir protoc_3.3
tensorflow$ cd protoc_3.3
tensorflow/protoc_3.3$ wget wget https://github.com/google/protobuf/releases/download/v3.3.0/protoc-3.3.0-linux-x86_64.Zip
tensorflow/protoc_3.3$ chmod 775 protoc-3.3.0-linux-x86_64.Zip
tensorflow/protoc_3.3$ unzip protoc-3.3.0-linux-x86_64.Zip
tensorflow/protoc_3.3$ cd ../models/research/
tensorflow/protoc_3.3$ /home/saikishor/tensorflow/protoc_3.3/bin/protoc object_detection/protos/*.proto --python_out=.
Das wird hoffentlich funktionieren !!
im Ordner python *./site-packages können Sie den Ordner utils sehen. Standardmäßig wird beim Ausführen von "from utils import label_map_util" der Befehl label_map_util in python . utils Ordner.
dieser Fehler kann behoben werden, indem das Verzeichnis oder geändert wird, indem eine Datei von tensorflow/models/utils nach python *. */site-packages/utils kopiert wird