导航

    蓝鲸ROS机器人论坛

    • 注册
    • 登录
    • 搜索
    • 版块
    • 话题
    • 热门
    ROS交流群
    ROS Group
    产品服务
    Product Service
    开源代码库
    Github
    官网
    Official website
    技术交流
    Technological exchanges
    激光雷达
    LIDAR
    ROS教程
    ROS Tourials
    深度学习
    Deep Learning
    机器视觉
    Computer Vision

    在小强上使用body_pose进行人体识别

    技术交流
    深度学习 机器视觉
    6
    20
    12643
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • weijiz
      weijiz 最后由 weijiz 编辑

      body_pose 是一个人体姿态识别的软件包。这个软件包可以从图片中识别出人体的耳朵,眼睛,鼻子,四肢的共17个特征点。其实现是通过深度学习网络利用tensorflow框架。此软件还支持多人同时识别。

      0_1530878202843_6f71b239-27ae-453a-94d9-94de429c8c84-image.png

      安装

      1. 安装tensorflow
        由于小强上面没有Nvidia显卡, 所以我们安装CPU版本的Tensorflow。小强的CPU支持一些高效的指令集,默认的Tensorflow为了能够在更多平台上运行,没有使用这些指令集。所以性能实际上没有发挥到最高。我们可以安装开启了这些优化指令的版本。
      sudo pip install --ignore-installed --upgrade "https://github.com/lakshayg/tensorflow-build/raw/master/tensorflow-1.4.0-cp27-cp27mu-linux_x86_64.whl"
      
      1. 安装软件包相关依赖
      sudo pip install scipy scikit-image matplotlib pyyaml easydict cython munkres==1.0.12
      
      1. 下载相关模型
      # 单人模型
      cd src/models/mpii
      ./download_models.sh
      $ cd -
      # 多人模型
      
      ./compile.sh
      cd models/coco
      ./download_models.sh
      cd -
      

      运行

      1. 运行单人识别测试程序
      # 在src文件夹内运行
      TF_CUDNN_USE_AUTOTUNE=0 python demo/singleperson.py
      

      运行成功后可以看到下图

      0_1530879542859_94996fd8-2ca8-418f-ac9f-11da6221380a-image.png

      1. 运行多人识别的例子
      TF_CUDNN_USE_AUTOTUNE=0 python demo/demo_multiperson.py
      

      成功运行后显示下面的图像

      0_1530879857466_158a04a4-defc-498a-87e3-fdae8ee9ab41-image.png

      1. 运行ROS服务
      roslaunch body_pose body_pose_test.launch
      

      这个launch文件在小强上可以直接运行。但是如果不是在小强上你需要把usb_cam的节点换成自己的摄像头节点。
      服务启动成功后会自动的识别摄像头中的图像。处理的结果会显示在 /body_pose_tester/processed_image topic 里面。可以利用摄像头显示处理结果。

      rosrun image_view image_view image:=/body_pose_tester/processed_image
      

      可以看到图中标了一些圆圈。这些都是被识别出的人体特征位置。

      0_1530880373290_QQ图片20180706203240.jpg

      在自己的程序中使用此服务

      可以在自己的launch文件中添加这样的内容来启动节点

      <node name="body_pose" pkg="body_pose" type="body_pose_node.py">
          <param name="process_width" value="200" />
          <param name="process_height" value="150" />
          <param name="conf_min_count" value="3" />
      </node>
      

      参数说明
      process_width 内部处理宽度,process_height内部处理高度。可能采集的图片很大,这样处理起来非常费时间。可以通过这两个参数对图片进行压缩以提高处理速度。
      conf_min_count最小可接受点数。如果在一个人上识别出的特征点小于这个值,则认为这个识别对象并不是人。

      发布的服务
      服务默认发布在 ~get_body_pose可以类型为BodyPose.srv。

      详细的使用方法可以参照 body_pose_test_node.py 文件。

      1 条回复 最后回复 回复 引用 0
      • robot0612
        robot0612 最后由 编辑

        配置运行roslaunch body_pose body_pose_test.launch出现
        082d6687-09fe-4421-9990-730fe8e1e5c0-image.png

        1 条回复 最后回复 回复 引用 0
        • robot0612
          robot0612 最后由 编辑

          运行TF_CUDNN_USE_AUTOTUNE=0 python demo/demo_multiperson.py时出现
          e4dbeb85-4586-4914-973e-a1cb899952c7-image.png

          weijiz 1 条回复 最后回复 回复 引用 0
          • weijiz
            weijiz @robot0612 最后由 编辑

            @robot0612 是不是模型没有下载完整,重新执行下载模型的指令试试

            1 条回复 最后回复 回复 引用 0
            • robot0612
              robot0612 最后由 robot0612 编辑

              模型重新下载了。运行还是出现这个问题:cf613e6b-fe38-4e6b-827b-cabd6695ba4c-image.png

              weijiz 2 条回复 最后回复 回复 引用 0
              • weijiz
                weijiz @robot0612 最后由 编辑

                @robot0612 感觉你的python环境可能有问题,错误的代码语法是python3的,但是却出现在python2.7的路径里面

                1 条回复 最后回复 回复 引用 0
                • weijiz
                  weijiz @robot0612 最后由 编辑

                  @robot0612 里面的一个依赖库新版本不支持python2.7了。需要下载旧版本

                  pip install munkres==1.0.12
                  
                  1 条回复 最后回复 回复 引用 0
                  • lm213
                    lm213 最后由 编辑

                    这个姿态识别包用的什么算法啊?大概实现的原理能说一下吗?

                    weijiz 1 条回复 最后回复 回复 引用 0
                    • weijiz
                      weijiz @lm213 最后由 编辑

                      @lm213 这个包是由这里改出来的,说明里面有算法的论文。具体的我也没看,不太清楚

                      1 条回复 最后回复 回复 引用 0
                      • lm213
                        lm213 最后由 编辑

                        此回复已被删除!
                        1 条回复 最后回复 回复 引用 0
                        • lm213
                          lm213 最后由 lm213 编辑

                          此回复已被删除!
                          1 条回复 最后回复 回复 引用 0
                          • lm213
                            lm213 最后由 编辑

                            此回复已被删除!
                            1 条回复 最后回复 回复 引用 0
                            • lm213
                              lm213 最后由 编辑

                              此回复已被删除!
                              1 条回复 最后回复 回复 引用 0
                              • moist
                                moist 最后由 编辑

                                执行单人姿态识别成功,没有报错。
                                执行多人姿态识别时候报错如下
                                Traceback (most recent call last):
                                File “demo/demo_multiperson.py”, line 17, in
                                from multiperson.detections import extract_detections
                                File “demo/…/multiperson/detections.py”, line 10, in
                                from nms_grid import nms_grid
                                ImportError: No module named nms_grid

                                ROS执行报错如下,好像是同名节点的问题:
                                [camera_node-5] process has died [pid 31196, exit code 1, cmd /home/xiaoqiang/Documents/ros/devel/lib/usb_cam/usb_cam_node __name:=camera_node __log:=/home/xiaoqiang/.ros/log/b7b359c8-2222-11eb-ae28-cfd9b2d8c1b5/camera_node-5.log].
                                log file: /home/xiaoqiang/.ros/log/b7b359c8-2222-11eb-ae28-cfd9b2d8c1b5/camera_node-5*.log
                                shutdown request: new node registered with same name
                                有懂的朋友麻烦解释一下,感谢。

                                weijiz 1 条回复 最后回复 回复 引用 -1
                                • weijiz
                                  weijiz @moist 最后由 编辑

                                  @moist 可能你的模型没有下载完整

                                  marcos452 1 条回复 最后回复 回复 引用 0
                                  • marcos452
                                    marcos452 最后由 编辑

                                    此回复已被删除!
                                    1 条回复 最后回复 回复 引用 0
                                    • marcos452
                                      marcos452 @weijiz 最后由 marcos452 编辑

                                      @weijiz 您好,我roslaunch body_pose body_pose_test.launch后
                                      出现如下情况
                                      [WARN] [1605520393.882227]: Cannot get image from ~image
                                      [WARN] [1605520394.884241]: Cannot get image from ~image
                                      但是我点击鼠标右键会出现以下命令
                                      [ INFO] [1605520396.100524512]: Saved image frame0004.jpg
                                      然后我就使用rosrun image_view image_view image:=/body_pose_tester/processed_image
                                      发现摄像头就消失了,也没有发现出现被识别出的人体特征位置的照片
                                      您能否为解答一下吗?
                                      我注释这句话<include file=“$(find xiaoqiang_tts)/launch/tts_xunfei.launch” /–>

                                      yellow 1 条回复 最后回复 回复 引用 0
                                      • yellow
                                        yellow 最后由 编辑

                                        此回复已被删除!
                                        1 条回复 最后回复 回复 引用 0
                                        • yellow
                                          yellow @marcos452 最后由 编辑

                                          @marcos452 你好 请问你解决了这个问题吗 我也遇到了此问题

                                          weijiz 1 条回复 最后回复 回复 引用 0
                                          • weijiz
                                            weijiz @yellow 最后由 编辑

                                            @yellow launch文件内的图像话题要改成kinect的图像话题

                                            1 条回复 最后回复 回复 引用 0
                                            • 1 / 1
                                            • First post
                                              Last post
                                            Copyright © 2015-2023 BlueWhale community