Herramienta de anotación de un archivo bag.
Esta herramienta utiliza TensorFlow para identificar objetos de interés en las imagenes contenidas en un archivo bag.
Para ello, se ha utilizado el siguiente modelo --> https://www.tensorflow.org/hub/tutorials/tf2_object_detection?hl=en
Es normal que la herramienta se demore un poco en la primera vez que se ejecuta.
Esta herramienta requiere las siguientes librerías:
-os
-pathlib
-matplotlib
-io
-scipy
-numpy
-six
-PIL
-tensorflow
-tensorflow_hub
Descargar TensorFlow Object Detection API --> git clone --depth 1 https://github.com/tensorflow/models
Para inicializar la herramienta, lo primero que habrá que hacer será crear un catkin workspace. En la carpeta src de dicho workspace, habrá que añadir la carpeta image_publish que se encuentra en este repositorio.
En el script imagePublisher.py (que también se encuentra en la carpeta image_publish) hay que modificar la siguiente linea:
sys.path.insert(1, '/home/roberott/Desktop/prueba')
Habrá que poner la ruta del script object_Detection_TF.py, esto es necesario ya que lo más práctico, y lo que hemos hecho nosotros es tener dicho script en un virtual enviroment con tensorflow instalado.
Del script object_Detection_TF.py habrá que modificar la siguiente linea:
PATH_TO_LABELS = '/home/roberott/Desktop/prueba/models/research/object_detection/data/mscoco_label_map.pbtxt'
Hay que poner la ruta al mscoco_label_map.pbtxt que se descargó del repositorio de tensorflow.
Una vez esté hecho todo lo anterior, solamente tendremos que introducir los siguientes comandos:
source devel/setup.bash o source devel/setup.zsh (depende del intérprete de comandos que utilicemos)
roslaunch image_publish image_publisher.launch bag_file:="ruta_archivo_bag" image:="topico"
Ejemplo:
roslaunch image_publish image_publisher.launch bag_file:=/home/roberott/Downloads/coche_personas.bag image:=cv_camera/image_raw/
Una vez hecho esto, la herramienta se inicializará, seleccionará la GPU automáticamente y empezará la identificación de objetos en el bag específicado.