BodyLandmark 接口文档
人体关键点检测器,回吐14个人体关键点。支持多人检测
1. 构造方法
同步构造方法
BodyLandmark bodyLandmark = (BodyLandmark) CVCenter.getInstance().syncNewDetector(DetectorConstance.DETECTOR_TYPE_BODYJOINT);
异步构造方法
CVCenter.getInstance().asyncNewDetector(DetectorConstance.DETECTOR_TYPE_BODYJOINT, new DetectorListener.OnDetectorCreatedListener() { @Override public void onCreated(int type, Object detector) { Log.d(TAG, "onCreated: " + type + "," + detector); BodyLandmark bodyLandmark = (BodyLandmark) detector; } @Override public void onFailed(String msg) { Log.e(TAG, "onFailed: " + msg); } });
2. 检测方法
MMFrame mmcvFrame = new MMFrame();
BodyLandmarkPostInfo info = new BodyLandmarkPostInfo();
mmcvFrame.setFormat(MMFrame.MMFormat.FMT_NV21);
mmcvFrame.setDataPtr(data);//data为相机或者图片数据
mmcvFrame.setDataLen(data.length);//数据的大小
mmcvFrame.setWidth(width);//图片宽度
mmcvFrame.setHeight(height);//图片高度
mmcvFrame.setStep_(width);//步距,在nv21模式下,等于宽度的值
BodyLandmarkParams params = new BodyLandmarkParams();
params.rotate_degree_ = rotateDegree;//旋转角
params.restore_degree_ = restoreDegree;//手机相机安装角度
params.fliped_show_ = flipedShow;//是否是前置,前置需要翻转
params.use_tracking_ = true;//是否开启关节点追踪
params.detect_single_frame_ = false;//检测图片还是视频流
bodyLandmark.ProcessFrame(mmFrame, params, info);//执行检测
BodyLandmarkPostInfo 字段介绍
public class BodyLandmarkPostInfo {
public MMJoint[][] multi_person_;//每个人对应着一个MMJoint[],每个MMJoint[]描述着一个人的关节点
}
MMJoint 字段介绍
float score_;//置信分
int x_;//关节点位置x
int y_;//关节点位置y