精华内容
下载资源
问答
  • 基于人工智能的无穿戴人体姿态识别技术研究.pdf
  • 人体关键点姿态识别

    千次阅读 2020-10-27 18:06:54
    人体关键点姿态识别是人体姿态识别技术的重要分支。通过检测人体行为表达过程中,每一帧人体姿态关键部位的位置,将人体姿态简化为人体关键点,并通过这些关键点对人体姿态表达的语义进行分类识别。 基于关键点的...

    一、技术难点介绍

    人体关键点姿态识别是人体姿态识别技术的重要分支。通过检测人体行为表达过程中,每一帧人体姿态关键部位的位置,将人体姿态简化为人体关键点,并通过这些关键点对人体姿态表达的语义进行分类识别。

    基于关键点的人体姿态识别可分为两个方面,即静态的人体姿态识别与动态的人体姿态识别,总的来说,人体关键点姿态识别技术主要面临的几方面技术难点如下:

    (1) 姿态位移尺度变换
    不同相机角度下捕获到的姿态关键点的空间位置、视角方向各不相同
    (2) 姿态大小尺度变换
    不同行为个体的差异造成相同人体姿态的尺寸大小、表观形状不完全相同。
    (3) 关键点噪声与关键点缺失
    人体姿态检测的造成的人体骨骼关键点丢失,或者关键点漂移等。
    (4) 人体姿态表达的视频区域分割
    对运动人体姿态语义视频的有效分割。比如,喝水动作,需要分割出人体从拿起水杯喝水,到喝完水放下水杯的过程。

    二、关键技术介绍:

    2.1 动态人体关键点姿态识别:
    传统机器学习算法中,将人体骨骼关键点看作时间域动态轨迹序列,可通过隐马尔科夫HMM,条件随机场CRFs,时域金字塔等模型求解。对时域骨骼关键点的特征提取方法主要有关键点的联合位置直方图分布,关键点3D位置的旋转与位移特征等等。

    在深度学习领域,可通过RNNs、LSTM、CNN等手段将时空域人体姿态关键点建模来完成分类识别。

    下图所示为基于3D骨骼点的人体行为姿态检测方法分类:
    Joint-based Representations:

    基于关键点坐标的行为姿态表达,包括空间描述子(Spatial Descriptors)、几何描述子(Geometrical Descriptors)、关键帧描述子(key-poses Descriptors)。

    Mined Joints based Descriptors:
    考虑子空间关键点的相关性来提升判别度。

    Dynamics based descriptors:
    基于动态规划算法来考虑不同视频序列的匹配度。
    在这里插入图片描述图 1 基于图像学表达的3D人体行为姿态识别方法分类

    (Presti L L, Cascia M L. 3D skeleton-based human action classification[M]. Elsevier Science Inc. 2016.)

    各类经典算法分类识别率对比,如图2©所示:
    在这里插入图片描述其中,S指空间描述子方法(Spatial Descriptors)、G指几何描述子方法(Geometrical Descriptors)、K指关键帧描述子方法(key-poses Descriptors)。

    数据库介绍:
    UCF:骨骼点(15 joints)、16个动作;
    MHAD: 11个动作、660个motion sequences;
    MSRA3D: 骨骼点(20个)、20个动作。

    对于视频序列的人体骨骼关键点姿态识别,这里介绍一种基于深度神经网络的方法,该方法具有识别率相对较高、算法复杂度低、实现简单快速等优势,并对人体姿态的位移与尺度变化具有不变性。缺点在于其输入的人体姿态必须是具备先验的视频姿态起始和结尾帧。

    首先算法的总体流程框架如下图所示,:
    在这里插入图片描述图2(a) CNN框架下基于人体骨骼关键点的姿态识别

    将每一幅图中的骨骼点分为五个部分,分别为左右手臂骨骼点、左右腿骨骼点、躯干骨骼点。如上图左,用不同颜色区分。按照表述顺序,将每一帧骨骼点拉成一维向量。随后,将一个完整的视频姿态序列中每一帧的向量进行级联,组成一幅RGB图像,(R,G,B)通道分别对应每个骨骼点的(x,y,z)坐标,从而完成将人体视频姿态关键点到一幅图像的映射。

    具体来说,人体姿态图像的行定义为: Ri = [xi1; xi2; :::; xiN ], Gi = [yi1; yi2; :::; yiN ], Bi = [zi1; zi2; :::; ziN ], 其中i为关键点的索引,N为视频序列的总帧数。随后通过对上述每一帧中的向量进行坐标系像素对应级联,得到最终的姿态图像,表达为N×M×3, 其中M为每一帧中骨骼点的数量(保持不变)如下图所示。
    在这里插入图片描述图(b) 时空域人体关键点RGB图像映射表达与尺度不变性示意

    随后,对每幅图像的像素点进行归一化:
    在这里插入图片描述其中,Cmax和Cmin为训练数据集中的最大最小坐标值。255则是将其归一化到图像表达的(0~255)像素区间。

    该算法所用数据库为NTU datsets:60个动作,每个动作分别相隔45度从三个角度拍摄;骨骼点(24 joints)。该算法可利用多种CNN开源框架进行训练,对于60个类,测试结果根据训练情况为80%~90%。该算法的缺点是,无法估计人体姿态的首尾帧,需要人工标注。

    其他人体骨骼关键点的分类识别方法,绝大部分也类似于上述将关键点序列转化为图像的方式,只是转化方式略有不同,且特征表达较为复杂,不利于算法实时性实现。

    2.2 静态人体关键点识别
    推荐一种基于形状上下文(shape context)的人体姿态识别方法。形状上下文是基于物体轮廓样本点进行描述, 如下图3所示。
    在这里插入图片描述图3 基于形状上下文(shape context)的目标轮廓点特征表达

    形状上下文算子的基本原理是通过建立目标关于每个轮廓点的极坐标,并将极坐标进行区间划分,计算轮廓点落入每个极坐标区间的个数,构成矩阵分布,如下图4所示。
    在这里插入图片描述图4 每一个轮廓点形状上下文特征表达矩阵可视化

    其中图4左为图3(a)中菱形坐标为参考坐标系的特征分布矩阵;图4中为图3(b)中三角坐标为参考坐标系的特征分布矩阵;图4右为图3(b)中方框坐标为参考坐标系的特征分布矩阵.由图4可见,图3(a)的菱形和图3(b)的矩形坐标系下的轮廓点特征分布的可视化矩阵十分相似,从而说明这种特征表达方式对目标具有一定的尺度不变性。

    最终通过计算不同目标之间的向量分布差异,从而得到目标相似匹配度。

    该算法的初衷是对二维平面的目标进行匹配识别,然后可以将该算法中的极坐标扩展成三维,并将人体骨骼点当作目标轮廓点进行类似的骨骼点坐标分布计算。

    三、骨骼点噪声问题

    主流文献对该部分的处理不多见,个人理解对于丢失的骨骼关键点,可以通过邻域坐标差值的方法进行拟合 ,对于坐标漂移剧烈的骨骼关键点,可以首先将某个关键点的时域轨迹单独提取,根据帧间轨迹点的速度、位移、方向等变化规律,利用RANSCA或轨迹预测等方法进行漂移关键点剔除。

    备注:
    点击下面链接,进入奥比中光开发者社区,了解更多3D视觉技术信息:
    https://developer.orbbec.com.cn/

    或扫描下方二维码,进入奥比中光开发者社区:
    在这里插入图片描述

    展开全文
  • AlphaPose人体姿态识别

    2020-12-07 11:23:13
    AlphaPose 还提供了一个称为 Pose Flow 的在线姿态跟踪器,这也是首个在 PoseTrack 挑战数据集上达到 60+ mAP(66.5 mAP)和 50+ MOTA(58.3 MOTA)的开源在线姿态跟踪器,精准度高于现有技术的最好结果。
  • 人体姿态识别OpenPose相关资料

    千次阅读 2019-04-24 16:42:40
    OpenPose人体姿态识别项目是美国卡耐基梅隆大学(CMU)基于卷积神经网络和监督学习并以caffe为框架开发的开源库。可以实现人体动作、面部表情、手指运动等姿态估计。适用于单人和多人,具有极好的鲁棒性。是世界上首...

    OpenPose人体姿态识别项目是美国卡耐基梅隆大学(CMU)基于卷积神经网络和监督学习并以caffe为框架开发的开源库。可以实现人体动作、面部表情、手指运动等姿态估计。适用于单人和多人,具有极好的鲁棒性。是世界上首个基于深度学习的实时多人二维姿态估计应用,基于它的实例如雨后春笋般涌现。人体姿态估计技术在体育健身、动作采集、3D试衣、舆情监测等领域具有广阔的应用前景,人们更加熟悉的应用就是抖音尬舞机

    https://www.jianshu.com/p/3aa810b35a5d
    https://www.jianshu.com/p/bcdfa75c42ac
    https://blog.csdn.net/qq_35468937/article/details/81514198
    https://blog.csdn.net/eereere/article/details/80176007

    展开全文
  • 人体姿态识别OpenPose

    2020-10-27 08:08:38
    软硬件环境 windows 10 64bit cuda 10.1 cudnn 7.6.35 anaconda with python 3.7 ubuntu 18.04 64bit NVidia GTX 1070Ti cmake 3.18.4 protobuf 3.8.0 简介 OpenPose人体姿态识别项目是美国卡耐基梅隆大学(CMU)基于...

    软硬件环境

    • windows 10 64bit

    • cuda 10.1

    • cudnn 7.6.35

    • anaconda with python 3.7

    • ubuntu 18.04 64bit

    • NVidia GTX 1070Ti

    • cmake 3.18.4

    • protobuf 3.8.0

    简介

    OpenPose人体姿态识别项目是美国卡耐基梅隆大学(CMU)基于卷积神经网络和监督学习并以caffe为框架开发的开源库。可以实现人体动作、面部表情、手指运动等姿态估计。适用于单人和多人,具有极好的鲁棒性,是世界上首个基于深度学习的实时多人二维姿态估计应用。人体姿态估计技术在体育健身、动作采集、人机交互、舆情监测等领域具有广阔的应用前景。

    算法体验

    如果仅仅是想体验下这个项目,官方提供了windows版的可执行文件下载,有gpucpu2个版本,地址是: https://github.com/CMU-Perceptual-Computing-Lab/openpose/releases/,解压后进入文件夹,下载项目中需要用到的各种模型

    cd openpose\models
    .\getModels.bat
    

    openpose

    使用本地视频文件进行测试

    cd ..
    bin\OpenPoseDemo.exe --video examples\media\video.avi
    

    openpose

    源码编译

    我这里是有gpu环境,因此需要安装nvidia的驱动,cudacuDNN,具体安装方法前面的博文已经介绍过了,参考下面链接

    • nvidia驱动安装,https://xugaoxiang.com/2020/09/24/ubuntu-nvidia-driver/

    • CUDA和cuDNN安装, https://xugaoxiang.com/2019/12/13/ubuntu-cuda/

    git clone https://github.com/CMU-Perceptual-Computing-Lab/openpose.git
    cd openpose
    conda create -n openpose python=3.7
    conda activate openpose
    sudo apt install cmake build-essential
    mkdir build
    cd build
    cmake ..
    make -j `nproc`
    cd ../models
    ./getModels.sh
    cd ..
    ./build/example/openpose.bin --video examples/media/video.avi
    

    openpose

    如果原来的系统中已经安装过了caffe,那么openpose可以直接使用而不需要再次安装了

    cmake -DBUILD_CAFFE=OFF -DCaffe_INCLUDE_DIRS=$somewhere/caffe/include/ -DCaffe_LIBS=$somewhere/lib/libcaffe.so ..
    

    如果需要在python中使用的话,cmake时需要加上参数-DBUILD_PYTHON=ON

    如果不喜欢用命令行去配置cmake,可以使用cmake-gui

    sudo apt install cmake-qt-gui
    

    openpose

    模型下载

    使用官方的模型下载脚本,速度非常的慢,这里将工程中用到的模型整理了,放在了百度网里,方便大家下载

    链接:https://pan.baidu.com/s/15aZe7NN3jQerWN2uZRK0mw提取码:p1mj

    pthread_create报错

    Determining if the pthread_create exist failed with the following output:
    Change Dir: /home/xugaoxiang/Works/github/openpose/build/CMakeFiles/CMakeTmp
    
    Run Build Command:"/usr/bin/make" "cmTC_56b97/fast"
    /usr/bin/make -f CMakeFiles/cmTC_56b97.dir/build.make CMakeFiles/cmTC_56b97.dir/build
    make[1]: Entering directory '/home/xugaoxiang/Works/github/openpose/build/CMakeFiles/CMakeTmp'
    /usr/bin/cmake: /home/xugaoxiang/anaconda3/lib/libcurl.so.4: no version information available (required by /usr/bin/cmake)
    Building C object CMakeFiles/cmTC_56b97.dir/CheckSymbolExists.c.o
    /usr/bin/cc   -fPIC    -o CMakeFiles/cmTC_56b97.dir/CheckSymbolExists.c.o   -c /home/xugaoxiang/Works/github/openpose/build/CMakeFiles/CMakeTmp/CheckSymbolExists.c
    /usr/bin/cmake: /home/xugaoxiang/anaconda3/lib/libcurl.so.4: no version information available (required by /usr/bin/cmake)
    Linking C executable cmTC_56b97
    /usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_56b97.dir/link.txt --verbose=1
    /usr/bin/cmake: /home/xugaoxiang/anaconda3/lib/libcurl.so.4: no version information available (required by /usr/bin/cmake)
    /usr/bin/cc -fPIC     -rdynamic CMakeFiles/cmTC_56b97.dir/CheckSymbolExists.c.o  -o cmTC_56b97
    CMakeFiles/cmTC_56b97.dir/CheckSymbolExists.c.o: In function `main':
    CheckSymbolExists.c:(.text+0x1b): undefined reference to `pthread_create'
    collect2: error: ld returned 1 exit status
    CMakeFiles/cmTC_56b97.dir/build.make:97: recipe for target 'cmTC_56b97' failed
    make[1]: *** [cmTC_56b97] Error 1
    make[1]: Leaving directory '/home/xugaoxiang/Works/github/openpose/build/CMakeFiles/CMakeTmp'
    Makefile:126: recipe for target 'cmTC_56b97/fast' failed
    make: *** [cmTC_56b97/fast] Error 2
    

    这是系统中缺失了pthread相关的库,解决方法

    sudo apt-get install manpages-posix manpages-posix-dev
    

    caffe代码拉不下来

    -- Found glog    (include: /usr/include, library: /usr/lib/x86_64-linux-gnu/libglog.so)
    -- Found Protobuf: /usr/local/lib/libprotobuf.so;-lpthread (found version "3.8.0")
    -- Found OpenCV: /usr (found version "3.2.0")
    -- Caffe will be downloaded from source now. NOTE: This process might take several minutes depending
            on your internet connection.
    -- Caffe has already been downloaded.
    error: pathspec 'c95002f' did not match any file(s) known to git.
    -- Caffe will be built from source now.
    -- Download the models.
    -- Downloading BODY_25 model...
    -- Model already exists.
    -- Not downloading body (COCO) model
    -- Not downloading body (MPI) model
    -- Downloading face model...
    -- Model already exists.
    -- Downloading hand model...
    -- Model already exists.
    -- Models Downloaded.
    -- Configuring done
    -- Generating done
    -- Build files have been written to: /home/xugaoxiang/Works/github/openpose/build
    

    CMU自己维护了一个caffe的工程,但是找了一圈,并没有发现有c95002f这个tag,所以,在配置的时候拉不下来源码,其实clone最新的就可以了,因此去修改CMakeLists.txt,将c95002f替换成master就可以了

    openpose

    protobuf版本不一致

    Protobuf compiler version doesn't match library version 3.8.0
    

    我这里使用的是anaconda的环境,默认安装的版本是3.11.4,与caffe要求的3.8.0不相符,使用conda安装3.8.0即可

    conda install protobuf==3.8.0
    

    或者也可以编译protobuf源码,步骤如下

    wget https://github.com/protocolbuffers/protobuf/archive/v3.8.0.tar.gz
    tar xvf protobuf-3.8.0.tar.gz
    cd protobuf-3.8.0
    ./autogen.sh
    ./configure
    make
    sudo make install
    

    安装完毕之后,使用protoc --version来检查下版本是不是正确

    atlas报错

    CMake Error at /usr/share/cmake-3.10/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
      Could NOT find Atlas (missing: Atlas_CLAPACK_INCLUDE_DIR
      Atlas_CBLAS_LIBRARY Atlas_BLAS_LIBRARY)
    Call Stack (most recent call first):
      /usr/share/cmake-3.10/Modules/FindPackageHandleStandardArgs.cmake:378 (_FPHSA_FAILURE_MESSAGE)
      cmake/Modules/FindAtlas.cmake:43 (find_package_handle_standard_args)
      cmake/Dependencies.cmake:113 (find_package)
      CMakeLists.txt:46 (include)
    
    

    因为系统中并没有安装atlas,使用apt安装

    sudo apt install libatlas-base-dev
    

    cmake版本问题

    -- NVIDIA CUDA:
    --   Target GPU(s)     :   Auto
    --   GPU arch(s)       :   sm_61
    --   cuDNN             :   Yes (ver. 7.6.5)
    --
    -- Install:
    --   Install path      :   /home/xugaoxiang/Works/github/openpose/build/caffe
    --
    CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
    Please set them or make sure they are set and tested correctly in the CMake files:
    CUDA_cublas_device_LIBRARY (ADVANCED)
        linked by target "caffe" in directory /home/xugaoxiang/Works/github/openpose/3rdparty/caffe/src/caffe
    
    -- Configuring incomplete, errors occurred!
    See also "/home/xugaoxiang/Works/github/openpose/build/caffe/src/openpose_lib-build/CMakeFiles/CMakeOutput.log".
    See also "/home/xugaoxiang/Works/github/openpose/build/caffe/src/openpose_lib-build/CMakeFiles/CMakeError.log".
    CMakeFiles/openpose_lib.dir/build.make:105: recipe for target 'caffe/src/openpose_lib-stamp/openpose_lib-configure' failed
    make[2]: *** [caffe/src/openpose_lib-stamp/openpose_lib-configure] Error 1
    CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/openpose_lib.dir/all' failed
    make[1]: *** [CMakeFiles/openpose_lib.dir/all] Error 2
    Makefile:83: recipe for target 'all' failed
    make: *** [all] Error 2
    
    

    这个问题是由于系统中的cmake版本引起的,openposecmake版本的最低要求是3.12,具体可以参考链接 https://github.com/CMU-Perceptual-Computing-Lab/openpose/blob/master/doc/prerequisites.md#ubuntu-prerequisites, 而ubuntu 18.04的默认版本是3.10.2。解决方法有2种,分别是

    • 使用snap安装

      安装方法非常简单,但是国内的速度是真的真的真的慢,以至于后来,实在是等不下去了,我直接拉源码编译了。愿意等的话,也是可以成功的

      sudo apt remove --purge cmake
      sudo snap install cmake --classic
      
    • 编译cmake的源码

      源码编译cmake,稍微复杂一点,步骤如下

      sudo apt remove --purge cmake
      sudo apt install libssl-dev
      wget https://github.com/Kitware/CMake/releases/download/v3.18.4/cmake-3.18.4.tar.gz
      tar xvf cmake-3.18.4
      cd cmake-3.18.4
      ./bootstrap
      make
      sudo make install
      

    libpangoft报错

    make的过程中报错

    [ 51%] Linking CXX shared library libopenpose_core.so
    [ 51%] Built target openpose_core
    [ 51%] Linking CXX executable 1_custom_post_processing.bin
    //home/xugaoxiang/anaconda3/lib/libpangoft2-1.0.so.0: undefined reference to `FcWeightToOpenTypeDouble'
    //home/xugaoxiang/anaconda3/lib/libpangoft2-1.0.so.0: undefined reference to `FcWeightFromOpenTypeDouble'
    collect2: error: ld returned 1 exit status
    examples/tutorial_add_module/CMakeFiles/1_custom_post_processing.bin.dir/build.make:171: recipe for target 'examples/tutorial_add_module/1_custom_post_processing.bin' failed
    make[5]: *** [examples/tutorial_add_module/1_custom_post_processing.bin] Error 1
    CMakeFiles/Makefile2:1280: recipe for target 'examples/tutorial_add_module/CMakeFiles/1_custom_post_processing.bin.dir/all' failed
    make[4]: *** [examples/tutorial_add_module/CMakeFiles/1_custom_post_processing.bin.dir/all] Error 2
    [ 51%] Linking CXX executable 18_synchronous_custom_all_and_datum.bin
    //home/xugaoxiang/anaconda3/lib/libpangoft2-1.0.so.0: undefined reference to `FcWeightToOpenTypeDouble'
    //home/xugaoxiang/anaconda3/lib/libpangoft2-1.0.so.0: undefined reference to `FcWeightFromOpenTypeDouble'
    collect2: error: ld returned 1 exit status
    examples/tutorial_api_cpp/CMakeFiles/18_synchronous_custom_all_and_datum.bin.dir/build.make:171: recipe for target 'examples/tutorial_api_cpp/18_synchronous_custom_all_and_datum.bin' failed
    make[5]: *** [examples/tutorial_api_cpp/18_synchronous_custom_all_and_datum.bin] Error 1
    CMakeFiles/Makefile2:1307: recipe for target 'examples/tutorial_api_cpp/CMakeFiles/18_synchronous_custom_all_and_datum.bin.dir/all' failed
    make[4]: *** [examples/tutorial_api_cpp/CMakeFiles/18_synchronous_custom_all_and_datum.bin.dir/all] Error 2
    Makefile:148: recipe for target 'all' failed
    make[3]: *** [all] Error 2
    CMakeFiles/openpose_lib.dir/build.make:143: recipe for target 'openpose_lib' failed
    make[2]: *** [openpose_lib] Error 2
    CMakeFiles/Makefile2:94: recipe for target 'CMakeFiles/openpose_lib.dir/all' failed
    make[1]: *** [CMakeFiles/openpose_lib.dir/all] Error 2
    Makefile:102: recipe for target 'all' failed
    make: *** [all] Error 2
    

    解决方法是,使用系统的pangoft

    cd $HOME/anaconda3/lib/
    mv libpangoft2-1.0.so.0 libpangoft2-1.0.so.0.bak
    ln -s /usr/lib/x86_64-linux-gnu/libpangoft2-1.0.so.0 libpangoft2-1.0.so.0
    

    参考资料

    • https://github.com/CMU-Perceptual-Computing-Lab/openpose

    • https://github.com/CMU-Perceptual-Computing-Lab/caffe

    • https://github.com/CMU-Perceptual-Computing-Lab/openpose/issues/1114

    • https://cmake.org/download/

    • https://github.com/protocolbuffers/protobuf/releases/tag/v3.8.0

    展开全文
  • Github开源人体姿态识别项目OpenPose中文文档

    万次阅读 多人点赞 2018-11-11 19:08:33
    OpenPose 可以实现人体动作、面部表情、手指运动等姿态估计,是卡耐基梅隆大学(CMU)...人体姿态估计技术在体育健身、动作采集、3D试衣、舆情监测等领域具有广阔的应用前景,人们更加熟悉的应用就是抖音尬舞机。...

    logo

    OpenPose人体姿态识别项目是美国卡耐基梅隆大学(CMU)基于卷积神经网络和监督学习并以caffe为框架开发的开源库。可以实现人体动作、面部表情、手指运动等姿态估计。适用于单人和多人,具有极好的鲁棒性。是世界上首个基于深度学习的实时多人二维姿态估计应用,基于它的实例如雨后春笋般涌现。人体姿态估计技术在体育健身、动作采集、3D试衣、舆情监测等领域具有广阔的应用前景,人们更加熟悉的应用就是抖音尬舞机。

    OpenPose项目Github链接:https://github.com/CMU-Perceptual-Computing-Lab/openpose

    为了便于中国开发者学习CMU开源人体姿态识别项目,我将README文档翻译成了中文。

    向卡耐基梅隆大学大学的开发者以及本项目其他贡献者致敬。

    英译汉:张子豪(同济大学开源软件协会)

    文章勘误、补充,请看译者知乎专栏:人工智能小技巧

    In order to facilitate Chinese software developers to learn, use Openpose, make progress in human gesture recognition development and source code contributions, we translated README file into simplified Chinese.

    Salute to the developers in Carnegie Mellon university and the contributors to this project.

    Translattor: Tommy in Tongji Univerisity Opensource Software Association

    人体姿态识别与估计的应用场景:抖音尬舞机、体育动作教学、3D健身教练、3D试衣、绘画辅助、游戏人物动作采集。

    本项目更详细的中文介绍:【AI识人】OpenPose:实时多人2D姿态估计 | 附视频测试及源码链接

    本项目理论基础来自Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields ,是CVPR 2017的一篇论文,作者是来自CMU感知计算实验室的曹哲,Tomas Simon,Shih-En Wei,Yaser Sheikh

    一些人体姿态识别案例案例:

    《芳华》文工团跳舞视频片段:人体姿态识别

    《芳华》文工团跳舞视频片段:人体姿态识别

    《叶问》武打视频片段:人体姿态识别

    《叶问》武打视频片段:人体姿态识别

    内容

    1. 特点
    2. 最近更新
    3. 效果
    4. 安装、重装、卸载
    5. 快速启动
    6. 输出
    7. 增加运算速度以及基准测试
    8. 向我们提供出错信息和反馈
    9. 作者和项目贡献者
    10. 引用
    11. 授权协议

    特点

    • 功能:
      • 二维多人关键点实时识别:
        • 15、18或 25个身体/脚部的关键点识别,运算时间与检测出的人数无关
        • 2*21个手部关键点识别。目前,运算时间取决于检测出的人数
        • 70个面部关键点的识别。目前,运算时间取决于检测出的人数
      • 三维单关键点实时识别:
        • 通过多个单一角度的视频进行三角测量。
        • 菲力尔品牌摄像机的视频同步处理。
        • 与Flir摄像机和Point Grey摄像机兼容,提供了C++语言的代码样本,用户可以自定义输入。
      • 校准工具:
        • 能够对摄像机拍摄中出现的扭曲等内外参数进行简易评估。
      • 针对未来的加速优化和视觉流畅,增加了单人位置追踪
    • 输入: 图片、视频、网络摄像头的视频流、Flir或Point Grey和IP摄像机。项目提供了C++语言的代码样本,用户可以自定义输入。
    • 输出: 原有图片+关键点展示(PNG、JPG、AVI等格式),关键点数据存储文件((JSON, XML, YML等格式)。
    • 操作系统: Ubuntu (14, 16), Windows (8, 10), Mac OSX, Nvidia TX2.
    • 其它:
      • 项目提供: 命令行测试、C++封装、C++ API接口。
      • CUDA (Nvidia GPU), OpenCL (AMD GPU), and CPU 版本。

    最近更新

    更多信息可访问 全部更新文档 以及 版本更新记录.

    效果

    躯干、脚部识别

    躯干、脸部、手部识别

    人体姿态三维重建

    身体、手指关键点识别

    身体识别

    安装、重装、卸载

    Windows能用的版本: 点击所有版本 下载最新的版本即可。

    或者,你也可以点击 安装文档 查看通过源代码编译安装的安装指南。

    快速启动

    大部分用户不需要调用OpenPose的C++和Python的开发接口,这些用户只需要运行OpenPose Demo即可

    • OpenPose Demo: 为了便于处理图片、视频或者网络摄像头的视频流,并展示和后处理结果,你需要看doc/demo_overview.md. 例如,你可以直接通过以下命令在Ubuntu操作系统上处理一个视频。
    # Ubuntu
    ./build/examples/openpose/openpose.bin --video examples/media/video.avi
    :: Windows - Portable Demo
    bin\OpenPoseDemo.exe --video examples\media\video.avi
    

    输出

    请点击这个文档,查看输出文件的格式、关键点数据结构等信息。doc/output.md.

    增加运算速度以及基准测试

    点击这个文档,查看增加运行速度、减少内存需求的提示 doc/faq.md#speed-up-memory-reduction-and-benchmark.

    向我们提供出错信息和反馈!

    我们的代码库面向以科学研究为目的开发者开源,我们希望持续不断地优化它!所以,如果出现了以下情况,请及时向我们反馈。

    1. 你发现OpenPose处理图片或视频出错,请把识别失败的案例发到openposecmu@gmail.com邮箱中,我们会运用你提供的信息优化我们的算法。
    2. 你发现了软件功能或者运行速度上的bug。
    3. 你增加了一些我们可能吸纳到项目源代码中的函数、类或者其它子类。
    4. 你知道如何针对本项目优化性能、提升检测速度。
    5. 你发现本项目的一个潜在应用场景。
    6. 其它问题.

    你可以在Github上评论,或者pull request提交你的新代码,我们会尽快回复你的。如果你基于本项目做了有趣的开发或者录制了Youtube视频,请给我们发电子邮件。

    作者和项目贡献者

    Openpose项目由 Gines Hidalgo, Zhe Cao, Tomas Simon, Shih-En Wei, Hanbyul Joo, 和 Yaser Sheikh创造发起。 目前,这个项目由 Gines HidalgoYaadhav Raaj进行日常维护。 original CVPR 2017 repo 包括了Matlab和Python版本,以及模型训练代码。人体姿态评估方面的工作是基于 the original ECCV 2016 demo的。

    除此之外,不可或缺的还有 CMU Panoptic Studio dataset

    我们还想感谢所有帮助过OpenPose项目的人,主要贡献者列在了这个文档里doc/contributors.md

    引用

    如果本项目帮助了你的研究,请在你发表的作品里注明引用出处(人脸关键点识别与[Simon et al. 2017]使用了同样的训练方法)。

    @inproceedings{cao2017realtime,
      author = {Zhe Cao and Tomas Simon and Shih-En Wei and Yaser Sheikh},
      booktitle = {CVPR},
      title = {Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields},
      year = {2017}
    }
    
    @inproceedings{simon2017hand,
      author = {Tomas Simon and Hanbyul Joo and Iain Matthews and Yaser Sheikh},
      booktitle = {CVPR},
      title = {Hand Keypoint Detection in Single Images using Multiview Bootstrapping},
      year = {2017}
    }
    
    @inproceedings{wei2016cpm,
      author = {Shih-En Wei and Varun Ramakrishna and Takeo Kanade and Yaser Sheikh},
      booktitle = {CVPR},
      title = {Convolutional pose machines},
      year = {2016}
    }
    

    授权协议

    Openpose对于非商业化使用是免费的,而且仅限于这些情况。点击 license查看更多细节。对商业使用的授权感兴趣?点我吧。咨询商业应用相关信息可以联系 Yaser Sheikh.

    参考文献和扩展阅读

    【1】论文:https://arxiv.org/pdf/1611.08050.pdf

    【2】姿态检测视频制作源码:muyiguangda/caffe_rtpose

    【3】开头视频:Changing Batteries 更换电池「中字」

    【4】CMU训练数据集: CMU Panoptic Dataset

    【4】匈牙利算法: Hungarian algorithm

    古画人体姿态分析

    展开全文
  • 这里写目录标题姿态估计与识别技术的简介二级目录三级目录 姿态估计与识别技术的简介 二级目录 三级目录 姿态估计与识别技术的简介 随着深度学习技术的快速发展,极大的推动了人体姿态估计与识别的研究。网络结构的...
  • 人体姿态识别研究综述(详细归纳!)

    万次阅读 多人点赞 2018-10-06 20:23:46
    一,人体姿态识别数据集 1,2D数据集: LSP 地址:http://sam.johnson.io/research/lsp.html 样本数:2K 关节点个数:14 全身,单人 FLIC 地址:https://bensapp.github.io/flic-dataset.html 样本数:2W ...
  • 深度学习tf-pose-estimation人体姿态识别实现教程

    千次阅读 热门讨论 2019-05-26 09:30:09
    这个项目在github上非常火,项目地址是:...这个项目的原始项目是用caffe框架,c++编写的人体姿态识别(检测人体身体部分、手、脸、脚等部位)。 参考的文献如下,有兴趣的同学可以读一下: (1)OpenPose: Rea...
  • 大概两个月前,接到一个小任务,要做一个深度学习在人体姿态识别领域的一些调研,以前也没做调研相关的事情,连格式怎么写都不知道,前前后后看了接近20篇论文,然后就写下来这篇小总结,感觉都不能算是调研,文章...
  • 一.整体介绍 ...项目的整体目的是完成机器人识别人体姿态从而达到跟随或者是完成特定功能的效果。整体分为两个部分,一部分是完成turtlebot2机器人的环境搭建并且在从turtlebot2机器人上的奥比中光相机...
  • 但是,数字图像的处理离不开一定的储存空间与计算技巧的配合,与计算机发展技术成正比关系[1]。 从20世纪50年代开始,计算机的发展才向前迈进了一大步,人们在处理图形以及图像信息时已经有意识的将计算机的功能利用...
  • 现在,大火的人体姿态识别也有了飞桨(PaddlePaddle)的实现。我们来带小伙伴们学习一下怎么利用飞桨(PaddlePaddle)来实现人体姿态的识别任务。 项目地址: https://github.com/PaddlePa...
  • 一,人体姿态识别数据集 1,2D数据集: LSP 地址:http://sam.johnson.io/research/lsp.html 样本数:2K 关节点个数:14 全身,单人 FLIC 地址:https://bensapp.github.io/flic-dataset.html 样本数:2W 关节点个数...
  • 基于轮廓图像空频域特征的人体姿态分层识别算法,邓甜甜,王智灵,人体姿态识别是当前自动视频理解技术的研究热点,其难点在于在实际应用中很难同时保障准确度、鲁棒性和实时性。当前基于二维图像
  • 2 课题介绍 该课题为基于卡尔曼滤波的人体姿态识别,通过高斯建模,取前面若干帧图片取均值作为背景图,利用帧间差分方法进行提取人体前景轮廓,进行卡尔曼滤波的运动预测。计算每一帧图像的质心移动距离,如果移动...
  • 例如 kinect摄像头可以采集深度信息,进而可以用模式识别来估计人体姿态。而在深度学习时代,这以方向在理论上也值得进一步挖掘,所以对应到RGBD image。 单视图做的差不多了,那自然就开始考虑多视图。这里的多视图...
  • https://blog.csdn.net/smiling_pie/article/details/79006362
  • 例如 kinect摄像头可以采集深度信息,进而可以用模式识别来估计人体姿态。而在深度学习时代,这以方向在理论上也值得进一步挖掘,所以对应到RGBD image。 单视图做的差不多了,那自然就开始考虑多视图。这里的多视图...
  • 本次任务是将AstraPro3D摄像头和机械狗运用起来,AstraPro为奥比... 点击下面链接,进入奥比中光开发者社区,了解更多3D视觉技术信息:https://developer.orbbec.com.cn/ 或扫描下方二维码,进入奥比中光开发者社区:
  • 随着深度学习技术的发展,人体骨骼关键点的检测效果也在不断提升,且被广泛应用于计算机视觉相关领域,成为许多计算机视觉任务的基础,包括安防,新零售,动作捕捉,人机交互等等。现...
  • 人体姿态估计当前主流研究的基础问题和难点 一、基本定义:从单张RGB图像中,精确地识别出多个人体的位置以及骨架上的稀疏的关键点位置。 二、基本任务:给定一张RGB图像,定位图像中人体的关键点位置,并确定其...
  • OpenCV实现人体姿态估计(人体关键点检测)OpenPose

    万次阅读 多人点赞 2019-08-04 11:53:03
    OpenPose人体姿态识别项目是美国卡耐基梅隆大学(CMU)基于卷积神经网络和监督学习并以Caffe为框架开发的开源库。可以实现人体动作、面部表情、手指运动等姿态估计。适用于单人和多人,具有极好的鲁棒性。是世界上首...
  • 近年来,深度学习已成为一种很有前途的目标/人脸识别技术人体姿态估计也不例外。代表作包括DeepPose、基于DNN的模型和各种基于CNN的模型。除了简单的估计人体姿态,一些研究同时进行人的分析和姿势估计。对于单人...
  • 人体姿态估计(Human Posture Estimation),是通过将图片中已检测到的人体关键点正确的联系起来,从而估计人体姿态。 人体关键点通常对应人体上有一定自由度的关节,比如颈、肩、肘、腕、腰、膝、踝等,如下图。 ...
  • 利用行为识别中的视频分析技术提高姿态估计的准确率,再利用从视频中提取的姿态序列从不同角度描述人体行为,提高行为识别效果

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,013
精华内容 1,605
关键字:

人体姿态识别技术