Обработка модели 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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