Currently i am using ML Kit to detect face in my application. It's working but has one problem. I want to set minimum face size on it but it seems to have no effect. It always detects a face no matter what size is it.
Here is my code:
private fun setupCamera(cameraProviderFuture: ListenableFuture<ProcessCameraProvider>, mainView: MainView) {
val cameraProvider = cameraProviderFuture.get()
preview = Preview.Builder().build()
val cameraSelector = CameraSelector.Builder().requireLensFacing(CameraSelector.LENS_FACING_FRONT).build()
val realTimeOpts = FaceDetectorOptions.Builder()
.setPerformanceMode(FaceDetectorOptions.PERFORMANCE_MODE_FAST)
.setMinFaceSize(0.5f)
.enableTracking()
.build()
detector = FaceDetection.getClient(realTimeOpts)
val imageAnalysis = ImageAnalysis.Builder()
.setBackpressureStrategy(ImageAnalysis.STRATEGY_KEEP_ONLY_LATEST)
.build()
.apply { setAnalyzer(Executors.newSingleThreadExecutor(), FaceDetectAnalyzer(detector!!, mainView))}
try {
cameraProvider.unbindAll()
camera = cameraProvider.bindToLifecycle(this as LifecycleOwner, cameraSelector, imageAnalysis, preview)
preview?.setSurfaceProvider(binding.pvCameraPreview.createSurfaceProvider())
} catch (e: Exception) {
Log.e(TAG, "Use case binding failed", e)
}
}
Could someone point me any clues or suggestions? Thank you.