ThreeDPoseTracker Ver.0.2.0更新
ThreeDPoseTracker Ver.0.2.0更新
介绍

本文是关于USB相机运动捕捉ThreeD PoseTracker 0.2.0版的更新。什么是ThreeDPoseTracker?谁先说
“ USB摄像机运动捕捉ThreeDPoseTracker的描述”
https://www.bilibili.com/read/cv7336294
请参考。
关于v0.2.0
下载目的地
请从下面的URL下载。
https://digital-standard.com/threedpose/ThreeDPoseTracker_Win_x64_v0_2_0.zip
更新内容
这是主要的更新内容。这次,该版本主要旨在仅保存BVH的人形骨骼。
· 已启用,仅在保存BVH时保存人形骨骼并设置其他选项。有关详细信息,请参阅以下设置屏幕上的章节。
· 通过添加上述功能更改了设置屏幕
· 添加了一个滤镜以纠正运动
· 高质量模型精度提高(肉眼看不到1%)
· 将默认头像从Unity-chan更改为Ryun Ran(Lune)。没有Unity议员了。您可以从下面的URL下载Ranbelun的VRM文件。
https://hub.vroid.com/characters/2743935442348366186/models/3045425008508757993
设定画面
由于设置项目很多,因此我将每个功能按选项卡进行了划分。每种功能的设置项目说明如下。
图片
输入图像和背景图像的设置。设置内容从v0.1.0起没有变化。

· 显示源图像
设置是显示还是隐藏作为在整个屏幕上显示的源设备而加载的视频以及USB摄像机的图像。
· 显示输入图像
将输入图像显示或隐藏到AI(左上角的小窗口)。
· 拖放时
播放视频时,请跳过视频打开时未处理的帧。关闭并播放时,将播放所有帧,因此,如果处理缓慢,将像慢动作一样播放。
· 电影文件重复播放模式
播放电影时,如果将其打开,则会重复播放电影。
· 使用相机时的镜像使用
USB相机时,如果打开,则相机的输入将处于镜像状态。
· 源剪切比例
输入图像以源图像图像的高度为1的比例剪切。例如,如果视频中的人太小,请指定1或更大的值以将其放大。另外,如果您的脚趾靠近屏幕边缘或勉强触摸它,则将此值设置为0.9或0.8会使它稍微稳定。

源剪切中心位置
从以源图像的中心为原点,图像高度为1的比率指定的位置切出输入图像。如果视频的右侧有跳舞的人,请进行调整,以使位置为中心。下图显示了x的移动量指定为0.3的情况,它是上图中的放大倍率下的外观差异。想象一下,显示图像的相机以0.3的纵横比向右移动。如果它是负值,它将向左移动,并且Y轴也应如此。

背景图像文件
切换背景图像。如果不存在图像或该项目为空,则将显示默认图像。

· 背景比例调整
背景图像的尺寸。无法更改图像位置,因此请调整原始图像以调整位置。
· 背景颜色如果
隐藏所有源图像,输入图像和背景图像,则它将变为纯色背景。可以使用RGB(0至255)指定背景色。当您不想在绿色背景或背景上放置任何东西时,请使用。

预测
主要与运动有关的设置。

· 低通滤波器
这是用于抑制跳跃和水泡的滤波器。如果是高度质量模型,则0到0.2是合适的。它越大,它变得越平滑,但是延迟和运动变得松散。如果不需要微妙的运动,则可以达到0.3。更改该值不会影响处理速度。
· n阶LPF
设置要应用上述低通滤波器的地板。值越大,效果越强,但是效果不会与数量成比例地增加。另一方面,这不是繁重的处理,因此从一开始就可以接受最多9个。
· 范围通过滤波器
上面的低通滤波器是用于滤除抖动的高频分量的滤波器。这是用于通过特定频率的滤波器。话虽如此,由于我想采用人的所有慢动作,因此实际上将其用作低通滤波器。因此,我想将较低的频率设置为0Hz,但是由于无法指定0,因此将其设置为0.01Hz。至于较高的频率,据说一个人移动大约0.2秒就足够了,因此大约5 Hz就足够了(1÷0.2 = 5 Hz)。但是,默认值是3.5Hz,以提高稳定性。如果要剧烈运动,请将其保持在5Hz左右。
-Buffer:
用于采样数据的缓冲区大小。我认为不需要更改它。
值越大,过程越重。
N
阶:过滤器的阶数。实际上,我对它的评价不是很高,所以请不要触摸它。
值越大,过程越重。
-Hz(从到):
低频0.01无需更改。将高频调整为大约2-5Hz。
更改该值不会影响处理速度。
· 正向阈值
AI的输出以0到1的分数输出。1有信心,0有信心。如果在图像中显示一个人,通常会得到0.5或更高的分数。当图像中没有人时,约为0到0.2。此设置是一个阈值,该阈值确定没有人可见,并且当得分低于该阈值时,运动将停止。向前是化身面向前方时的阈值(身体方向在前方的±45度以内)。
· 后退阈值
Backward是超出上述Forward范围的阈值。如果看不到面孔,则总体得分会降低,因此我们将其分开管理。将此值设置得较低。
· LockFoot
当脚趾几乎没有插入相机或脚趾不稳定时,此功能可锁定脚趾的移动。如果脚刚好在摄像机或视频范围内,则最好将其锁定(伸出时无法做出准确的判断)。如果不移动脚趾,您的脚趾并不是太自然。默认情况下可以将其打开。
检查时锁定脚踝。如果在移动时锁定它,它将被锁定在一个奇怪的位置。通常,您要将其锁定在初始位置,因此请在检查后重新启动应用程序。
· LockLegs锁定
从膝盖向下的运动。我试图用LockFoot做到这一点,但我认为它没有太大用处。
· ElbowAxisTop切换
肘旋转轴。例如,如果您的肘部外侧具有纹理(例如球衣),或者内侧阴影带有纹理,则可以弯曲手臂而无需任何思考,并且该纹理看起来很奇怪。在这种纹理的情况下,肘部的旋转轴被切换为使得内侧和外侧将像这样移动。但是,如果您将手臂向上笔直,肘部会像扭曲一样运动。启用此选项将切换到正常的肘部运动,并且肘部将以自然的方式运动。但是,纹理看起来很奇怪。参见下图。上排是肘部内部带有阴影的纹理。禁用时,内部有阴影,但是启用时,它在外部。但是,当关闭时(如在下排中一样),肘部看起来会扭曲。如果您的手臂肤色坚硬或坚硬,请打开它。似乎有更好的方法,但是目前是这样。

· 训练有素的模型
选择用于姿势估计的模型。如果规格足够,请选择“高质量”。如果您更改此项目,请重新启动应用程序。如果规格不足,请使用下面描述的低质量型号。
记录

Unity资产存储中的BVH工具按原样用于保存BVH。如果您想使用Unity读取数据,我认为最好使用此Asset。Github看起来像这样。有关选项的说明,另请参见Github。
https://github.com/emilianavt/BVHTools
· Blender坐标系
加载到Blender或转换为VRM Live Viewer或VMD时,似乎已关闭。似乎在更改此选项时应该将其打开,以使其与Blender的坐标系匹配,并使用Blender对其进行读取和校正,然后再次使用Unity对其进行读取。
·
启用“ 增强类人动物骨骼” 时,仅保存类人动物骨骼。转换为VRM Live Viewer或VMD时,仅使人形骨骼保持打开状态。如果要在输出中包含诸如头发或衣服之类的骨骼,请将其关闭。
· 捕获
打开时,将以固定的指定FPS保存数据。我不确定它是否确实按指定保存。
· CatchUp如果
将其设置为on,则当帧频较低时,“捕获标记可用于加速捕获,并且捕获的动画的持续时间可以保持准确。在给定的帧之后,我们保证根据给定的frameRate,至少要经过一帧所需的毫秒数。”
其他

· 使用Unity Video Capture启用
Unity Video Capture。这将使当前显示的屏幕(不包括菜单和设置屏幕)成为USB摄像机的输出,以便可以将其作为其他应用程序(例如Zoom(虚拟摄像机))作为摄像机输入来处理。有关详细信息,请参阅使用Unity Capture进行缩放输出。
· 使用VMC协议使用VMC协议
发送化身骨骼信息和虚拟跟踪器。这是示例代码。不发送混合形状。VMC协议也无法接收。尽管它仍然是测试实现,但我已经确认EVMC4U可以接收数据(实际上,我对此了解不多)。

· IP
指定运行VMC协议服务器的PC的IP地址。通常,应保持原样为127.0.0.1。
· 端口
指定VMC协议的服务器端口号。我不知道正常数字是多少,但是大概是39539。
· Rot
ThreeDPoseTracker将其背面旋转180度。通过检查进行180度校正。
· 恢复设置将
设置恢复到初始状态。头像设置也将被初始化。请直接退出应用程序。
关于BVH文件
在此应用中,坐标系旋转了180度。从正面看时,它的背面朝后。为方便起见,此工具较容易制造,但有一些优点,因此我觉得自己犯了一个错误。目前,输出后请旋转180度。
转换为VMD
关于将输出的BVH文件转换为VMD,我确认可以使用B-MoMi版本0.2进行转换。有关B-MoMi的下载和详细用法,请参见下文。
https://www.bilibili.com/read/cv7335895
如下设置骨骼图。Kimo的左右臂分别为40和-40。通常,加号和减号是相反的,但是正如我上面所写的,此应用程序的输出面向后。因此,似乎必须反转从T姿势到A姿势的校正值(也许)。请参考手册设置适时的刻度。
使用文本编辑器打开BVH文件时,可以在第一个HIERARCHY项目中找到BVH骨骼信息。如有必要,请更正引用它的骨骼图文件(可以使用B-MoMi的-makeMap选项获得骨骼信息,但这并不完美)。
boneMap_TDPT_1.txt
#
#骨图
#
#@ scale缩放中心骨骼的运动
原始数据在#1.0下保持不变。
#@ scale = 0.3
中心=臀部
左脚= LeftUpperLeg
左膝= LeftLowerLeg
左脚踝=左脚
右脚= RightUpperLeg
右膝= RightLowerLeg
右脚踝=右脚
上身=胸部
左肩
左臂= LeftUpperArm,0,0,40
左肘= LeftLowerArm
左手
右肩
右臂= RightUpperArm,0,0,-40
右肘= RightLowerArm
左手=左手
颈部
头
BVH文件应在关闭Blender坐标系并打开“强制人形骨骼”的情况下创建。如果保存的BVH文件是motion.bvh,而骨骼图文件是boneMap_TDPT_1.txt,请在命令提示符处执行以下命令,以创建一个与指定BVH文件同名的VMD文件(适当地更正路径) )。
C:\ b-momi_02 \ b-momi> b-momi.bat -bvh motion.bvh -map boneMap_TDPT_1.txtB-MoMi 0.2适用于MikuMikuDance的BVH运动转换器 输出目标:motion0723.vmdBVH模型高度= 1.284616未来高度= 15.5686========开始转换========@ scale = 12.11926365544256========转换完成(motion.vmd)========
之后,关闭MikuMikuDance一侧的脚IK,并加载运动。如果处理速度因环境而异,则在加载运动时就像快进一样。请通过运动的放大倍数等进行调整。(我没有使用过MMD,所以我不知道如何使用它)。
这就是我尝试过的全部。

最后
我认为在Qiita中撰写有关应用程序发布的文章可能会有所不同,但是在Qiita中编写起来很容易,因此我想使用Qiita一段时间。
接下来,我想考虑深度的运动和脚的增加(地板的判断)。我不确定是否可行,因为这样做有点困难。
以下是先前的副本。
顺便说一句,此应用程序的源位于以下存储库中(正在构建中)。根据Github上写的许可对代码进行许可。我还负责姿势估计,因此并非全部免费。如果要添加功能并将其用于商业目的,请购买许可证或申请工作。如果您确实要免费添加功能并将其用于商业用途,则将免费传递此应用程序版本,因此,如果您请求合并或提取请求,则可以将其添加到应用程序中并在以后发布(不能保证提供担保)。 )。
https://github.com/digital-standard/ThreeDPoseTracker
执照
无论是否获利,都可以随意使用ThreeDPoseTracker的此可执行文件。使用此可执行文件的分发和运动数据也可以免费获得。
请遵循Github上的许可以获取Github上的源代码。
免责声明
对于因使用本软件而造成的任何损害,对软件或硬件的其他损害,或因无法使用该软件而造成的损害,制造商概不负责。 ..