Cozmo&AI作业

2022-04-29 20:20:00 浏览数 (1)

学习下面链接内容,将其实现并应用到Cozmo或mrobot机器人中。


参考链接:

1. ros_caffe:github.com/tzutalin/ros_caffe

2. Tensorflow_in_ROS:github.com/shunchan0677/Tensorflow_in_ROS

3. cozmo-tensorflow:github.com/whatrocks/cozmo-tensorflow

ros_people_object_detection_tensorflow

github.com/cagbal/ros_people_object_detection_tensorflow

广泛使用的ROS工具箱,用于物体检测和跟踪以及面部/动作识别,具有2D和3D支持,使机器人了解周围的环境。

技术

此repo使用许多开源项目来正常工作:

  • [Tensorflow]
  • [Tensorflow-Object Detection API]
  • [Tensorflow Hub]
  • [ROS]
  • [numpy的]
  • [face_recognition] https://github.com/ageitgey/face_recognition
  • [DLIB]
  • [cob_perception_common] https://github.com/ipa-rmb/cob_perception_common.git
  • [protobuf的]

对于Tracker部分:

  • scikit学习
  • scikit图像
  • FilterPy

安装

首先,应在您的系统上安装tensorflow。

然后,

代码语言:javascript复制
$ cd && mkdir -p catkin_ws/src && cd ..
$ catkin_make && cd src
$ git clone --recursive https://github.com/cagbal/
ple_object_detection_tensorflow.git
$ git clone https://github.com/cagbal/cob_perception_common.git
$ cd cob_people_object_detection_tensorflow/src
$ protoc object_detection/protos/*.proto --python_out=.
$ cd ~/catkin_ws
$ rosdep install --from-path src/ -y -i
$ catkin_make
$ pip install face_recognition

repo包含最快的基于mobilenet的方法,因此您可以跳过以下步骤。

然后,从 Models Zoo中安装tensorflow对象检测模型。

并将这些模型放入src / object_detection /,最后设置launch / cob_people_object_detection_tensoflow_params.yaml的model_name参数

运行

在ROS中打开相机驱动程序,并在启动目录下的yaml配置文件中设置输入RGB主题名称。默认值为openni2。

用于运行一切,(这将适用于2D和3D)

代码语言:javascript复制
$ roslaunch cob_people_object_detection_tensorflow alltogether.launch

上面的代码将启动所有内容。它非常适合从这个回购开始。但是,如果您需要一些灵活性,则需要逐个启动每个节点。如下:

对于物体检测:

代码语言:javascript复制
$ roslaunch cob_people_object_detection_tensorflow cob_people_object_detection_tensorflow.launch

然后,它开始为每个检测到的对象分配ID,并将结果发布到/ object_tracker / tracks。请注意,检测到的跟踪对象编号可能不同。

如果您还想运行跟踪器,

代码语言:javascript复制
$ roslaunch cob_people_object_detection_tensorflow cob_people_object_tracker.launch

如果您还想运行face_recognition,

将人脸图像放入人员文件夹并启动:

代码语言:javascript复制
$ roslaunch cob_people_object_detection_tensorflow cob_face_recognizer.launch

如果你还想运行深度探测器,

代码语言:javascript复制
$ roslaunch cob_people_object_detection_tensorflow projection.launch

并设置detections.pose.pose.position.x / y / z并将其设为pusblishes。

如果您还想运行动作识别,

代码语言:javascript复制
$ roslaunch cob_people_object_detection_tensorflow action_recognition.launch

然后,您将看到/ action_recognition / action_predictions上发布的概率

Subscibes:订阅

  • 到* params.yaml文件中设置的任何RGB图像主题。

     Publishes:发布

  • / object_detection / detection(cob_perception_msgs / DetectionArray)包括所有具有概率,标签和边界框的检测
  • / object_detection / detections_image(sensor_msgs / Image)带有边界框的图像
  • / object_tracker / tracks(cob_perception_msgs / DetectionArray)仅包含跟踪对象及其边界框,标签。这里,ID是跟踪器分配的检测ID。示例:DetectionArray.detections [0] .id
  • / face_recognizer / faces(cob_perception_msgs / DetectionArray)带有面部和人物边界框的面部标签
  • / action_recognition / action_predictions(cob_perception_msgs / ActionRecognitionmsg)使用Kinetics 600数据集标签的动作识别概率

性能

我的计算机(Intel(R)Core(TM)i7-6820HK CPU @ 2.70GHz)的最后五次检测时间为几秒钟:

  • 0.105810880661
  • 0.108750104904
  • 0.112195014954
  • 0.115020036697
  • 0.108013153076

0 人点赞