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)

page_footer_responsive




-iOS
-

執筆者:


comment

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

CAPTCHA


関連記事

swift

iOSで画像の任意の場所をぼかし処理する方法

1 はじめに1.1 前提条件2 準備3 実装3.1 ぼかし処理のイメージ画像3.2 サンプルコード4 さいごに はじめに iOSで写真の任意の場所にぼかし処理をしたいケースがありましたので、 iOSで ...

【Swift】URLスキームのアプリ間連携について

1 はじめに2 アプリ間連携とは2.1 URLスキーム2.2 App Groups3 URLスキームの実装方法について3.1 URLスキームの設定3.2 カスタムURLスキームの設定4 URLスキーム ...

[SwiftUI]SwiftUIで動的にViewの更新をする方法

1 はじめに2 SwfitUIのViewについて3 値の更新について3.1 Stateの特徴3.2 ObservedObjectの特徴3.3 EnvironmentObjectの特徴4 さいごに5 お ...

swift

SwiftでLTMorphingLabelを使ってみた

1 はじめに2 LTMorphingLabelとは3 準備4 実装 はじめに 今回はLTMorphingLabelというライブラリが面白そうなので使ってみました。 LTMorphingLabelとは ...

swift

月と日を選択するpickerを作る

1 はじめに1.1 前提条件2 サンプル2.1 ピッカーのイメージ2.2 ピッカーのxibファイル2.3 実装したカスタムクラス2.4 呼び出し元のコード3 簡単な解説3.1 MonthAndDayP ...

フォロー

blog-page_side_responsive

2020年1月
 1234
567891011
12131415161718
19202122232425
262728293031  

アプリ情報

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