camera无法人脸识别解决方法
时间:10-02
整理:3721RD
点击:
第一次进CAMERA无法识别人脸,某个方向无法识别人脸
发生如下现象,可以参考solution:
1.第一次进camera无法识别人脸,但是拍照之后,就可以正常检测人脸。
2.横着拿手机或者竖拿手机无法检测到人脸,但是有一个方向能检测到人脸。
解决方法:
该问题一般是由于camera ap设置了cam-mode=1,但是在进camera以及手机旋转的时候,没有设置rotation导致。
请按如下步骤check:
1.FDCLIent.Thread.cpp文件的onClientThreadLoop()方法中:
- int const i4CamMode = mpParamsMgr->getInt(mtkCameraParameters::KEY_CAMERA_MODE);
- if ( i4CamMode == MtkCameraParameters::CAMERA_MODE_NORMAL )
- Rotation_Info = 360;
- else
- Rotation_Info = mpParamsMgr->getInt(CameraParameters::KEY_ROTATION);
- //MY_LOGD("Rotation_Info:%d", Rotation_Info);
- // int const i4CamMode = mpParamsMgr->getInt(MtkCameraParameters::KEY_CAMERA_MODE);
- // if ( i4CamMode == MtkCameraParameters::CAMERA_MODE_NORMAL )
- Rotation_Info = 360;
- // else
- // Rotation_Info = mpParamsMgr->getInt(CameraParameters::KEY_ROTATION);
- MY_LOGD("Rotation_Info:%d", Rotation_Info);
2.还原第一步的修改,跟贵司camera ap的同事check,请在进camera以及手机旋转的时候重新设置rotation。
设置方式:parameter的public void setRotation(int rotation) 方法,具体可以参考我司ap代码中setRotation的调用。
注意: 如果不想修改camera ap,想保留FDClient.Thread.cpp的修改,会带来一个问题:底层会四个方向去检测人脸,影响人脸识别的速度。如果ap设置了rotation,底层就只会按照rotation设置的方向去检测人脸,检测速度就比较快,但是如果设置的rotation不正确,就会检测不到人脸。
