Мне кажется, я обнаружил ошибку в Firebase MLKit для Android , но, возможно, другие люди имеют некоторое представление об этом.
В настоящее время я транслирую видео с дрона на мое устройство Android,Он декодируется до YUV420-888
с MediaCodec
и записывается на InputReader
поверхность.Когда я передаю Image
, полученный в обратном вызове InputReader
, в MLKit, используя fromMediaImage
, , ошибок нет, но он ничего не обнаруживает в изображении .Если я преобразую Image
в Bitmap
, используя PixelCopy
, а затем передам его в MLKit с помощью fromBitmap
, тогда он сможет успешно обнаружить элементы изображения.
Я думаю, что проблема может заключаться в том, чтовидео происходит не с камеры телефона, а с внешней камеры на дроне (поэтому не использует Camera2
API).Я знаю, что мой видеопоток работает в целом, потому что его можно предварительно просмотреть на SurfaceView
и потому, что он работает после превращения в Bitmap
.Это заставляет меня поверить, что анализ MLKit данных YUV420-888
должен быть неправильным, и именно это приводит к проблеме.
У кого-нибудь есть понимание?