Estoy intentando obtener la API de detección de objetos TensorFlow
https://github.com/tensorflow/models/tree/master/research/object_detection
trabajando en Windows siguiendo las instrucciones de instalación
https://github.com/tensorflow/models/tree/master/research/object_detection
Que parecen ser para Linux / Mac. Solo puedo hacer que esto funcione si pongo un script en el directorio en el que cloné el repository anterior. Si pongo el script en cualquier otro directorio, obtengo este error:
ModuleNotFoundError: No module named 'utils'
Sospecho que la causa no está haciendo correctamente el equivalente de Windows de este comando que se encuentra en las instrucciones de instalación anteriores:
# From tensorflow/models/research/ export PYTHONPATH=$PYTHONPATH:`pwd`:`pwd`/slim
Estoy usando Windows 10, Python 3.6 y TensorFlow 1.4.0 si eso importa. Por supuesto, he buscado en Google sobre esta preocupación y he encontrado varios enlaces, por ejemplo, este:
https://github.com/tensorflow/models/issues/1747
Pero esto no ha resuelto la preocupación. ¿Algunas sugerencias para resolver esto?
Aquí están los pasos que he hecho hasta ahora específicamente:
1) Instale TensorFlow y las herramientas relacionadas a través de pip3
2) Desde un indicador de comando administrativo, ejecute lo siguiente:
pip3 install pillow pip3 install lxml pip3 install jupyter pip3 install matplotlib
3) Clone el repository de “modelos” de TensorFlow en la carpeta Documentos, en mi caso
C:\Users\cdahms\Documents\models
4) Descargué Google Protobuf https://github.com/google/protobuf versión v3.4.0 de Windows “protoc-3.4.0-win32.zip” (probé la versión más reciente 3.5.1 y obtuve errores en los pasos posteriores, por lo que Probé 3.4.0 por este video https://www.youtube.com/watch?v=COlbP62-BU&list=PLQVvvaa0QuDcNK5GeCQnxYnSSaar2tpku&index=1 y la comstackción de protobuf funcionó)
5) Extraiga la descarga de Protobuf a los archivos de progtwig, específicamente
"C:\Program Files\protoc-3.4.0-win32"
6) CD en el directorio de modelos / investigación, específicamente
cd C:\Users\cdahms\Documents\models\research
7) Ejecutado la comstackción de protobuf, específicamente
“C:\Program Files\protoc-3.4.0-win32\bin\protoc.exe” object_detection/protos/*.proto --python_out=.
Navegar a:
C:\Users\cdahms\Documents\models\research\object_detection\protos
y verifique que los archivos .py se crearon exitosamente como resultado de la comstackción (solo los archivos .proto estaban allí para comenzar)
8) cd al directorio object_detection, ej:
cd C:\Users\cdahms\Documents\models\research\object_detection
luego ingrese lo siguiente en el símbolo del sistema para iniciar object_detection_tutorial.ipynb Jupyter Notebook
jupyter notebook
9) En el cuaderno de Jupyter, elija “object_detection_tutorial.ipynb” -> Celda -> Ejecutar todo, el ejemplo debería ejecutarse dentro del cuaderno
10) En el cuaderno de Jupyter, seleccione “Archivo” -> “Descargar como” -> “Python”, y guarde la versión .py del cuaderno en el mismo directorio, es decir,
C:\Users\cdahms\Documents\models\research\object_detection\object_detection_tutorial.py
Ahora puede abrir el script en su editor de Python elegido (por ejemplo, PyCharm) y ejecutarlo.
11) Mueva el script a cualquier otro directorio, luego intente ejecutarlo y encontrará que obtendrá el error:
ModuleNotFoundError: No module named 'utils'
porque aún no hemos informado a Python cómo encontrar el directorio de utils que usan estas líneas:
from utils import label_map_util from utils import visualization_utils as vis_util
Para resolver esto. . .
12) Vaya a Sistema -> Configuración avanzada del sistema -> Variables de entorno. . . -> Nuevo, y agregue una variable con el nombre PYTHONPATH y estos valores:
13) También en Variables de entorno, edite PATH y agregue% PYTHONPATH% así:
14) Reinicie para asegurarse de que estos cambios de ruta tengan efecto.
15) Abra un símbolo del sistema y ejecute el comando “set”, verifique que PYTHONPATH esté allí y PYTHONPATH y PATH contengan los valores de los pasos anteriores.
16) Ahora puede copiar “object_detection_tutorial.py” a cualquier otro directorio y se ejecutará
Como se mencionó en el comentario, utils
es un submódulo por lo que realmente necesita agregar object_detection
a PYTHONPATH
, no object_detection/utils
.
Me alegra que te haya funcionado.
cd Research / Object_Detection
discos compactos ..
Investigación
INVESTIGACIÓN
INVESTIGACIÓN
3.exportación PYTHONPATH = $ PYTHONPATH: pwd
: pwd
/ slim
4.protoc object_detection / protos / string_int_label_map.proto –python_out =.
CD OBJECT_DETECTION
Cuaderno 6.jupyter
El siguiente comando no funciona en Windows:
export PYTHONPATH=$PYTHONPATH:`pwd`:`pwd`/slim
En su lugar, seguí las instrucciones de este tutorial , que recomienda configurar las variables de ruta para tres directorios diferentes manualmente. Simplemente agregué una ruta para el directorio utils también. Hasta ahora ha funcionado sin error.
¡Asegúrese de tener un archivo __init__.py
en su carpeta research / object_detection / protos! El archivo __init__.py
está vacío pero debe existir para que el módulo protos se cree correctamente.