私はモバイルビジョンAPIを使用してAndroidアプリで顔を検出しています。モバイルビジョンAPIが顔を検出するのに時間がかかりすぎる
フェースへの参照を格納するためにSparseArray of Faceを使用しましたが、detect.detect(frame)メソッドが顔を検出するには長すぎます(15秒)。
注:cameraで撮影した画像のビットマップをdetectFacesメソッドに渡しています。
私のコードは
void detectFaces(Context context, Bitmap picture){
com.google.android.gms.vision.face.FaceDetector detector = new com.google.android.gms.vision.face.FaceDetector.Builder(context)
.setTrackingEnabled(false)
.setClassificationType(com.google.android.gms.vision.face.FaceDetector.ALL_CLASSIFICATIONS)
.build();
//Build the frame
Frame frame = new Frame.Builder().setBitmap(picture).build();
//Detect the faces
SparseArray<Face> faces = detector.detect(frame);//**This takes approx 15 second**
if(faces.size() == 0)
Toast.makeText(context, "No Face Detected", Toast.LENGTH_SHORT).show();
else
{
Toast.makeText(context,"Face detected are : " + faces.size() , Toast.LENGTH_LONG).show();
getClassification(faces.valueAt(0));
}
//Release the detector
detector.release();
}