Обработка модели Google ML Kit занимает больше времени, чем ожидалосьAndroid

Форум для тех, кто программирует под Android
Anonymous
Обработка модели Google ML Kit занимает больше времени, чем ожидалось

Сообщение Anonymous »

Я хочу использовать Google MLKit Android SDK для сегментации, и, следуя его официальному руководству, я создал этот простой код, используя последнюю версию API (com.google.mlkit:segmentation-selfie:16.0.0-beta4). Я использую Samsung S10+ с хорошим графическим процессором, а официальное приложение сегментации камеры MLKit работает без сбоев со скоростью 25–30 кадров в секунду. Но когда я рассчитываю время, необходимое для обработки модели, как показано ниже, оно показывает почти 100 мс только для того, чтобы модель вернула результат. Не говоря уже об обработке маски и т. д. Это гораздо дольше, чем нужно для обработки в реальном времени. Я что-то упускаю? В частности,
  • Правильен ли мой подход к расчету времени обработки сегментации?
  • Есть ли какие-либо советы, подсказки или способы дальнейшей оптимизации обработки, возможно, в пользу сегментации более низкого качества?
Изображение

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 result =
segmenter.process(image)
.addOnSuccessListener(
new OnSuccessListener() {
@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
}
});
}


Подробнее здесь: https://stackoverflow.com/questions/774 ... to-process

Вернуться в «Android»