Investigate Object Detection in Alsora Foxy TensorFlow 20220107
From wikidb
Contents
References
Object Detection Usage Task 2
Copied from
Plug in webcam and do the follow source in each terminal
$ source ~/tf_ws/install/local_setup.sh
TERMINAL 1
$ ros2 run tf_detection_py server 2021-08-28 13:48:23.345601: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libcudart.so.11.0'; dlerror: libcudart.so.11.0: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: /home/eepp/tf_ws/install/tf_interfaces/lib:/home/eepp/image_ws/install/stereo_image_proc/lib:/home/eepp/image_ws/install/realsense_ros/lib:/home/eepp/image_ws/install/realsense_msgs/lib:/home/eepp/image_ws/install/realsense_camera_msgs/lib:/home/eepp/image_ws/install/image_view/lib:/home/eepp/image_ws/install/image_rotate/lib:/home/eepp/image_ws/install/image_proc/lib:/home/eepp/image_ws/install/depth_image_proc/lib:/home/eepp/turtlebot3_ws/install/turtlebot3_msgs/lib:/usr/lib/x86_64-linux-gnu/gazebo-11/plugins:/opt/ros/foxy/opt/yaml_cpp_vendor/lib:/opt/ros/foxy/opt/rviz_ogre_vendor/lib:/opt/ros/foxy/lib/x86_64-linux-gnu:/opt/ros/foxy/lib 2021-08-28 13:48:23.345637: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine. 2021-08-28 13:48:26.952001: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libcuda.so.1'; dlerror: libcuda.so.1: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: /home/eepp/tf_ws/install/tf_interfaces/lib:/home/eepp/image_ws/install/stereo_image_proc/lib:/home/eepp/image_ws/install/realsense_ros/lib:/home/eepp/image_ws/install/realsense_msgs/lib:/home/eepp/image_ws/install/realsense_camera_msgs/lib:/home/eepp/image_ws/install/image_view/lib:/home/eepp/image_ws/install/image_rotate/lib:/home/eepp/image_ws/install/image_proc/lib:/home/eepp/image_ws/install/depth_image_proc/lib:/home/eepp/turtlebot3_ws/install/turtlebot3_msgs/lib:/usr/lib/x86_64-linux-gnu/gazebo-11/plugins:/opt/ros/foxy/opt/yaml_cpp_vendor/lib:/opt/ros/foxy/opt/rviz_ogre_vendor/lib:/opt/ros/foxy/lib/x86_64-linux-gnu:/opt/ros/foxy/lib 2021-08-28 13:48:26.952056: W tensorflow/stream_executor/cuda/cuda_driver.cc:326] failed call to cuInit: UNKNOWN ERROR (303) 2021-08-28 13:48:26.952101: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:156] kernel driver does not appear to be running on this host (hood): /proc/driver/nvidia/version does not exist 2021-08-28 13:48:26.952523: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 FMA To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags. 2021-08-28 13:48:26.994763: I tensorflow/compiler/mlir/mlir_graph_optimization_pass.cc:176] None of the MLIR Optimization Passes are enabled (registered 2) 2021-08-28 13:48:27.013943: I tensorflow/core/platform/profile_utils/cpu_utils.cc:114] CPU Frequency: 1895505000 Hz [INFO] [1630172911.870803088] [detection_server]: Load model completed! [INFO] [1630172915.140851798] [detection_server]: Warmup completed! Ready to receive real images!
TERMINAL 2
$ ros2 run image_tools cam2image --ros-args -p frequency:=2.0 [ WARN:0] global ../modules/videoio/src/cap_gstreamer.cpp (935) open OpenCV | GStreamer warning: Cannot query video position: status=0, value=-1, duration=-1 [INFO] [1630174558.757006217] [cam2image]: Publishing image #1 [INFO] [1630174559.255885363] [cam2image]: Publishing image #2 [INFO] [1630174559.755881035] [cam2image]: Publishing image #3 [INFO] [1630174560.255851063] [cam2image]: Publishing image #4 [INFO] [1630174560.755879077] [cam2image]: Publishing image #5 [INFO] [1630174561.255887359] [cam2image]: Publishing image #6 ... ...
TERMINAL 3
Note: detections_image below
$ ros2 topic list /clicked_point /detections /detections_image /flip_image /goal_pose /image /initialpose /parameter_events /rosout /tf /tf_static /vision_info $ ros2 run image_tools showimage image:=detections_image [WARN] [1630175001.504205227] [rcl]: Found remap rule 'image:=detections_image'. This syntax is deprecated. Use '--ros-args --remap image:=detections_image' instead. [WARN] [1630175001.504586499] [rcl]: Found remap rule 'image:=detections_image'. This syntax is deprecated. Use '--ros-args --remap image:=detections_image' instead. [INFO] [1630175001.879732533] [showimage]: Subscribing to topic 'image' [INFO] [1630175001.973765362] [showimage]: Received image #map Received image #map [INFO] [1630175002.460577395] [showimage]: Received image #map Received image #map
showimage window
Note: There is a 59% chance that I am a person. What can I say.
Nodes and Topics
Terminal 4
$ ros2 node list /cam2image /detection_server /showimage $ ros2 topic list /detections /detections_image /flip_image /image /parameter_events /rosout /vision_info $ rqt_grap
This shows the image directly from the webcam
$ ros2 run image_tools showimage image:=image
Image Tools
$ pwd /opt/ros/foxy/lib/image_tools $ ll total 148 drwxr-xr-x 2 root root 4096 Mar 11 2021 ./ drwxr-xr-x 92 root root 45056 Aug 12 19:53 ../ -rwxr-xr-x 1 root root 47480 Feb 25 2021 cam2image* -rwxr-xr-x 1 root root 47480 Feb 25 2021 showimage* $ ps -ux eepp 4587 2.0 0.5 1010504 92124 pts/1 SLl+ 13:27 0:07 /opt/ros/foxy/lib/image_tools/cam2image --ros-args -p frequency:=2.0 eepp 6455 0.2 0.6 1367832 106256 pts/3 SLl+ 15:34 0:17 /opt/ros/foxy/lib/image_tools/showimage image:=detections_image
explore tf_detection_py
$ps -au eepp 5472 72.9 6.1 3551620 1005320 pts/0 Sl+ 13:29 3:02 /usr/bin/python3 /home/eepp/tf_ws/install/tf_detection_py/lib/tf_detection_py/server
Executables
$ pwd /home/eepp/tf_ws/install/tf_detection_py/lib/tf_detection_py $ ls catsNdogs client_test face_detection server
Source
$ pwd home/eepp/tf_ws/src/ros2-tensorflow $ ls ros2_tensorflow tf_classification_py tf_interfaces ros2_tf_core tf_detection_py
Libraries
$ pwd /usr/local/lib/python3.8/dist-packages/tensorflow/models/research
$ ls adversarial_text deeplab marco seq_flow_lite attention_ocr deep_speech nst_blogpost slim audioset delf object_detection vid2depth autoaugment efficient-hrl pcl_rl cognitive_planning lfads README.md cvt_text lstm_object_detection rebar $ typora README.md & [3] 12643
$ cd object_detection/ $ ls anchor_generators __init__.py box_coders inputs.py builders inputs_test.py colab_tutorials legacy configs matchers CONTRIBUTING.md meta_architectures core metrics data model_hparams.py data_decoders model_lib.py dataset_tools model_lib_tf1_test.py dockerfiles model_lib_tf2_test.py eval_util.py model_lib_v2.py eval_util_test.py model_main.py exporter_lib_tf2_test.py model_main_tf2.py exporter_lib_v2.py models exporter_main_v2.py model_tpu_main.py exporter.py packages exporter_tf1_test.py predictors export_inference_graph.py protos export_tflite_graph_lib_tf2.py README.md export_tflite_graph_lib_tf2_test.py samples export_tflite_graph_tf2.py ssd_mobilenet_v1_coco_2017_11_17 export_tflite_ssd_graph_lib.py test_data export_tflite_ssd_graph_lib_tf1_test.py test_images export_tflite_ssd_graph.py tpu_exporters g3doc utils inference $ typora README.md & [3] 12784