python深度学习进阶之行为检测详细学习路线(主要实现人员的行为类别、空间定位、时间定位)

根据个人经验总结的深度学习入门路线(简单快速)
https://blog.csdn.net/weixin_44414948/article/details/109704871
深度学习入门一阶段demo练习:
https://blog.csdn.net/weixin_44414948/article/details/109864551
深度学习入门二阶段demo练习:
https://blog.csdn.net/weixin_44414948/article/details/110673660

在完成入门阶段的大部分demo练习后,便可以进行深度学习的进阶学习了。
在本课题组中,因项目实际需求,将研究方向分为了RGB图像目标检测分割追踪、点云分割检测、多数据流人员时空行为检测

因为笔者是行为检测的研究方向,故本博客之后主要更新行为检测方向的博文,希望读者能理解。

行为检测研究方向简介

英文名:
Spatio-temporal action detection。
任务目标:
在实时数据流中检测出存在行为动作的时间帧,并在该时间帧对应的RGB图像中检测出行为对象的所在位置,以及各自的行为类别。
关键词:
行为识别、时域行为检测、时空行为检测、人-物交互行为检测(Human object interaction action detection)。

学习路线

1、数据采集

本课题组主要使用KinectV2、KinectV3深度视觉传感器来采集行为检测方向的数据,采集的数据类型包括RGB图像、深度图像、人体骨架坐标序列。

注:因为Kinect传感器没有官方的python接口,故需要简单学习一下C++或C#语言来实现数据采集程序的编写,当然基本都是参考大佬的源码。。。

2、数据预处理

2.1、RGB图像的预处理
彩色图像的预处理中,图像识别、目标检测任务中的预处理方法都适用,使用的预处理方法主要取决于自己写的行为检测算法。

例如:在行为检测方向的手持物体检测子任务中,使用的只是归一化、图像裁剪等常用预处理方法。

2.2、深度图像的预处理
深度图像在行为检测中一般作为辅助检测的数据,对预处理不作要求。

2.3、骨架序列的预处理

骨架序列数据介绍:
KinectV2获取的人体骨架坐标是由其深度图像通过内置的轻量级姿态估计算法输出而来,该数据展示形式为txt文件,一行对应一帧,每行数据为人员的25个骨架节点坐标(x,y,z),共75个数据(如果是2个人,则有75*2个数据,以此类推)。各个节点对应人体的位置如下图所示。

在这里插入图片描述
在这里插入图片描述
骨架数据预处理:
骨架数据是行为检测实现行为时域定位的主要数据形式(因为RGB的时序数据量过大,对算力要求太高),故预处理对后续的行为检测算法影响很大。

现阶段本课题组的预处理主要包括:
骨架正向旋转、缺失骨架补全、偏移骨架数据矫正、骨架重建等。

骨架正向旋转:
不同方向的骨架对行为识别模型的影响很大,例如左手拿着工件,转为侧身骨架直接变为无法描述。
缺失骨架补全:
因为KinectV2内置的姿态估计算法准确率有限,有时会出现骨架缺失的情况,故需要根据情况对骨架进行部分的填补。
偏移骨架数据矫正:
还是KinectV2内置算法的问题,有时骨架会很奇怪,需要对其进行矫正。
骨架重建:
对行为识别判断要求较高时,可以直接舍弃KinectV2的沙雕骨架数据,自己利用现在的姿态估计算法(如OpenPose、AlphaPose等)对RGB图像直接提取骨架,然后输出为骨架序列。

2.4、RGB图像、深度图像、骨架坐标的联合预处理
因为KinectV2采集的这三种数据是时间帧对应、空间可转换的,行为检测的人-物交互检测子任务中需要使用到这种关联信息,此时需要熟练对RGB图像坐标、深度图像坐标、骨架坐标进行相互转换。

例如:在人-物交互行为检测中,需要将由深度图像获得的人体骨架坐标映射到RGB图像中,此时需要利用公式对数据进行计算转换。

3、行为检测网络搭建

起步阶段可以参考大佬们的开源算法网络,如经典的LSTM、图卷积网络、ST-GCN等,具体可以看看这位博客大佬的行为检测论文综述,虽然不是最新的,但每篇都是经典的算法网络。

[行为检测|论文解读]行为检测调研综述
https://blog.csdn.net/neu_chenguangq/article/details/79504214

等深入理解行为检测后,可以定义搭建属于自己的网络,可以命名为SunNet、HongNet啥的,还是很有成就感的,哈哈哈哈。。。

注:在检索相关论文资料时,推荐加入如下关键词(注意是action detection)
行为识别、行为检测、人-物交互检测、时域行为检测、时域检测、时空行为检测

阶段性任务

1、利用KinectV2或KinectV3实现三种数据的采集,使用C++和C#语言实现。

kinect安装配置入门教程:
[https://blog.csdn.net/weixin_44414948/article/details/112347616]

示例代码如下:

先占个坑,等师弟做完再发

2、对采集的三种数据进行预处理操作。
(1)骨架坐标数据的正向旋转、缺失填补、骨架矫正。
(2)骨架坐标向对应RGB图像的映射。

坐标系转换的参考链接:
https://panjinquan.blog.csdn.net/article/details/104184551

示例代码如下:

先占个坑,等师弟做完再发

3、查阅资料,整理各个网络的创新点、优缺点、在行为检测方向适用性。

整理的结果如下:

先占个坑,等师弟做完再发

4、在本地实现LSTM、图卷积网络、OpenPose等姿态估计算法。

示例代码如下:

先占个坑,等师弟做完再发

5、自写代码实现由数据采集到行为检测结果输出保存的整个流程。
可以参考历届师兄的算法实现代码。

示例代码如下:

先占个坑,等师弟做完再发

6、自建行为检测算法,发SCI,成为大佬

到时记得带带我这个菜鸡

  • 8
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值