提问人:Mary 提问时间:11/17/2023 最后编辑:Mary 更新时间:11/17/2023 访问量:31
Gogole MLKit 模型的处理时间比预期的要长
Gogole MLKit model takes longer than expected to process
问:
我想使用 Google MLKit Android SDK 进行细分,按照其官方教程,我使用最新的 API 版本()制作了这个简单的代码。我在三星 S10+ 上运行,它具有良好的 GPU,官方 MLKit 相机分割应用程序以 25-30 fps 流畅运行。但是,当我计算如下所示的模型处理所需的时间时,它显示几乎 100 毫秒,模型仅返回结果。更不用说口罩加工等了。这比实时处理所需的时间要长得多。我错过了什么吗?特别com.google.mlkit:segmentation-selfie:16.0.0-beta4
我计算分段处理时间的方法是否正确?
是否有任何技巧、窍门或方法可以进一步优化处理,也许可以换取较低质量的细分?
SelfieSegmenterOptions options =
new SelfieSegmenterOptions.Builder()
.setDetectorMode(SelfieSegmenterOptions.STREAM_MODE)
.build();
Segmenter segmenter;
segmenter = Segmentation.getClient(options);
InputImage image;
image = InputImage.fromBitmap(imageBitmap, Surface.ROTATION_0);
long startTime = System.nanoTime();
Task<SegmentationMask> result =
segmenter.process(image)
.addOnSuccessListener(
new OnSuccessListener<SegmentationMask>() {
@Override
public void onSuccess(SegmentationMask segmentationMask) {
// Task completed successfully
long endTime = System.nanoTime();
String time = "Time: "+(endTime - startTime)/1000000f +" ms";
timeTextView.setText(time);
ByteBuffer mask = segmentationMask.getBuffer();
int maskWidth = segmentationMask.getWidth();
int maskHeight = segmentationMask.getHeight();
// the rest of code...mask processing and making it pink
}
})
.addOnFailureListener(
new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
// Task failed with an exception
}
});
}
答: 暂无答案
评论
SelfieSegmenterOptions.STREAM_MODE
SINGLE_IMAGE_MODE