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,成为大佬
到时记得带带我这个菜鸡
python深度学习进阶之行为检测详细学习路线(主要实现人员的行为类别、空间定位、时间定位)相关推荐
- 深度学习进阶之路 - 从迁移学习到强化学习
一. 深度学习及其适用范围 大数据造就了深度学习,通过大量的数据训练,我们能够轻易的发现数据的规律,从而实现基于监督学习的数据预测. 没错,这里要强调的是基于监督学习的,也是迄今为止我在讲完深度学习基 ...
- 厉害的Python工程师,都是怎么做学习规划的?超详细学习入门—精通教程
随着Python的发展,已成为程序员能力模型中,非常重要的一个技能. 甚至BATZJ的工程师,都无可否认现在Python对于一个程序员职业发展的重要性. 但很多小白在面对"怎么规划未来Pyt ...
- 深度学习目标检测详细解析以及Mask R-CNN示例
深度学习目标检测详细解析以及Mask R-CNN示例 本文详细介绍了R-CNN走到端到端模型的Faster R-CNN的进化流程,以及典型的示例算法Mask R-CNN模型.算法如何变得更快,更强! ...
- 使用 Python 进行深度学习以进行裂纹检测
使用 Python 进行深度学习以进行裂纹检测 问题陈述 数据集准备 训练模型 结论 参考 问题陈述 虽然新技术已经改变了我们生活的方方面面,在建筑领域似乎牛逼Ø正在努力追赶.目前,建筑物的结构状况仍 ...
- 基于深度学习的高精度苹果检测识别系统(Python+Pyside6)
摘要:基于深度学习的高精度苹果检测识别系统可用于日常生活中来检测与定位苹果目标,利用深度学习算法可实现图片.视频.摄像头等方式的苹果目标检测识别,另外支持结果可视化与图片或视频检测结果的导出.本系统采 ...
- 基于深度学习的海洋动物检测系统(Python+YOLOv5+清新界面)
摘要:基于深度学习的海洋动物检测系统使用深度学习技术检测常见海洋动物,识别图片.视频和实时视频中的海洋动物,方便记录.展示和保存结果.本文详细介绍海洋动物检测系统,在介绍算法原理的同时,给出Pytho ...
- Python工程能力进阶、数学基础、经典机器学习模型实战、深度学习理论基础和模型调优技巧……胜任机器学习工程师岗位需要学习什么?...
咱不敢谈人工智能时代咋样咋样之类的空话,就我自己来看,只要是个营收超过 5 亿的互联网公司,基本都需要具备机器学习的能力.因为大部分公司盈利模式基本都会围绕搜索.推荐和广告而去. 就比如极客时间,他的 ...
- python深度学习进阶(自然语言处理)-自然语言和单词的分布式表示
深度学习进阶(自然语言处理)-自然语言和单词的分布式表示 博主微信公众号(左).Python+智能大数据+AI学习交流群(右):欢迎关注和加群,大家一起学习交流,共同进步! 目录 摘要 1. 什么是自 ...
- 深度学习必备书籍——《Python深度学习 基于Pytorch》
作为一名机器学习|深度学习的博主,想和大家分享几本深度学习的书籍,让大家更快的入手深度学习,成为AI达人!今天给大家介绍的是:<Python深度学习 基于Pytorch> 文章目录 一.背 ...
- 实战:基于深度学习的道路损坏检测
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 1.简介 道路基础设施是一项重要的公共资产,因为它有助于经济发展和 ...
最新文章
- c++ 函数指针_开发经验分享(5) 修改Makefile实现C/C++混合编程
- 开源项目之树莓派---无线监控摄像头
- Windows 之 win10快捷键
- android邮件发送几种方式
- ios 静态库合成_iOS生成静态库方法-iOS集成静态库-iOS合并静态库
- 斐波那契回调线怎么画_Lionheart万汇:斐波那契回调线,实战使用方法和难点
- 「云+未来」上海峰会,报名开启
- Web3D编程入门总结——WebGL与Three.js基础介绍
- Java计划任务:ScheduledThreadPoolExecutor
- javaScript 对象大全 (javascript code al 2)(转转)
- uni-app实现文件管理器(Android)
- Vue2源码解析 Object变化监听
- office教程:如何给excel表格重命名工作表
- Python爬虫实战 | (16) 破解简书登录点触验证码
- 家用计算机硬盘一般价格,家用电脑使用企业级硬盘的效果会很好吗?
- 第二篇 我的书单(Jason Booklist)
- 树链剖分——杨子曰算法
- Cosmos系列-2. Cosmos SDK
- WinAirCrackPack使用教程
- html中collapse代码怎么写,CSS 面试题: 手写 collapse(折叠) 的 css/html 部分