From b31b5674bbbd8f5621ab4d4fa97817d8dacb0c73 Mon Sep 17 00:00:00 2001 From: francescodelduchetto Date: Mon, 25 Mar 2024 17:07:31 +0000 Subject: [PATCH 1/4] fix issues and dependencies with conversion to ROS 2 --- .devcontainer/Dockerfile | 2 +- .devcontainer/devcontainer.json | 2 ++ .devcontainer/run.sh | 31 ++++++++++++++++++ engagement_detector/engagement_detector.py | 27 ++++++++------- .../ros_engagement_detector.py | 13 ++++---- imgs/dog.png | Bin 0 -> 121984 bytes package.xml | 8 ++--- setup.py | 5 ++- 8 files changed, 64 insertions(+), 24 deletions(-) create mode 100644 .devcontainer/run.sh create mode 100644 imgs/dog.png diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index b1036ae..e3e6bc8 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -26,7 +26,7 @@ RUN sudo apt install -y git wget python3-pip # Rosdep update RUN rosdep update -RUN pip3 install -U --user pip && pip3 install --user -U numpy pillow tensorflow keras opencv-python rospkg +RUN pip3 install -U --user pip && pip3 install --user -U numpy pillow tensorflow==2.15.0 keras keras_applications opencv-python rospkg # Source the ROS setup file RUN echo "source /opt/ros/${ROS_DISTRO}/setup.bash" >> ~/.bashrc diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 7f466ae..6574e52 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -5,7 +5,9 @@ "runArgs": [ // "--privileged", // "--network=host" + "--gpus=all" ], + "postCreateCommand": "bash .devcontainer/run.sh", "workspaceMount": "source=${localWorkspaceFolder},target=/${localWorkspaceFolderBasename},type=bind", "workspaceFolder": "/${localWorkspaceFolderBasename}", "mounts": [ diff --git a/.devcontainer/run.sh b/.devcontainer/run.sh new file mode 100644 index 0000000..df0fa7f --- /dev/null +++ b/.devcontainer/run.sh @@ -0,0 +1,31 @@ +#!/bin/bash + +set -e + + +sudo mkdir -p /ws/src && sudo chown -R vscode /ws +sudo ln -s /models /engagement_detector/models && sudo chown -R vscode /models + +ln -s /engagement_detector /ws/src/ + +source /opt/ros/${ROS_DISTRO}/setup.bash +# # sudo apt update + +rosdep --rosdistro=${ROS_DISTRO} update + +cd /ws +rosdep install --from-paths src --ignore-src -r -y +colcon build + +echo "source /ws/install/setup.bash" >> ~/.bashrc + +cd /engagement_detector +mkdir -p models + +if [ -f models/lstm_10_50_runsigm_runsigm.h5 ]; then + echo "File exists" +else + echo "Downloading model" + wget -O models/lstm_10_50_runsigm_runsigm.h5 'http://lcas.lincoln.ac.uk/owncloud/index.php/s/UHWU1g5qXU9RiAp/download' + sudo ln -s /models /engagement_detector/models +fi diff --git a/engagement_detector/engagement_detector.py b/engagement_detector/engagement_detector.py index 1e4614b..4610140 100755 --- a/engagement_detector/engagement_detector.py +++ b/engagement_detector/engagement_detector.py @@ -4,19 +4,21 @@ import numpy as np from PIL import Image -import keras +import tensorflow.compat.v1.keras as keras from keras.models import load_model from keras.preprocessing import image from keras_applications.resnext import ResNeXt50, preprocess_input from keras.applications.imagenet_utils import decode_predictions -import tensorflow as tf +# import tensorflow as tf +import tensorflow.compat.v1 as tf +tf.disable_v2_behavior() # disable most logs os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3' # ROS-independent class for the detector class EngagementDetector: - def __init__(self): + def __init__(self, test=False): self._this_dir_path = os.path.dirname(os.path.realpath(__file__)) self.resNet = None @@ -32,27 +34,28 @@ def __init__(self): keras.backend.set_session(sess) # load the networks in memory - self._load_networks() + self._load_networks(test=test) - def _load_networks(self): + def _load_networks(self, test=False): # load resnet - self.resNet = ResNeXt50(include_top=False, input_shape=(224, 224, 3), pooling='max', weights='imagenet', backend = keras.backend, layers = keras.layers, models = keras.models, utils = keras.utils) + self.resNet = ResNeXt50(include_top=test, input_shape=(224, 224, 3), pooling='max', weights='imagenet', backend = keras.backend, layers = keras.layers, models = keras.models, utils = keras.utils) self.resNet._make_predict_function() self.resNet_graph = tf.get_default_graph() ##### test resnet in detecting a dog in img ##### NOTE: set `include_top=True` above to test this - if False: - img_path = os.path.join(self._this_dir_path, "../../imgs/dog.png") + if test: + img_path = os.path.join(self._this_dir_path, "../imgs/dog.png") img = image.load_img(img_path, target_size=(224, 224)) img = image.img_to_array(img) x = preprocess_input(np.expand_dims(img.copy(), axis=0), backend = keras.backend, layers = keras.layers, models = keras.models, utils = keras.utils) preds = self.resNet.predict(x) - print(">> TEST: dog prediction\n", decode_predictions(preds, top=5)) - + print("\n\n\n>> TEST: dog prediction\n", decode_predictions(preds, top=5)) + print("\n\n\n") + # load lstm - model_path = os.path.join(self._this_dir_path, "../../models/lstm_10_50_runsigm_runsigm.h5") + model_path = os.path.join(self._this_dir_path, "/models/lstm_10_50_runsigm_runsigm.h5") self.lstm = load_model(model_path) self.lstm._make_predict_function() self.lstm_graph = tf.get_default_graph() @@ -81,4 +84,4 @@ def predict(self, frames_seq): return prediction if __name__ == "__main__": - det = EngagementDetector() \ No newline at end of file + det = EngagementDetector(test=True) \ No newline at end of file diff --git a/engagement_detector/ros_engagement_detector.py b/engagement_detector/ros_engagement_detector.py index 2d72787..9921d95 100755 --- a/engagement_detector/ros_engagement_detector.py +++ b/engagement_detector/ros_engagement_detector.py @@ -6,9 +6,10 @@ from std_msgs.msg import Float32 from cv_bridge import CvBridge, CvBridgeError import cv2 +import time import numpy as np -from engagement_detector import EngagementDetector -from time_serie_in_image import TimeSerieInImage +from engagement_detector.engagement_detector import EngagementDetector +from engagement_detector.time_serie_in_image import TimeSerieInImage from threading import Lock @@ -16,9 +17,9 @@ class ROSEngagementDetector(Node): def __init__(self): super().__init__('engagement_detector') - image_topic = node.declare_parameter("image", "/camera/color/image_raw").value - plot_in_image = node.declare_parameter("debug_image", True).value - out_image_topic = node.declare_parameter("out_image", "engagement_detector/out_image").value + image_topic = self.declare_parameter("image", "/camera/color/image_raw").value + plot_in_image = self.declare_parameter("debug_image", True).value + out_image_topic = self.declare_parameter("out_image", "engagement_detector/out_image").value self.plot_in_image = plot_in_image self.bridge = CvBridge() @@ -83,7 +84,7 @@ def timed_cb(self): def spin(self, hz=10): self.get_logger().info("Waiting to receive images...") while len(self.image_seq) < 10 and rclpy.ok(): - rclpy.sleep(0.2) + time.sleep(0.2) self.get_logger().info("DONE") timer = self.create_timer(1.0 / hz, self.timed_cb) diff --git a/imgs/dog.png b/imgs/dog.png new file mode 100644 index 0000000000000000000000000000000000000000..6417a4ee3f5438f1e95e7885646f088f94c19db3 GIT binary patch literal 121984 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

OPi$>2m*BO*Qt2ZaS1$9R=CA%lhi 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 O9QJI$!f^Hf7ybuJcNZrB literal 0 HcmV?d00001 diff --git a/package.xml b/package.xml index 8f13e11..1574113 100644 --- a/package.xml +++ b/package.xml @@ -17,11 +17,11 @@ python3-pytest launch_pytest - python-numpy - python-imaging - python-tensorflow-gpu-pip + python3-numpy + python3-imaging + python-tensorflow-pip python-keras-pip - python-opencv + python3-opencv std_msgs sensor_msgs rclpy diff --git a/setup.py b/setup.py index f77810f..aff1c46 100644 --- a/setup.py +++ b/setup.py @@ -1,5 +1,6 @@ #!/usr/bin/env python - +from os import path +from glob import glob from setuptools import setup from setuptools import find_packages @@ -13,6 +14,8 @@ ('share/ament_index/resource_index/packages', ['resource/' + package_name]), ('share/' + package_name, ['package.xml']), + (path.join('share', package_name), glob(path.join('engagement_detector', '*.py'))), + # (path.join('share', "models"), glob(path.join('models', '*.h5'))), ], install_requires=['setuptools'], zip_safe=True, From dec85b41f680fdb9ab4180299671bf0548952c88 Mon Sep 17 00:00:00 2001 From: francescodelduchetto Date: Mon, 25 Mar 2024 19:17:34 +0100 Subject: [PATCH 2/4] Update README.md --- README.md | 37 +++++++++++++++++++++++++++++-------- 1 file changed, 29 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index a8009bc..e68cd95 100644 --- a/README.md +++ b/README.md @@ -1,28 +1,36 @@ # Engagement Detector -ROS package to detect overall users engagement from a robot's ego camera in human-robot interactions. +ROS 2 package to detect overall users engagement from a robot's ego camera in human-robot interactions. The approach is detailed in the journal paper: [Del Duchetto F, Baxter P and Hanheide M (2020) Are You Still With Me? Continuous Engagement Assessment From a Robot's Point of View. Front. Robot. AI 7:116. doi: 10.3389/frobt.2020.00116](https://doi.org/10.3389/frobt.2020.00116) -## Install +## Setup Devcontainer ### Install package with dependencies +1. Make sure you have VSCode installed: https://code.visualstudio.com/download +2. Make sure you have git installed: https://git-scm.com/book/en/v2/Getting-Started-Installing-Git +3. Make sure you have the `Docker` and the `Dev Containers` extension in VSCode installed and working: https://code.visualstudio.com/docs/containers/overview and https://code.visualstudio.com/docs/devcontainers/containers + * ensure docker is working, i.e. try `docker run --rm hello-world` and check it succeeds for your user -1. Install python catkin util: `pip install catkin_pkg` +### Environment -2. In a terminal go into the root folder of the package: `cd engagement_detector/` +**If you are on a Windows PC the following two additional steps are required:** -3. and install: `pip install .` + - Open a terminal(e.g., window's powershell), type `git config --global core.autocrlf false` and press Enter + - Make sure docker is running by launching the docker desktop application -4. Then download the keras model of the newtork: `./download_model.sh` +Then: + +1. `git clone https://github.com/LCAS/engagement_detector.git` +2. `cd engagement_detector && git checkout humble-dev` +3. Open the folder `engagement_detector` with VSCode in the devcontainer. -5. Now, you can build the package in your catkin workspace (i.e. [http://wiki.ros.org/catkin/Tutorials/create_a_workspace](http://wiki.ros.org/catkin/Tutorials/create_a_workspace)). ## Launch -`roslaunch engagement_detector engagement_detector.launch` +`ros2 run engagement_detector engagement_detector_node` ### Engagement value @@ -34,6 +42,19 @@ The predicted engagment value is published on the topic `/engagement_detector/va - `debug_image`: (default: `true`) whether to publish the out debug image - `out_image`: (default: `/engagement_detector/out_image`) the debug image topic +## Webcam test in devcontainer + +The following command will take images from your PC's camera and publish it to the default image topic: +``` +ros2 run engagement_detector webcam_node +``` + +If you want to visualise the `out_image` topic you can do so by: + +1. launching the devcontainer VNC window (PORTS tab > right-click on desktop (6080) > Open in Browser > insert password: `vscode`) +2. open a new terminal and launch `rqt` +3. select Visualization > Image View. + ## Real-time visualization of engagement `rosrun image_view image_view image:=/engagement_detector/out_image` will show the camera image with the engagement serie data plotted on it. Something like this: From bac4e11219b11821f9b943d2d89085f740b2bf4a Mon Sep 17 00:00:00 2001 From: francescodelduchetto Date: Mon, 25 Mar 2024 18:18:30 +0000 Subject: [PATCH 3/4] fixes for humble-dev + webcam script --- .devcontainer/devcontainer.json | 15 ++++++- .devcontainer/run.sh | 2 +- .../ros_engagement_detector.py | 18 ++++----- engagement_detector/time_serie_in_image.py | 8 ++-- engagement_detector/webcam.py | 39 +++++++++++++++++++ package.xml | 2 - setup.py | 3 +- 7 files changed, 70 insertions(+), 17 deletions(-) create mode 100644 engagement_detector/webcam.py diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 6574e52..c3fca73 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,11 +1,24 @@ { "name": "humble desktop", "dockerFile": "Dockerfile", + "features": { + "ghcr.io/devcontainers/features/desktop-lite:1": {} + }, + "forwardPorts": [ + 6080 + ], + "portsAttributes": { + "6080": { + "label": "desktop" + } + }, //"image": "lcas.lincoln.ac.uk/lcas/devcontainer/engagement_detector:humble-dev", "runArgs": [ // "--privileged", // "--network=host" - "--gpus=all" + "--privileged", + "--shm-size=1g" + // "--gpus=all" ], "postCreateCommand": "bash .devcontainer/run.sh", "workspaceMount": "source=${localWorkspaceFolder},target=/${localWorkspaceFolderBasename},type=bind", diff --git a/.devcontainer/run.sh b/.devcontainer/run.sh index df0fa7f..f3a1d60 100644 --- a/.devcontainer/run.sh +++ b/.devcontainer/run.sh @@ -4,7 +4,7 @@ set -e sudo mkdir -p /ws/src && sudo chown -R vscode /ws -sudo ln -s /models /engagement_detector/models && sudo chown -R vscode /models +sudo ln -s /engagement_detector/models /models && sudo chown -R vscode /models ln -s /engagement_detector /ws/src/ diff --git a/engagement_detector/ros_engagement_detector.py b/engagement_detector/ros_engagement_detector.py index 9921d95..8dfa8f3 100755 --- a/engagement_detector/ros_engagement_detector.py +++ b/engagement_detector/ros_engagement_detector.py @@ -6,7 +6,6 @@ from std_msgs.msg import Float32 from cv_bridge import CvBridge, CvBridgeError import cv2 -import time import numpy as np from engagement_detector.engagement_detector import EngagementDetector from engagement_detector.time_serie_in_image import TimeSerieInImage @@ -27,7 +26,7 @@ def __init__(self): self.subscription = self.create_subscription( Image, - image_topic, + "/camera/color/image_raw", self._img_cb, 10 ) @@ -69,6 +68,10 @@ def _img_cb(self, msg): self.outImg_pub.publish(out_imgmsg) def timed_cb(self): + if len(self.image_seq) < 10: + self.get_logger().warn("Waiting to receive images...") + return + self.sequence_lock.acquire() tmp_image_seq = self.image_seq self.sequence_lock.release() @@ -77,16 +80,13 @@ def timed_cb(self): self.get_logger().warn("Could not make a prediction, probably the frame sequence length is not 10.") return - value = np.squeeze(prediction) - self.eng_pub.publish(value) + value = np.squeeze(prediction)[()].item() + fmsg = Float32() + fmsg.data = value + self.eng_pub.publish(fmsg) self.last_value = value def spin(self, hz=10): - self.get_logger().info("Waiting to receive images...") - while len(self.image_seq) < 10 and rclpy.ok(): - time.sleep(0.2) - self.get_logger().info("DONE") - timer = self.create_timer(1.0 / hz, self.timed_cb) rclpy.spin(self) diff --git a/engagement_detector/time_serie_in_image.py b/engagement_detector/time_serie_in_image.py index 893d426..3248c99 100755 --- a/engagement_detector/time_serie_in_image.py +++ b/engagement_detector/time_serie_in_image.py @@ -19,6 +19,8 @@ def __init__(self): self.pre_color = (0, 0, 255, 255) self.post_color = (0, 0, 100, 255) + self.font = ImageFont.load_default() + def step(self, frame, value): img = Image.fromarray(frame) @@ -39,8 +41,8 @@ def step(self, frame, value): grid_draw.line([(0, plot_offset), (width, plot_offset)], fill=(255, 255, 255), width=2) grid_draw.line([(0, plot_offset + plot_max_height), (width, plot_offset + plot_max_height)], fill=(255, 255, 255), width=2) grid_draw.line([(width/2., plot_offset - 10), (width/2., plot_offset + plot_max_height + 1)], fill=(200, 200, 200), width=2) - grid_draw.text((0, plot_offset - 11), "1.0", font=ImageFont.truetype("arial", 10), fill=(255, 255, 255)) - grid_draw.text((0, plot_offset + plot_max_height - 11), "0.0", font=ImageFont.truetype("arial", 10), fill=(255, 255, 255)) + grid_draw.text((0, plot_offset - 11), "1.0", font=self.font, fill=(255, 255, 255)) + grid_draw.text((0, plot_offset + plot_max_height - 11), "0.0", font=self.font, fill=(255, 255, 255)) # plot the series y_pre = self.data_serie[0:min(self.num_points_to_plot, self.data_serie.size)] @@ -61,6 +63,6 @@ def step(self, frame, value): plot_draw = ImageDraw.Draw(img) plot_draw.line(xy_pre, fill=self.pre_color, width=self.line_width, joint="curve") plot_draw.line(xy_post, fill=self.post_color, width=self.line_width, joint="curve") - plot_draw.text((width/2., plot_offset - 20 ), "%.2f" % value, font=ImageFont.truetype("arial", 16), fill=self.pre_color) + plot_draw.text((width/2., plot_offset - 20 ), "%.2f" % value, font=self.font, fill=self.pre_color) return np.array(img) diff --git a/engagement_detector/webcam.py b/engagement_detector/webcam.py new file mode 100644 index 0000000..0f29633 --- /dev/null +++ b/engagement_detector/webcam.py @@ -0,0 +1,39 @@ +#!/usr/bin/python3 +import rclpy +from rclpy.node import Node +import cv2 +from sensor_msgs.msg import Image +from cv_bridge import CvBridge, CvBridgeError + +class ImagePublisher(Node): + def __init__(self): + super().__init__("image_publisher") + self.bridge = CvBridge() + self.cap = cv2.VideoCapture(0) + self.bgr8pub = self.create_publisher(Image, "/camera/color/image_raw", 10) + + def run(self): + while True: + try: + r, frame = self.cap.read() + if not r: + return + # BGR8 + self.bgr8pub.publish(self.bridge.cv2_to_imgmsg(frame, "bgr8")) + + except CvBridgeError as e: + print(e) + self.cap.release() + +def main(args=None): + rclpy.init(args=args) + + ip = ImagePublisher() + print("Publishing...") + ip.run() + + ip.destroy_node() + rclpy.shutdown() + +if __name__ == '__main__': + main() diff --git a/package.xml b/package.xml index 1574113..fce65b0 100644 --- a/package.xml +++ b/package.xml @@ -15,10 +15,8 @@ ament_flake8 ament_pep257 python3-pytest - launch_pytest python3-numpy - python3-imaging python-tensorflow-pip python-keras-pip python3-opencv diff --git a/setup.py b/setup.py index aff1c46..0dbb47e 100644 --- a/setup.py +++ b/setup.py @@ -31,7 +31,8 @@ tests_require=['pytest'], entry_points={ 'console_scripts': [ - 'engagement_detector_node = engagement_detector.ros_engagement_detector:main' + 'engagement_detector_node = engagement_detector.ros_engagement_detector:main', + 'webcam_node = engagement_detector.webcam:main', ], }, ) From 99e5f5ba12bb76d39db3ab86b285817669a1776a Mon Sep 17 00:00:00 2001 From: francescodelduchetto Date: Mon, 25 Mar 2024 19:21:26 +0100 Subject: [PATCH 4/4] Update README.md --- README.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/README.md b/README.md index e68cd95..39add2a 100644 --- a/README.md +++ b/README.md @@ -55,9 +55,7 @@ If you want to visualise the `out_image` topic you can do so by: 2. open a new terminal and launch `rqt` 3. select Visualization > Image View. -## Real-time visualization of engagement - -`rosrun image_view image_view image:=/engagement_detector/out_image` will show the camera image with the engagement serie data plotted on it. Something like this: +## Example visualization of engagement Single user example | Multi users example