[英]Face Detector ML-KIT is not detecting faces
我正在嘗試將 ML-KIT 庫與 CameraX 一起實現以檢測照片中的人臉。 在這種情況下,我將放置一張照片(采用 BitMap 格式)以供 function 分析,該 function 將檢測該照片中的人臉。
在onCreate中初始化變量
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.fragment_photo)
Log.d(TAG, "onCreateView")
faceDetectorOptions = FaceDetectorOptions.Builder()
.setPerformanceMode(FaceDetectorOptions.PERFORMANCE_MODE_ACCURATE)
.setContourMode(FaceDetectorOptions.CONTOUR_MODE_ALL)
.build()
faceDetector = FaceDetection.getClient(faceDetectorOptions)
}
然后我將 BitMap 傳遞給 function detectFaces
override fun onCaptureSuccess(imageProxy: ImageProxy) {
val bitmap = imageProxy.image?.let { BitmapUtils().convertProxyImageInBitMap(it) }
bitmap?.let {
val photo = BitmapUtils().rotateBitmap(it, 90f)
detectFaces(photo, returnIntent)
}
}
function 應該分析這張照片中是否有人臉
private fun detectFaces(image: Bitmap, intent: Intent){
if (::faceDetectorOptions.isInitialized && ::faceDetector.isInitialized) {
val inputImage = InputImage.fromBitmap(image, 0)
val processImage = faceDetector.process(inputImage)
processImage.addOnSuccessListener {
if (it.size >= 1) {
TODO()
}
}
processImage.addOnFailureListener {
it.printStackTrace()
}
}
}
但是addOnSuccessListener 回調總是返回 0 人臉的數量,即使人臉已經被拍到。
對於相同的圖像,您可以嘗試MLKit 示例應用程序並檢查其 camerax 活動是否能夠檢測到人臉。
其他一些事情:
android.media.Image
所以你不需要把它轉換成 Bitmap
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.