デバイスのカメラを使用してギフトカードを引き換え、ライブカメラフィード上で短い文字列をリアルタイムで認識したときに、iTunesおよびApp Storeアプリと同じようなことを行う方法はありますか?
IOS 7では、AFAIKがバーコードのみを表すAVMetadataMachineReadableCodeObject
クラスが存在することを知っています。短い文字列の内容を検出して読み取ることに、もっと興味があります。これは、公開されているAPIメソッドを使用して可能ですか?
動作中のプロセスのビデオもあります。
https://www.youtube.com/watch?v=c7swRRLlYEo
ベスト、
私は、Apple app store redeem with camera with your memumと同じようなことをするプロジェクトに取り組んでいます。
ライブビデオの処理を開始するのに最適な場所は GitHubで見つけたプロジェクト です。これはAVFoundationフレームワークを使用しており、AVCaptureVideoDataOutputSampleBufferDelegateメソッドを実装します。
画像ストリーム(ビデオ)を取得したら、OpenCVを使用してビデオを処理できます。 Tesseractを実行する前に、OCRしたい画像の領域を決定する必要があります。フィルタリングを試す必要がありますが、OpenCVで実行する大まかな手順は次のとおりです。
その他のヒント:
このQ&Aスレッドは、一貫してiOSでのOCRのトピックの上位の検索ヒットの1つであるように見えますが、かなり古くなっているので、私が見つけたときに役立つ可能性があるいくつかの追加リソースを投稿したいと思いましたこの投稿を書いた時間:
ビジョンフレームワーク
https://developer.Apple.com/documentation/vision
iOS 11以降、含まれているCoreMLベースのVisionフレームワークを、長方形やテキストの検出などに使用できるようになりました。 OSにこれらの機能が含まれているOpenCVを使用する必要がなくなったことがわかりました。ただし、テキストdetectionはテキストrecognitionまたはOCRを使用すると、画像の検出された部分を実際のテキストに変換するために、Tesseract(またはおそらく独自のCoreMLモデル)などの別のライブラリが必要になります。
SwiftOCR
https://github.com/garnele007/SwiftOCR
英数字コードの認識にのみ関心がある場合、このOCRライブラリは、Tesseractよりも大幅に速度、メモリ消費量、および精度が向上していると主張しています(私自身は試していません)。
MLキット
https://firebase.google.com/products/ml-kit/
Googleは、Firebase開発者ツールスイートの一部としてML Kitをリリースしました。この投稿の執筆時点でベータ版です。 AppleのCoreMLと同様に、独自のトレーニング済みモデルを使用できる機械学習フレームワークですが、Vision Frameworkなどの一般的な画像処理タスク用の事前トレーニング済みモデルもあります。 とは異なりVision Framework、これまたデバイス上のテキストのモデルが含まれますラテン文字の認識。現在、このライブラリの使用は、デバイス上の機能ではfreeであり、Googleのクラウド/ SAAS APIオファリングの使用には料金がかかります。認識の速度と正確さがかなり良いように思えるので、私はこれを私のプロジェクトで使用することを選択しました。また、同じ機能を備えたAndroidアプリを作成するので、単一のクロスプラットフォームを持っていますソリューションは私にとって理想的です。
ABBYYリアルタイム認識SDK
https://rtrsdk.com/
この商用SDK for iOSおよびAndroidは、評価および限定的な商用利用のために無料でダウンロードできます(この投稿の執筆時点では最大5000ユニット)。さらに商用利用するには、拡張ライセンス不透明な価格設定のため、私はこの製品を評価しませんでした。
Githubに似たプロジェクトがあります: https://github.com/Devxhkl/RealtimeOCR
「リアルタイム」は単なる画像のセットです。デバイスの動き(またはカメラの位置の変化)を大まかに表すのに十分なだけ、それらすべての処理について考える必要さえありません。 iOS SDKには、必要なことを実行するために組み込まれているものはありませんが、サードパーティのOCRライブラリ(Tesseractなど)を使用して、カメラから取得した画像を処理できます。