微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 手机设计讨论 > MTK手机平台交流 > camera无法人脸识别解决方法

camera无法人脸识别解决方法

时间:10-02 整理:3721RD 点击:

第一次进CAMERA无法识别人脸,某个方向无法识别人脸

发生如下现象,可以参考solution:
1.第一次进camera无法识别人脸,但是拍照之后,就可以正常检测人脸。
2.横着拿手机或者竖拿手机无法检测到人脸,但是有一个方向能检测到人脸。

解决方法:

该问题一般是由于camera ap设置了cam-mode=1,但是在进camera以及手机旋转的时候,没有设置rotation导致。
请按如下步骤check:
1.FDCLIent.Thread.cpp文件的onClientThreadLoop()方法中:

  1. int const i4CamMode = mpParamsMgr->getInt(mtkCameraParameters::KEY_CAMERA_MODE);
  2. if ( i4CamMode == MtkCameraParameters::CAMERA_MODE_NORMAL )
  3. Rotation_Info = 360;
  4. else
  5. Rotation_Info = mpParamsMgr->getInt(CameraParameters::KEY_ROTATION);
  6. //MY_LOGD("Rotation_Info:%d", Rotation_Info);

复制代码

修改为:

  1. // int const i4CamMode = mpParamsMgr->getInt(MtkCameraParameters::KEY_CAMERA_MODE);
  2. // if ( i4CamMode == MtkCameraParameters::CAMERA_MODE_NORMAL )
  3. Rotation_Info = 360;
  4. // else
  5. // Rotation_Info = mpParamsMgr->getInt(CameraParameters::KEY_ROTATION);
  6. MY_LOGD("Rotation_Info:%d", Rotation_Info);

复制代码

如果修改之后可以正常检测人脸,说明确实是ap没有设置rotation下来,但是又设置了cam-mode导致,请按照第二步修改;如果还是不能检测人脸,请提交eservice。

2.还原第一步的修改,跟贵司camera ap的同事check,请在进camera以及手机旋转的时候重新设置rotation。
设置方式:parameter的public void setRotation(int rotation) 方法,具体可以参考我司ap代码中setRotation的调用。

注意: 如果不想修改camera ap,想保留FDClient.Thread.cpp的修改,会带来一个问题:底层会四个方向去检测人脸,影响人脸识别的速度。如果ap设置了rotation,底层就只会按照rotation设置的方向去检测人脸,检测速度就比较快,但是如果设置的rotation不正确,就会检测不到人脸。


Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top