Попробуйте заменить InputStream is = new FileInputStream (file)
на InputStream is = getAssets().open(file)
Я вижу, что вы создаете новую базу данных изображений и затем загружаете все изображения.Это не очень хорошая практика, потому что загрузка одного изображения занимает около 30 мс.Поэтому, если вам нужны все эти изображения с самого начала, вам следует загрузить базу данных изображений во время компиляции.Вы должны использовать arcoreimg для создания базы данных, эта опция также имеет возможность установить размер изображения в реальном мире, что помогает при обнаружении.Чем загружать базу данных только с:
AugmentedImageDatabase augmentedImageDatabase = new AugmentedImageDatabase(session);
try(InputStream inputStream = getAssets().open("imgdatabase.imgdb")){
augmentedImageDatabase = AugmentedImageDatabase.deserialize(session, inputStream);
} catch (IOException e) {
Log.e(TAG, "IO exception loading augmented image database.", e);
e.printStackTrace();
}
config.setAugmentedImageDatabase(augmentedImageDatabase);
Но не загружайте изображения, которые вам не нужны, в начале приложения.Потому что ваше приложение будет пытаться обнаружить все изображения, и это может сильно повлиять на производительность.