iOS

【Swift】Tesseract-OCR-iOSを使って文字の読み取り

投稿日:

はじめに

こんにちはsuzukiです。最近案件とは関係ないのですが、swiftでカメラを利用し文字列を認識できないか聞かれることがございました。
MITライセンスでCocoaPodsでインストール可能なTesseract-OCR-iOSを使って試したのですが、想像以上に難航したので記事にしようと思います。

導入準備

Xcode11.3
swift5
TesseractOCRiOS 5.0.1

ライブラリのインポート

CocoaPodsで簡単にライブラリの導入が完了します。Podfileに下記を記述しましょう。

上記を記入し $pod install します。

言語モデルのインポート

私の環境ではこちらのリンク先の.traineddataではエラーが発生してしまいました。色々な記事を確認しているとどうも学習データの文字の解析に使う文字情報のバージョンによってエラーが発生するようです。
とりあえず動く学習データということでチュートリアルのeng.traineddataとfra.traineddataをもとに作業しました。

公式の導入方法ではダウンロードした内容をtessdataフォルダの配下に配置しフォルダごとリファレンスフォルダーとしてアプリ内に配置しております。

カメラを利用する準備

info.Plistに下記の項目を追加しましょう。一部必須ではございません。

レイアウト作成

ざっくりとしたレイアウトです。
・UIImageView:カメラで取得した画像を表示する
・UITextView:分析結果を表示する
・UIButton:UIImagePickerを表示
・UIButton:撮影した画像を分析を行う

カメラ撮影

続いてカメラ周りの処理をViewControllerに記述します。下記のデリゲートを忘れず記述してください。
・UIImagePickerControllerDelegate
・UINavigationControllerDelegate

データ解析

最後に解析ボタンを押した際の動作を作成します。

UIImageのエクステンション

チュートリアルを参考にUIImageのExtensionを作成します。

ボタンタップ時の動作

先ほどのエクステンションを利用しUIImageを加工後解析を行います

さいごに

認証の内容は期待した精度ではなかったです。UIImageの加工をしない場合はほぼ0%でしたが、UIImageの加工を追加することで50%ぐらいになりました。日本語+英語の文字認識をするため、今度日本語の学習データを使う方法があるか調査していきます。

おすすめ書籍

[改訂新版]Swift実践入門 ── 直感的な文法と安全性を兼ね備えた言語 WEB+DB PRESS plus 詳解 Swift 第4版 [改訂新版]Swiftポケットリファレンス (POCKET REFERENCE)

blog-page_footer_336




blog-page_footer_336




-iOS
-

執筆者:

免責事項

このブログは、記事上部に記載のある投稿日時点の一般的な情報を提供するものであり、投資等の勧誘・法的・税務上の助言を提供するものではありません。仮想通貨の投資・損益計算は複雑であり、個々の取引状況や法律の変更によって異なる可能性があります。ブログに記載された情報は参考程度のものであり、特定の状況に基づいた行動の決定には専門家の助言を求めることをお勧めします。当ブログの情報に基づいた行動に関連して生じた損失やリスクについて、筆者は責任を負いかねます。最新の法律や税務情報を確認し、必要に応じて専門家に相談することをお勧めします。


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


関連記事

swift

Swift3でRealmを使ってみる

1 はじめに1.1 前提条件2 事前準備2.1 Realmのインストール・設定2.1.1 Carthageファイルの生成2.1.2 CarhageにてRealmをインストール2.1.3 Realmをイ ...

【Swift】WebViewのCookieの監視を行う

1 はじめに2 WKWebViewのCookieの監視2.1 Cookieの更新を取得する2.2 differenceを利用して必要なCookieの更新を取得する3 おまけ3.1 difference ...

【Swift】スクリーンショットの検知

1 はじめに2 スクショを検知する方法3 使い方4 さいごに5 おすすめ書籍 はじめに こんにちは、suzukiです。今回はユーザがスクリーンショットを取得した場合を検知にする方法についてです。 使わ ...

swift

Swiftで絵文字を判定する方法

1 はじめに2 実装2.1 絵文字の判定2.2 UITextFieldで絵文字の排除3 さいごに はじめに こんにちは、nukkyです。 今回はアプリでの文字入力の際に 入力された文字が絵文字かどうか ...

swift

[Swift]PDFKitでPDFの表示

1 はじめに1.1 前提条件2 PDKitの概要3 実装3.1 PDFの表示4 さいごに はじめに こんにちは、nukkyです。 以前、PDFKitを使わないでPDFを表示する方法を書きましたが、今回 ...

フォロー

blog-page_side_responsive

2020年1月
 1234
567891011
12131415161718
19202122232425
262728293031  

アプリ情報

私たちは無料アプリもリリースしています、ぜひご覧ください。 下記のアイコンから無料でダウンロードできます。