Android StudioでML Kitを使ってOCR機能を実装してみる

OCR(Optical Character RecognitionまたはReader:光学的文字認識)機能は便利なので、現在では色々なスマホアプリに使われていますね。少し調べてみると、ML Kitを使うことで比較的簡単にOCR機能を実現できそうということで、私も試してみました。

ML Kitって何?

既にご存知の方も多いと思いますが、ML Kitというのは、Googleが提供するAndroid/iOS向けモバイルSDK(Software Development Kit)のことです。

機械学習の知識がなくても、画像処理や自然言語処理などを簡単に実装できるようにするための無料のライブラリです。

OCR以外にも色々使えるということですね。

オフライン環境でも使えるというのもうれしいポイントです。

商用利用も可能ですが、特定の機能やモデルには追加の利用条件が付いたり、Cloudベースの機能と組み合わせる場合は、Google Cloudの料金が発生したりするようなので、詳しく知りたい方はGoogle公式ドキュメントなどを確認してください。

Android Studioで実装

MainActivity.kt

まずはMainActivityの実装から。

カメラ起動

カメラ起動の許可があれば起動します。

撮影処理

ボタンを押したときに実行する処理です。(imageCaptureインスタンスが存在するとき)

OCR処理(ML Kit)

今回のメインのOCR部分です。

権限関連

カメラ起動の権限をチェックしたりする部分です。

エントリポイント

エントリポイントをどこにするかはAndroidManifest.xmlで設定します。デフォルトはMainActivityになっていると思いますが、変更したい場合は確認してみてください。

定数

class内で1つだけ作れる静的メンバーを定義する箇所です。(static)

View(コントロール)

layoutで使うViewの変数名です。右側に書かれているのがクラス名です。

build.gradle.kts

dependenciesにML Kitなどの使用するライブラリを記載します。下記は一例です。

activity_main.xml

レイアウトも一例です。今回はレイアウトの作成方法については詳しく触れませんが、余力があれば別途記事を作成しようと思います。

実行結果

エミュレーターで実行した結果です。一応それらしく動いていそうですね。

さいごに

いかがでしたか?

今回はML Kitを使ってOCR機能を実装してみたという内容でした。

私も初めてAndroid Studioを触ったときは、MainActivityってどこ?とかlayoutディレクトリが無いとか、色々苦戦しましたが、Geminiに聞いたりしながら勉強を進めています。

次はもっと実用的な機能と組み合わせてみたいと思っています。

以上、最後まで読んでいただきありがとうございました。

コメント