VideoProcessor 接口文档

人脸检测器,检测图片获取人脸区域,关键点信息。用于美颜,图片人脸检测等。

1. 构造方法

  • 同步构造方法

    VideoProcessor videoProcessor = (VideoProcessor) CVCenter.getInstance().syncNewDetector(DetectorConstance.DETECTOR_TYPE_FACE);
    
  • 异步构造方法

       CVCenter.getInstance().asyncNewDetector(DetectorConstance.DETECTOR_TYPE_FACE, new DetectorListener.OnDetectorCreatedListener() {
                @Override
                public void onCreated(int type, Object detector) {
                    Log.d(TAG, "onCreated: " + type + "," + detector);
                    VideoProcessor videoProcessor = (VideoProcessor) detector;
                }
    
                @Override
                public void onFailed(String msg) {
                    Log.e(TAG, "onFailed: " + msg);
                }
            });
    

2. 检测方法

MMFrame mmcvFrame = new MMFrame();
VideoInfo info = new VideoInfo();
mmcvFrame.setFormat(MMFrame.MMFormat.FMT_NV21);
mmcvFrame.setDataPtr(data);//data为相机或者图片数据
mmcvFrame.setDataLen(data.length);//数据的大小
mmcvFrame.setWidth(width);//图片宽度
mmcvFrame.setHeight(height);//图片高度
mmcvFrame.setStep_(width);//步距,在nv21模式下,等于宽度的值
VideoParams params = new VideoParams();
        params.rotate_degree_ = rotateDegree;//旋转角
        params.restore_degree_ = restoreDegree;//手机相机安装角度
        params.fliped_show_ = flipedShow;//是否是前置,前置需要翻转
        params.eye_classify_switch_ = true;//眨眼检测
videoProcessor.ProcessFrame(mmFrame, params, info);//执行人脸检测

VideoParams 主要字段介绍

 params.detect_single_frame_ = false;//true时支持静态图片扫描,false支持视频流扫描
 params.use_npd_ = true;
 params.asynchronous_save_features_ = true;//动态扫描的时候,可以提高效率
 params.save_features_version_ = FaceFeaturesParams.BigFeatureVersion.V2;//指定生成大特征的尺寸:v1是136*136的大特征,v2是200*200的大特征
 params.eye_classify_switch_ = true; //眨眼检测开关
 params.pose_estimation_type_ = POSE_ESTIMATION_WITH_EULERS;

VideoInfo 字段介绍

public class VideoInfo extends FacesInfo {
    ...
    public FaceAttribute[] faces_attributes_;//人脸属性集合,如果有两个人,则数组的大小为2;属性包括表情,正闭眼
    ...
}

FaceAttibute 主要字段

  public float left_eye_close_prob_ = -1;//左眼闭眼的系数

  public float right_eye_close_prob_ = -1;//右眼闭眼的系数

  public int expression_ = -1;//表情,-1: unknown, 0: other, 1: duzhui, 2:smile

同时,VideoInfo还继承了FaceInfo

public class FacesInfo implements Serializable {
    public SingleFaceInfo[] facesinfo_;//人脸集合,包含人脸具体信息
}

SingleFaceInfo 主要字段

    public int tracking_id_;//trackId,追踪人脸的id,人脸丢失或切换后会改变
    public float[] orig_face_rect_;//相对于原图的人脸区域矩形
    public float[] orig_landmarks_68_; //相对于原图的68个关键点,同样还有96、104、137、87个点
    public float[] face_rect_;//坐标转换后的人脸位置矩形
    public float[] landmarks_68_;//坐标转换后的68个关键点,同样还有96、104、137、87个点
    public float[] euler_angles_;//欧拉角,用来描述人脸的姿态

3. 释放方法

videoProcessor.Realease();
@Copyright © cosmos 2019 all right reserved,powered by Gitbook修订时间: 2019-05-31 10:17:01

results matching ""

    No results matching ""