如何在 android 中使用带有 FaceDetector 的相机资源?
Posted
技术标签:
【中文标题】如何在 android 中使用带有 FaceDetector 的相机资源?【英文标题】:How to use camera resource with FaceDetector in android? 【发布时间】:2016-06-28 14:31:15 【问题描述】:我想在安卓中使用FaceDetector
。
我用位图图像尝试了FaceDetector
,它工作正常。
(借助:http://code.tutsplus.com/tutorials/an-introduction-to-face-detection-on-android--cms-25212)
现在,我想在相机开启时检测人脸。文档写道:
或者,可以在管道结构中使用检测器,在 与源(例如,CameraSource)和处理器(例如, LargestFaceFocusingProcessor),使您能够公平地构造 具有最少编码的高级检测管道。例如, 下面的代码创建并启动一个持续接收的管道 来自前置摄像头的摄像头源的预览帧,运行 对帧进行检测,管理对最突出的人脸的跟踪, 并随着时间的推移将持续的更新通知发送到 开发者定义的“FaceTracker”实例。
https://developers.google.com/android/reference/com/google/android/gms/vision/face/FaceDetector
它提供的代码:
detector.setProcessor(
new LargestFaceFocusingProcessor(
detector,
new FaceTracker()));
CameraSource cameraSource = new CameraSource.Builder(context, detector)
.setFacing(CameraSource.CAMERA_FACING_FRONT)
.setRequestedPreviewSize(320, 240)
.build()
.start();
我想在我的代码中实现这个:
public class MainActivity extends AppCompatActivity
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
FaceDetector detector = new FaceDetector.Builder(this)
.setProminentFaceOnly(true)
.build();
detector.setProcessor(
new LargestFaceFocusingProcessor(
detector,
new FaceTracker()));
try
CameraSource cameraSource = new CameraSource.Builder(this, detector)
.setFacing(CameraSource.CAMERA_FACING_FRONT)
.setRequestedPreviewSize(320, 240)
.build()
.start();
catch (IOException e)
e.printStackTrace();
class FaceTracker extends Tracker
public void onDone ()
但是,无法前进。你能帮我进一步编码吗?
【问题讨论】:
【参考方案1】:查看面部跟踪器示例代码,它与此类似。它还处理获取相机权限和活动暂停/恢复:
https://github.com/googlesamples/android-vision/blob/master/visionSamples/FaceTracker/app/src/main/java/com/google/android/gms/samples/vision/face/facetracker/FaceTrackerActivity.java
你遇到了什么问题?
请注意,“prominentFaceOnly”选项只会检测在相机预览中显得相对较大的人脸(即,人脸约为预览图像宽度的 35% 或更多)。
【讨论】:
以上是关于如何在 android 中使用带有 FaceDetector 的相机资源?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 google 标记中设置带有边框的图像在 Android 中?
如何在android中制作带有Image和textview的Button? [关闭]
如何使用带有 OpenGL ES 的 android 相机工作?
如何在 C#/Xamarin 中使用带有来自 android 钥匙串的私钥的 X.509 证书?