J'essaie d'exécuter le programme de type object_detection.ipynb
mais il s'agit d'un programme python normal (.py). Cela fonctionne très bien, mais lors de l'exécution dans le dossier ..models/research/object_detection
, mais le problème principal est lorsque j'essaie d'exécuter ce code dans un autre répertoire avec sys.append
approprié, le message d'erreur suivant s'affiche:
Traceback (appel le plus récent en dernier):
Fichier "obj_detect.py", ligne 20, dans
from utils import label_map_util
ImportError: Aucun module nommé utils
Si j'essaie d'importer le fichier à partir du dossier ..models/research/object_detection
dans un programme python situé dans un répertoire différent, il se produit alors plus d'erreurs, comme suit:
Traceback (appel le plus récent en dernier):
Fichier "classify_image.py", ligne 10, dans
import object_dt
Fichier "/home/saikishor/Tensorflow_Models/models/research/object_detection/object_dt.py", ligne 18, dans
from utils import label_map_util
Fichier "/home/saikishor/Tensorflow_Models/models/research/object_detection/utils/label_map_util.py", ligne 22, dans
from object_detection.protos import string_int_label_map_pb2
ImportError: Aucun module nommé object_detection.protos
Comment résoudre ce problème?
Il se peut que votre dossier object_detection ne se trouve pas sur votre chemin. Python ne sait donc pas où chercher les fichiers.
vous pouvez vérifier cela depuis python avec
import sys
sys.path
si tel est le problème, vous pouvez le résoudre en
sys.path.insert(0, 'path/to/your/object_detection')
J'ai vu le même problème. c'est parce que le fichier string_int_label_map_pb2.py
n'existe pas.
1.vous devez installer protobuf
.
https://github.com/google/protobuf/releases
cd
votre chemin vers object_detection
protoc objet_detection/protos/string_int_label_map.proto --python_out =.
vous trouverez le fichier string_int_label_map_pb2.py
dans 'object_detection\protos'
PYTHONPATH
.Vous devez télécharger le protocole version 3.3 (déjà compilé). Le protocole utilisé dans le répertoire bin pour exécuter cette commande est le suivant:
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=.
Cela fonctionnera, espérons-le!
dans le dossier python * ./ site-packages, vous pouvez voir le dossier utils . par défaut, lorsque nous exécutons "from utils import label_map_util", la recherche label_map_util dans python. */site-packages/dossier utils.
cette erreur peut être résolue en modifiant le répertoire .__ ou en copiant un fichier de tensorflow/models/utils vers python *. */site-packages/utils