Комплект ML занимает слишком много памяти [Android] - PullRequest
0 голосов
/ 05 июня 2018

Я пытаюсь использовать содержимое изображения [ onDevice Mode ] для описания некоторых изображений, но это занимает слишком много памяти, и если я попробовал много изображений в одном приложении, вылетает .

Я не знаю, почему это происходит, но всегда выдает OutOfMemoryError Исключение.мои изображения имеют размер около 1-2 МБ.

, когда я гуглил исключение, я включил android:largeHeap="true", но все равно вылетает после попытки 2 изображений.

Я также пытался освободить память от переменных, используя System.gc();, но все равно занимал слишком много памяти.

Вот код, который я использую для этого на устройстве:

в onCreate ();detector = FirebaseVision.getInstance() .getVisionLabelDetector();когда кнопка нажата

            detector.detectInImage(image)
                    .addOnSuccessListener(
                            new OnSuccessListener<List<FirebaseVisionLabel>>() {
                                @RequiresApi(api = Build.VERSION_CODES.M)
                                @Override
                                public void onSuccess(List<FirebaseVisionLabel> labels) {
                                    Toast.makeText(MainActivity.this, "Done", Toast.LENGTH_SHORT).show();
                                    setResult(labels, "onDevice Result : ", before);

                                    System.gc();
                                }
                            })
                    .addOnFailureListener(
                            new OnFailureListener() {
                                @Override
                                public void onFailure(@NonNull Exception e) {
                                    Toast.makeText(MainActivity.this, e.getMessage(), Toast.LENGTH_SHORT).show();
                                    System.out.println("Error: " + e.getMessage());
                                }
                            });

Может ли кто-нибудь помочь мне?

1 Ответ

0 голосов
/ 26 июня 2018

Моя проблема заключалась в том, что качество изображения слишком высокое и не сжимало изображение

Изображение должно быть сжато перед обработкой инициализации на нем

...