問題タブ [android-vision]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - ビデオ ストリームによる Android ビジョンの顔検出
parrot bebop ドローンから受信しているビデオ ストリームに顔検出 API を統合しようとしています。
ストリームは MediaCodec クラス ( http://developer.android.com/reference/android/media/MediaCodec.html ) でデコードされ、これは正常に機能しています。デコードされたフレーム データをサーフェス ビューにレンダリングするのではなく、デコーダからのデコードされたフレーム データを使用して ByteBuffer に正常にアクセスできます。
デコーダーからデコードされた画像オブジェクト (クラスhttps://developer.android.com/reference/android/media/Image.html ) にアクセスすることもできます。それらにはタイムスタンプがあり、次の情報を取得します。
- 幅: 640
- 高さ: 368
- フォーマット: YUV_420_888
私が最初にやろうとしたことは、Framebuilder (android/gms/vision/Frame.Builder) を介して Vision API (com/google/android/gms/vision/Frame) の Frame オブジェクトを生成することでした。
このコードではエラーは発生せず、googleVisFrame オブジェクトは null ではありませんが、 を呼び出すgoogleVis.getBitmap()
とnull
. その後、Facedetection が機能しません (私のビジョン フレーム オブジェクトに問題があるためだと思います...)
これが機能したとしても、見つけたすべてのコードが内部カメラでの使用を示しているため、ビジョン API でビデオストリームを処理する方法がわかりません。
あなたが私を正しい方向に向けることができれば、私はとても感謝しています.
java - Android の Mobile Vision API を使用して QR コードをスキャンする
QR コードをスキャンできる Android アプリを作成する方法については、このチュートリアルに従いました。
これが完全なコードです。というようにグレードを使ってGoogle Playサービスを追加しましたcompile 'com.google.android.gms:play-services:7.8.0'
。
AndroidManifest.xml
activity_main.xml
MainActivity.java
Android 4.4.2 を実行している HTC Desire 816 でこれをテストしました。しかし、うまくいかないようです。カメラ ビューはアクティブですが、QR コードをポイントしても何も検出されません。ただし、エラーやクラッシュも発生しません。
何か不足していますか?
java - Google Mobile Vision: CameraSource がないと FaceDetector のパフォーマンスが低下する
現在、アプリケーションは Snapdragon SDK を正常に実行しています。互換性のあるデバイスの数を増やすために、プロジェクトに Vision 8.3.0 の FaceDetector を実装しようとしています。特定の機能を提供するためにカスタム カメラ + サーフェスに依存しているため、CameraSource は使用できません。できるだけ多くのコードを再利用したいと考えており、Snapdragon SDK は現在の実装で驚くほどうまく機能しています。
ワークフローは次のとおりです。
1) カメラのプレビューを取得する
2) 入力バイト配列をビットマップに変換します (何らかの理由で、ByteBuffers を操作できませんでした。画像サイズ、回転、および NV21 画像フォーマットが提供され、検証されましたが、顔が見つかりませんでした)。Bitmap は、割り当てによる速度低下を避けるために、処理スレッド内で既に初期化されているグローバル変数です。
3) receiveFrame を介したフィード検出器
これまでの結果は十分ではありません。ランドマークと分類を無効にしていても、検出は遅すぎて (2 ~ 3 秒) 不正確です。
問題は、前者を使用せずに CameraSource + Detector のパフォーマンスを複製することは可能ですか? ライブ入力で動作させるために CameraSource を使用することは必須ですか?
前もって感謝します!
編集
以下の pm0733464 の推奨事項に従って、Bitmap の代わりに ByteBuffer を使用しようとしています。これは私が従う手順です:
ここから、バイト配列の作成:
この方法でフレームを構築すると、面が見つかりません。ただし、ビットマップを使用すると、期待どおりに機能します。
android - Google Vision API を使用してまばたきを検出する
私は顔検出にビジョン API を使用しています。今はまばたきを実装したいのですが、片目がオフのときにビジョン API が目を検出します。
まばたき機能の実装方法を教えてください。
android - Google Vision API: QRCode 検出器でのネガティブ カラーのサポート
Vision API を使用して、アプリ内で QRCode リーダーに取り組んでいました。API が負の色を検出できないことに気付きました。私の顧客は、青色の背景に白色の QR コードのカードを何千枚も持っています。
2 つの qrcode の例を添付します。最初のものは完全に機能します (デフォルトの色)。2 つ目はそうではありません (青地に白)。一部の市販の QRCode リーダーはそれを読み取ることができますが、どのように行うのかわかりませんでした。
これを行うためにサードパーティのライブラリやアプリを使用することは本当に避けたいです。これまでのところ、カメラで NEGATIVE エフェクトを使用しています。しかし、これも回避したい回避策です。
その場でビットマップを反転するのは非常に遅く、問題外です。
負の色の検出は QRCode 仕様ではオプションであるとどこかで読みましたが、Google Vision API はそれをサポートしていないようです。提案?
ご清聴ありがとうございました。
android - Google Vision API による顔検出が VideoView に表示される
私は自分のアプリで Google Play Services の Vision API を使用しており、私のデバイス (Android 5.1 を搭載した Nexus 7 2012、および Android 4.2.2 を搭載した安価なタブレット) ではすべて正常に動作しますが、一部の製品デバイスでは動作しません。 .
アプリが開いている間は常に実行されている顔検出フレームワークを備えたビジョン API があるため、顔検出が彼を検出すると、アプリはコンテンツを変更します。
問題は、顔検出が機能しているときに でビデオを表示すると、VideoView
の上にある種の「ゴースト」が表示されることに気づき、VideoView
この「ゴースト」がプレビューであることがわかったためです。顔検出がリアルタイムで行われていること。
説明が複雑なので、問題をよりよく説明するビデオを録画しました:ビデオ
現時点では、次のことを試しました。
の寸法を変更する
.setRequestedPreviewSize(int, int)
と、この寸法に基づいて「ゴースト」も寸法が変更されることがわかったので、プレビュー サイズが問題の原因であることがわかりました。.setRequestedPreviewSize(int, int)
内部的に見たからの呼び出しを削除すると、CameraSource.Builder
ご覧のとおり、デフォルトでサイズが 1024x768 にCameraSource
なり、「ゴースト」が画面全体をこれで埋め尽くします。ビデオを再生するために別のフレームワークを試してみてください。別のフレームワークを削除
VideoView
して使用しTextureView
ても役に立ちません。ゴーストがまだ表示されています。異なるビデオ形式を使用しても効果がありません
これは、SurfaceView や SurfaceTexture 以外が同時に動作する場合に何らかの問題になる可能性があると思いますが、マルチメディア指向のアプリを使用するのはこれが初めてです。
誰かが問題になる可能性があることについて何らかの考えを持っていますか?
前もって感謝します。
編集
明確にするために、使用しているコードを投稿しています。
これは、私がアプリで使用している方法であり、ビデオで示されています。
私はフレーバーを使用してさまざまな種類のものを試していますが、このプロジェクトはこの機能のテストを簡単にするためだけのものでした。
onResume()
メソッドが呼び出されると、インスタンスからビデオをロードして開始File
しますCameraSource
明確にするために:
顔を検出するためだけに FaceTracker を使用しています
public void onNewItem(int id, Face face)
。public void onMissing(Detector.Detections<Face> detections)
表示する xml レイアウト
VideoView
は次のとおりです。