我正在使用移动视觉API来检测Android应用中的脸部。
我使用Face的SparseArray来存储对面的引用,但是detect.detect(frame)方法需要太长时间(15秒)来检测面部。
注意:我将相机拍摄的图像的位图传递给detectFaces方法。
我的代码在
下面Array
答案 0 :(得分:-1)
我目前正在浏览这个示例应用程序,但我遇到了同样的问题,即应用程序一直在返回,未检测到面部。
在阅读了here找到的文档后,我看到我应该使用detector.isOperational()来测试是否已下载所需文件以便检测工作。我使用这种方法建议正在下载文件:
public static void detectFaces(Context context, Bitmap image){
// Create the face detector, disable tracking and enable classifications
FaceDetector detector = new FaceDetector.Builder(context)
.setTrackingEnabled(false)
.setClassificationType(FaceDetector.ALL_CLASSIFICATIONS)
.build();
if(detector.isOperational()){
// Build the frame
Frame frame = new Frame.Builder().setBitmap(image).build();
...
}else{
Toast.makeText(context, R.string.not_operational, Toast.LENGTH_LONG).show();
}
}
接下来我意识到探测器从未运行过。经过更多研究后,我发现问题是我的设备没有足够的存储空间来保存所需的其他文件。我切换到另一台设备“不可操作”#39;第一次尝试时出错,从那时起它一直在运作。
此外,释放一些空间并将应用程序移动到外部存储空间允许它在我的第一台设备上运行。