| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> V2V-PoseNet算法和应用详解(3D关节点估计领域) -> 正文阅读 |
|
[人工智能]V2V-PoseNet算法和应用详解(3D关节点估计领域) |
1 算法部分V2V-PoseNet基本介绍
算法结构介绍论文中结构图如下: 自己绘制的更详细版结构图如下: 损失函数就是把预测的3D热图(每个关节点有一个3D热图)和标签生成的热图计算均方误差: 作者认为3D识别关节点的好处作者如何制作数据集的?算法数据流图详情2 工程部分需求通过手势来虚拟触控激光投影,其中就需要使用V2V算法,识别手掌的16个关节点,并计算手指3关节点的空间延长线和桌面的交汇点坐标。? 16个手指关节点位置:? ?Kinect2相机:16位深度图转8位灰度图?Kinect2相机采集的depth图是16位存储的,原因是depth图中包含距离信息,值在0~2000mm之间。但是实际上我们只需要手部区域的depth图用于后续的V2V做关节点估计。最简单方法是,用YOLO目标检测器训练一个depth图的手掌目标检测模型,让YOLO算法裁剪人的手掌区域。 YOLO检测的是depth区间在1200mm至1800mm高度区间的图像,得到手部区目标框位置后,我们需要基于原始16位的depth图,去找到手部区的“中心点”,这个中心点物理意义大概是手掌在空间中的几何中心,后续我们需要基于这个中心点,去在depth转3D点云图上,以这个中心点为立体中心,去裁剪一个手部区空间,并最终送到V2V网络去预测手掌关节点位置。计算出这个中心点位置的方法有很多,这里我们简单的用16个“网格点”去获取中心点的Z值,XY值就取YOLO裁剪的手部depth图的XY值。 中心点选取方案的测试方法如下:(评估到底有多少手部点被排除在立方体之外) ? V2V样本的标注?最开始,我们在2D RGB图上标注16个关节点,然后通过RGB图坐标转depth图坐标转3D点云坐标,来获取手掌在3D空间的XYZ标签信息。但是,这种方法导致非常大的标注误差,原因在于,depth图精度并不是特别高,而且有很多噪音。RGB图上标注的点,人眼看上去标的很准,但很可能通过公式,映射到3D空间时,这个点会落在噪音点上。 计算手指关节点的空间延长线和桌面点云的交点V2V得到手掌16个关节点后,我们使用食指尖和食指末2个关节点的XYZ值,可以计算出其连接线射线与桌面点云的交点位置。 具体计算代码如下: ?3 效果YOLO目标检测器检测手掌区域效果V2V算法对手掌16关节点预测的效果??3D仿真在开发过程中,我们设计了一个3D仿真程序,用于测试各模型及其语义逻辑在虚拟空间的操控效果。初版仿真程序是用一个简单的立方体来表示,后期仿真使用pyqtgraph库设计了一个更全功能的虚拟仿真,包括实时可视化如下内容:环境空间中的所有点云、RGB图、虚拟立方体(用于测试手掌非接触控制它的效果)、手指方向延长线与环境中点云的交汇点等等。 初版仿真程序如下: 最终版仿真程序如下: 后续更新截图。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/1 9:01:13- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |