腾讯特效SDKAndroid_音视频解决方案_同尘科技
功能说明
输入相机的 openGL 纹理,实时输出身体3D数据。您可以利用这些3D数据做一进步的开发,例如传到 Unity 中驱动您的模型。
集成指引
首先需要集成腾讯特效SDK,具体请参见 独立集成腾讯特效。
接口调用
1. 打开功能开关(XmagicApi.java)。
public void setFeatureEnableDisable(String featureName, boolean enable);
featureName 填 XmagicConstant.FeatureName.BODY_3D_POINT
。2. 设置数据回调(XmagicApi.java)。2.6.0及之前版本使用如下方法
void setYTDataListener(XmagicApi.XmagicYTDataListener ytDataListener)
public interface XmagicYTDataListener { void onYTDataUpdate(String data)}
onYTDataUpdate 返回 JSON 结构的 string 数据,其示例如下:”face_info” 里是人脸相关的数据,与身体 3D 数据无关,可以忽略。”body_3d_info” 里各字段说明见下文。3.0.0版本使用如下方法
void setAIDataListener(XmagicApi.OnAIDataListener aiDataListener)
public interface OnAIDataListener { void onFaceDataUpdated(List faceDataList); void onHandDataUpdated(List handDataList); void onBodyDataUpdated(List bodyDataList); void onAIDataUpdated(String data); //此方法是3.0.0版本新增方法,数据结构和之前XmagicYTDataListener接口的数据保持一致}
onAIDataUpdated 返回 JSON 结构的 string 数据,其示例如下:”face_info” 里是人脸相关的数据,与身体 3D 数据无关,可以忽略。”body_3d_info” 里各字段说明见下文。
身体点位及点位数据说明
标准 SMPL 点位定义
标准 SMPLX 手部骨骼点位定义
SDK 输出的 JSON 数据示例如下:
body_3d_info 里各个字段说明如下:imageWidth,imageHeight:输入给 SDK 的图像的宽高items:数组,目前只有一个元素index:保留位,目前可以忽略它pose:[0,2]位置,人体位置,以相机为中心,人体根骨骼的3D位置 x、y、z[3,12]位置,人体形态,10个float数,以标准 SMPL 的10套不同mesh为基底,组合得到人体型的估计[13]位置,Focal_length,固定值为5000[14,29]位置,OpenGL 投影矩阵,基于 focal_length 得到的在3D空间中渲染物体的投影矩阵。4X4投影矩阵在算法内部计算方式:
matrix={ 2 * focal_length / img_wid, 0, 0, 0, 0, 2 * focal_length / img_hei, 0,0, 0,0, (zf + zn) / (zn - zf), -1, 0, 0, (2.0f * zf * zn) / (zn - zf), 0};}
[30,33]位置,接地数据,脚是否踩地,左脚跟、左脚尖、右脚跟、右脚尖position_x,position_y,position_z:[0,23]位置,人体2D点位,见上文的图1, 2D点的 position_z 都是0[24,47]位置,人体3D点位,见上文的图1rotation[0,23]位置,人体骨骼旋转四元数,每个四元数的属性顺序是 w、x、y、z[25,54]位置,手部骨骼旋转四元数,左手15个,右手15个,每个四元数的属性顺序是 w、x、y、z
骨骼的不同命名方式及对应关系
序号 | Bone Names | Bone Names 2 |
01234567891011121314151617181920212223 | “pelvis”,”left_hip”,”right_hip”,”spine1″,”left_knee”,”right_knee”,”spine2″,”left_ankle”,”right_ankle”,”spine3″,”left_foot”,”right_foot”,”neck”,”left_collar”,”right_collar”,”head”,”left_shoulder”,”right_shoulder”,”left_elbow”,”right_elbow”,”left_wrist”,”right_wrist”,”left_hand””right_hand” | “Hips””LeftUpLeg””RightUpLeg””Spine””LeftLeg””RightLeg””Spine1″”LeftFoot””RightFoot””Spine2″”””””Neck””LeftShoulder””RightShoulder””Head””LeftArm””RightArm””LeftForeArm””RightForeArm””LeftHand””RightHand””””” |
252627282930313233343536373839 | “left_index1″”left_index2″”left_index3″”left_middle1″”left_middle2″”left_middle3″”left_pinky1″”left_pinky2″”left_pinky3″”left_ring1″”left_ring2″”left_ring3″”left_thumb1″”left_thumb2″”left_thumb3 | IndexFinger1_LIndexFinger2_LIndexFinger3_LMiddleFinger1_LMiddleFinger2_LMiddleFinger3_LPinkyFinger1_LPinkyFinger2_LPinkyFinger3_LRingFinger1_LRingFinger2_LRingFinger3_LThumbFinger1_LThumbFinger2_LThumbFinger3_L |
404142434445464748495051525354 | “right_index1″”right_index2″”right_index3″”right_middle1″”right_middle2″”right_middle3″”right_pinky1″”right_pinky2″”right_pinky3″”right_ring1″”right_ring2″”right_ring3″”right_thumb1″”right_thumb2″”right_thumb3” | IndexFinger1_RIndexFinger2_RIndexFinger3_RMiddleFinger1_RMiddleFinger2_RMiddleFinger3_RPinkyFinger1_RPinkyFinger2_RPinkyFinger3_RRingFinger1_RRingFinger2_RRingFinger3_RThumbFinger1_RThumbFinger2_RThumbFinger3_R |
对音视频的解决方案有疑惑?想了解解决方案收费? 联系解决方案专家
腾讯云限时活动1折起,即将结束: 马上收藏
同尘科技为腾讯云授权服务中心,购买腾讯云享受折上折,更有现金返利:同意关联,立享优惠
阿里云解决方案也看看?: 点击对比阿里云的解决方案
暂无评论,你要说点什么吗?