Es ist möglich, Camera2 API mit Google Vision API zu verwenden.
Zunächst erhält der Google Vision API-Gesichtserkenner einen Frame Objekt, das zum Analysieren verwendet (Gesichter und seine Orientierungspunkte erkennen).
Die Camera1-API stellt die Vorschaubilder im NV21-Bildformat zur Verfügung, was für uns ideal ist. Google Frame.builder unterstützt sowohl setImageData (ByteBuffer im NV16-, NV21- oder YV12-Bildformat) und setBitmap , um ein Bitmap als Vorschau-Frames zu verarbeiten.
Ihr Problem besteht darin, dass die Camera2-API die Vorschaubilder in einem anderen Format bereitstellt. Es ist YUV_420_888 . Damit alles funktioniert, müssen Sie die Vorschaubilder in eines der unterstützten Formate konvertieren.
Sobald Sie die Vorschaubilder von Camera2 von Ihrem ImageReader als Image Sie können diese Funktion verwenden, um sie in ein unterstütztes Format zu konvertieren (in diesem Fall NV21).
%Vor%Dann können Sie das zurückgegebene Byte [] verwenden, um einen Google Vision Frame zu erstellen:
%Vor%Abschließend rufen Sie den Detektor mit dem erstellten Frame auf:
%Vor%Wie auch immer, wenn Sie mehr darüber wissen wollen, können Sie mein kostenloses Arbeitsbeispiel auf GitHub testen: Camera2Vision . Ich hoffe, ich habe geholfen:)
Bitte werfen Sie einen Blick
camera2 mit Mobile Vision? # 65
Ok, ich habe das gefunden
Es gibt keine kurzfristigen Pläne für eine camera2-Version der CameraSource-Klasse in der offiziellen API. Da die API jedoch strukturiert ist, könnte eine alternative Version von CameraSource von der Entwickler-Community geschrieben werden, die camera2 verwendet. Alle vorhandenen APIs zum Arbeiten mit Frames und Detektoren reichen aus, um auch eine camera2-Implementierung zu unterstützen.
Tags und Links android android-vision