FirebaseのMLKitで機械学習の推論タスク(顔認識、テキスト認識)をしようとしても、以下のエラーがコンソールに表示され、認識結果を取得できなかった。

[Firebase/MLKit][I-MLK009001] An empty result was returned from GMVDetector in VisionFaceDetector.

WebでI-MLK009001Firebase/MLKit not workingで検索しても同様の事象がヒットしなかったため、記事にまとめる。

前提

  • FirebaseのMLKitをCarthageでバイナリとして導入している
  • FirebaseMLVisionFaceModel or FirebaseMLVisionTextModelを利用している

解決方法

FirebaseのCarthage導入のドキュメントにもある通り、GoogleMVFaceDetectorResources.bundleもしくはGoogleMVTextDetectorResources.bundleが正しくアプリにバンドルされているか確認する。

具体的には、XcodeのBuild Phases > Copy Bundle Resourcesに.bundleファイルが追加されているか確認するため、右上の検索バーにファイル名を入力し、検索する。

Xcode

自分の場合は、CarthageのBuildディレクトリからプロジェクト配下に.bundleファイルをコピーしたものの、Copy Bundle Resourcesに追加できていなかった。

感想

  • エラー文言がちょっとわかりづらい
  • 必要不可欠な.bundleファイルが読み込めていない場合はassertしても良いのではないかと思う
  • もしくはI-MLK009001など、エラーコードで検索できるとよかった