HMSとFirebaseの機械学習（ML Kit）の比較

# 機械学習を利用するAndroidアプリの開発
近年機械学習が話題になっています。しかし、機械学習を本格的に学んだことがある開発者が少ないので、機械学習を使うアプリの開発を難しく感じるかもしれません。

ところが、実際の開発において、機械学習のロジックを自前で実装する必要がありません。ML Kitを使えば、機械学習の知識がなくても簡単に開発できます。

Androidで簡単に導入できるML Kitが二つあります。

* [HMS ML Kit](https://developer.huawei.com/consumer/jp/hms/huawei-mlkit)
* Firebase ML Kit

どれを導入すべきか迷う方がいらっしゃると思うので、HMS ML KitとFirebase ML Kitの機能をまとめてみました。

※HMSに[HUAWEI HiAi](https://developer.huawei.com/consumer/jp/hiai)の機能もあるが、ファーウェイの端末でしか利用できないので、今回の比較対象に入れないことにします。HUAWEI HiAiに興味がある方はこちらをご参照ください（[https://developer.huawei.com/consumer/jp/hiai](https://developer.huawei.com/consumer/jp/hiai)）。

# HMSのML KitとFirebaseのML Kitの比較
下記はHMSのML KitとFirebaseのML Kitの比較表です。Google Cloudで代用できる機能も表に入れました。

|機能|HMS(オンデバイス)|Firebase(オンデバイス)|HMS(クラウド)|Firebase(クラウド)|
|:---:|:---:|:---:|:---:|:---:|
|[テキスト認識](https://developer.huawei.com/consumer/jp/doc/HMSCore-Guides-V5/text-recognition-0000001050040053-V5)|〇|〇|〇|〇|
|[ドキュメント認識](https://developer.huawei.com/consumer/jp/doc/HMSCore-Guides-V5/document-recognition-0000001050038108-V5)|||〇|Google Cloud - Vision AI|
|[銀行カード認識](https://developer.huawei.com/consumer/jp/doc/HMSCore-Guides-V5/bank-card-recognition-0000001050038118-V5)|〇||||
|[一般カード認識](https://developer.huawei.com/consumer/jp/doc/HMSCore-Guides-V5/general-card-recognition-0000001050040073-V5)|〇||||
|[翻訳](https://developer.huawei.com/consumer/jp/doc/HMSCore-Guides-V5/text-translation-0000001050040079-V5)|〇|〇|〇|Google Cloud - 翻訳|
|[言語識別](https://developer.huawei.com/consumer/jp/doc/HMSCore-Guides-V5/language-detection-0000001050038134-V5)|〇|〇|〇||
|音声認識|||[60秒以内](https://developer.huawei.com/consumer/jp/doc/HMSCore-Guides-V5/ml-asr-0000001050066212-V5)、[ファイル](https://developer.huawei.com/consumer/jp/doc/HMSCore-Guides-V5/audio-file-transcription-0000001050040089-V5)、[リアルタイム](https://developer.huawei.com/consumer/jp/doc/HMSCore-Guides-V5/real-time-transcription-0000001054964200-V5)、日本語未対応|Google Cloud - Speech-to-Text|
|[音声合成](https://developer.huawei.com/consumer/jp/doc/HMSCore-Guides-V5/ml-tts-0000001050068169-V5)|||日本語未対応|Google Cloud - Text-to-Speech|
|[自然な音声合成](https://developer.huawei.com/consumer/jp/doc/HMSCore-Guides-V5/video-course-creator-0000001051266263-V5)|||日本語未対応|Google Cloud - Text-to-Speech|
|[音声種類識別](https://developer.huawei.com/consumer/jp/doc/HMSCore-Guides-V5/sound-detection-0000001055282786-V5)|||〇||
|[画像のラベル付け](https://developer.huawei.com/consumer/jp/doc/HMSCore-Guides-V5/image-classification-0000001050040095-V5)|〇|〇|〇|〇|
|[オブジェクトの検出とトラッキング](https://developer.huawei.com/consumer/jp/doc/HMSCore-Guides-V5/object-detection-track-0000001050038150-V5)|〇|〇|||
|[ランドマーク認識](https://developer.huawei.com/consumer/jp/doc/HMSCore-Guides-V5/landmark-recognition-0000001050038154-V5)|||〇|〇|
|[オブジェクト切り抜き](https://developer.huawei.com/consumer/jp/doc/HMSCore-Guides-V5/image-segmentation-0000001050040109-V5)|〇||||
|[類似商品検索](https://developer.huawei.com/consumer/jp/doc/HMSCore-Guides-V5/product-visual-search-0000001050038164-V5)|||〇|Google Cloud - Vision AI|
|[画像高画質化](https://developer.huawei.com/consumer/jp/doc/HMSCore-Guides-V5/imagesuper-resolution-0000001051546182-V5)|〇||||
|[画像歪み補正](https://developer.huawei.com/consumer/jp/doc/HMSCore-Guides-V5/documentskewcorrection-0000001051703156-V5)|〇||||
|[文字高画質化](https://developer.huawei.com/consumer/jp/doc/HMSCore-Guides-V5/text-image-super-resolution-0000001055442768-V5)|〇||||
|[場面のラベル付け](https://developer.huawei.com/consumer/jp/doc/HMSCore-Guides-V5/scene-detection-0000001055162807-V5)|〇||||
|[顔検出](https://developer.huawei.com/consumer/jp/doc/HMSCore-Guides-V5/face-detection-0000001050038170-V5)|〇|〇|||
|[骨格検出](https://developer.huawei.com/consumer/jp/doc/HMSCore-Guides-V5/skeleton-detection-0000001051008415-V5)|〇||||
|[Live Face Detection](https://developer.huawei.com/consumer/jp/doc/HMSCore-Guides-V5/liveness-detection-0000001051386243-V5)|〇||||
|[手のひら検出](https://developer.huawei.com/consumer/jp/doc/HMSCore-Guides-V5/handkeypointdetection-0000001051615541-V5)|〇||||
|[自然言語処理](https://developer.huawei.com/consumer/jp/doc/HMSCore-Guides-V5/text-embedding-0000001055002819-V5)|||〇|Google Cloud - 自然言語|
|[AutoML モデルの推論](https://developer.huawei.com/consumer/jp/doc/HMSCore-Guides-V5/image-classification-pre-trained-model-0000001055210299-V5)|〇|〇|||
|[カスタムモデルの推論](https://developer.huawei.com/consumer/jp/doc/HMSCore-Guides-V5/ml-mindspore-lite-0000001055328885-V5)|〇|〇|||
|[バーコード スキャン](https://developer.huawei.com/consumer/jp/doc/HMSCore-Guides-V5/service-introduction-0000001050041994-V5)|〇|〇|||
|スマート リプライ||〇||Google Could - Dialogflow|

比較表に示したように、画像認識分野においては、HMSのほうがより多くの機能を提供しています。音声認識分野においても、Firebaseがオンデバイスの言語識別機能しか提供していないのに対し、HMSがさらにクラウド機能も提供しています。また、日本語の音声認識と音声合成機能を使う場合は現時点ではGoogle Couldを使うとよいでしょう。総じて言えば、HMSのほうがより豊富な機械学習能力を提供しています。

# 参考
* HMS：[https://developer.huawei.com/consumer/jp/](https://developer.huawei.com/consumer/jp/)
* HMS ML Kitの紹介：[https://developer.huawei.com/consumer/jp/hms/huawei-mlkit](https://developer.huawei.com/consumer/jp/hms/huawei-mlkit)
* HMS ML Kitのドキュメント：[https://developer.huawei.com/consumer/jp/doc/development/HMSCore-Guides/service-introduction-0000001050040017](https://developer.huawei.com/consumer/jp/doc/development/HMSCore-Guides/service-introduction-0000001050040017)
* Huawei Developers：[https://forums.developer.huawei.com/forumPortal/en/home](https://forums.developer.huawei.com/forumPortal/en/home)
* Facebook Huawei Developersグループ：[https://www.facebook.com/Huaweidevs/](https://www.facebook.com/Huaweidevs/)