SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

特集記事(AD)

スマホ×OCRで新しいモバイルアプリを実現しよう
~ 活字認識の基礎と精度向上テクニック

スムーズなデータ管理を実現するOCRの概要と、上手に利用するための10のコツ

  • このエントリーをはてなブックマークに追加

 近年、カメラを標準装備したスマートデバイスの普及に伴い、バーコードリーダーやOCRといった光学認識技術の活用シーンが身近に広がってきています。本稿では、日本語OCRの製品開発で20年以上の歴史を持つパナソニック ソリューションテクノロジーの取材をもとに、OCR関連技術、特にスマートフォン周りの最新動向を紹介します。

  • このエントリーをはてなブックマークに追加

対象読者

  • 「OCR」という言葉を聞いたことはあるが、詳細や具体的な用途をよく理解していない人
  • Android/iOSアプリケーションの開発者

手入力によるデータ入力を代行する「OCR」

 不況下の昨今、クライアントへの提案に効率化やコスト削減といったキーワードは外せません。手入力によるデータ入力のコストを削減する「OCR」の技術は、業務システム提案の目玉要素の一つとして、これまで多くの引き合いがありました。

 またOCRは画像データを入力として扱う性質上、据え置きが前提のスキャナが必要となり、適用範囲が限定的でした。しかし、最近はカメラを備えたスマートデバイスの普及によって、既成の枠にとらわれない使われ方をするようになってきました。

 アイデア次第で新しい価値を提案する余地が残されている「OCR」。OCRとはどういったもので、何を提供可能にするのでしょうか。新規ビジネスを開拓をする手掛かりとして、OCRの基本をおさらいしてみます。

「OCR」の概要とメリット

 「OCR」とは、Optical Character Recognition(光学式文字読取)の略で、活字や手書き文字などを画像データとして取り込み、編集可能なテキストデータ(文字コード)に変換するソフトウェアのことです。

 OCRには、次のような特長があります。

  • コンパクト化

    紙書類や画像ファイルをテキスト化し、物理的スペースやハードディスク容量を節約できる

  • 検索性

    テキストデータに変換されるため、必要な情報を検索しすばやくアクセスできる

  • 再利用性

    表をCSV形式のデータとして取り込むなどして、データベースへの手入力の手間を省略できる

 大まかに次のような仕組みで実現されています。

OCR処理の概要
OCR処理の概要

 類似の技術にチェックマーク式の答案用紙や投票券で使われる「OMR」(Optical Mark Recognition)があります。

OCRの活用シーン

 それでは実際に、「OCR」や「OMR」の技術がどのようにアプリケーションで活用されているかを見てみましょう。

業務システムのデータ管理を手助け

 OCRやOMRは、本質的には「紙に書かれた情報を、アプリケーションで利用可能な電子データに変換する」手助けをする技術といえます。そのため、大量の注文書の入力処理や、アンケート結果の集計、答案用紙の採点などに使われてきました。バーコードやQRコードで識別番号を振っておき、物品受領書の付け合わせ作業を簡略化する目的などにも使われています。

 業務改善の一環として現在はペーパーレスの方向に進みつつはあるものの、まだ過渡期であり、「社内システムにアクセスできない派遣社員の勤怠表を紙ベースで管理し、後からシステムに取り込むケース」など、引き続き紙と共存しなければならない環境も少なくありません。

 OCR、OMRは、主にこのような基幹・業務システムを中心に活用されてきました。

モバイル端末の普及により、業務向けからコンシュマー向けへ

 最近は、スマートフォンやタブレットの普及により、モバイル端末に内蔵しているカメラを使って活字認識を行うアプリケーションが増えてきています。

 例えば、「インターネットからの各種申込みにおいて、スマートフォンのカメラで運転免許証を撮影し、OCRを使って写真から入力項目を自動的に拾い出して、いくらか修正するだけで申込が行える」といった事例が出てきています。また、海外の旅行者向けのアプリとして「レストランのメニューなどを撮影し、OCRでテキストデータにしたものを英語や中国語に翻訳して表示する」といったアイデアもあるようです。

 このようにOCRの技術を利用できる端末が個人レベルで普及して身近になることで、業務向けだけではなく、コンシュマー向けにも便利なアプリケーションを提供できる可能性が広がりつつあります。

iOS/Androidの双方をサポートする日本語活字認識エンジン

 ここで、前述した「レストランのメニューを撮影し、OCRでテキストデータにしたものを英語や中国語に翻訳する」海外の旅行者向けアプリケーションの実装を考えてみましょう。

 ここでは、パナソニック ソリューションテクノロジーの「活字認識ライブラリー for iOS」「活字認識ライブラリー for Android」を使って、スマートフォンアプリにOCR機能を実装する様子を紹介します。

カメラで撮影しテキストデータを抽出するリファレンス実装

 「活字認識ライブラリー for iOS」の体験版に収録されているサンプルプロジェクトを使って、作成できるアプリケーションのイメージをお見せします。なお、Android版にも同様のサンプルプロジェクトが収録されています。

 1. sampleフォルダの「iOCRAppSample.zip」を適当なディレクトリに解凍します。解凍すると次のようなソースファイルが格納されているので、そのままのファイル構成で利用します。

サンプルプロジェクトのファイル構成
iOCRAppSample        
    build
        MCR_iPhone.build

    Classes  ……ソースファイルフォルダー
        ocr
            include  ……ヘッダーフォルダー
                idrcdef.h  ……関数宣言ヘッダーファイル
                panaidr.h  ……各種定義がされているヘッダーファイル
                bitmap.h   ……ビットマップ定義ヘッダーファイル
            bin  ……ライブラリーフォルダー
                libStatsiOCR.a  ……ライブラリーファイル
                jocr1.dic       ……辞書ファイル
            MCR_iOCRRecogEngine.h
            MCR_iOCRRecogengine.mm
        data     ……ソースファイルフォルダー
        help     ……ソースファイルフォルダー
        main     ……ソースファイルフォルダー
        preview  ……ソースファイルフォルダー
        result   ……ソースファイルフォルダー
        setting  ……ソースファイルフォルダー
        MCR_iPhoneAppDelegate.h
        MCR_iPhoneAppDelegate.m

    iOCRApp.png
    main.m
    MainWindow.xib
    MCR_iPhone_Prefix.pch
    MCR_iPhone-info.plist
    MCR_iPHone.xcodeproj  ……プロジェクトファイル

 2. 別途入手したライセンスファイル「LicenseInfo.polf」を辞書ファイルと同じiOCRAppSample/Classes/ocr/binディレクトリにコピーします。

 3. 「MCR_iPHone.xcodeproj」をダブルクリックしてXcodeでプロジェクトを開き、ビルドするとアプリケーションが起動します。

エミュレーターでの実行画面
エミュレーターでの実行画面

 4. プロビジョニングの設定などを適宜行って実機に転送すると、実際にカメラ撮影による活字認識を試すことができます。例えば、次のようなフルコースのメニューをOCRで読み込んでみます。

撮影対象のメニュー
撮影対象のメニュー

 5. iPhoneに転送したiOCRAppSampleアプリを起動し、メイン画面(下図左)の「カメラ」をクリックするとカメラが起動するので、対象を撮影します。Move and Scale画面(下図右)で対象範囲を指定して「Use」ボタンをクリックします。

メイン画面(左)、Move and Scale画面(右)
メイン画面(左)、Move and Scale画面(右)

 6. OCR機能で活字解析が行われ、認識結果がテキストデータとして表示されます(下図)。

認識結果画面
認識結果画面

 あとはテキスト翻訳の機能や、認識精度を上げるような工夫(後述)を適宜行えば、目的のアプリケーションが作成できることでしょう。

 このように「活字認識ライブラリー」を使うと、高い精度を持つOCR機能をスマートフォンアプリに簡単に実装できます。体験版も提供されていますので、興味を持った方は後述の入手方法に従って、ぜひ一度お試しください。

OCRの認識精度を高める『10のポイント』

 OCRの認識精度は、アプリケーションの満足度に大きく関わる部分です。 

 そこで、20年以上OCR製品の開発に携わっているパナソニック ソリューションテクノロジーの技術者が明かす、OCRで認識精度を上げる10のポイントと、認識速度を上げる2つのポイントを紹介します。OCRによる活字認識処理を実装する際は、ぜひ参考にしてください。

認識精度を上げるための10のポイント

  • 文字色と背景色のコントラストがはっきりしているものは精度が高い
  • 文字のポイント数は6~60ポイント
  • 解像度は300dpiまたは400dpi
  • 画像が傾いている場合は、傾き補正機能を利用する
  • 画像が歪んでいる場合は、台形補正機能を利用する
  • カメラで撮影した画像を認識する場合は、接写モードを利用する
  • カメラで撮影した画像を認識する場合は、影の写り込みがないように撮影する
  • カメラで撮影した画像を認識する場合は、画素数が300万画素以上のカメラを利用する
  • 画像にゴミがある場合は、ノイズ除去機能を利用する
  • 数字のみ認識したい場合などは、文字種を限定して認識させる

認識速度を上げるポイント

  • 認識する用紙サイズを小さくする
  • 認識する文字量を少なめに調整する

高精度OCRエンジン「カラーOCRライブラリー」製品群の特長

 今回利用したパナソニック ソリューションテクノロジーの日本語活字認識エンジンは、20年以上に渡る研究成果に基づき、独自の「文字特性解析技術」や「パターンマッチング」といった複数の文字認識ロジックを搭載することで、高精度な文字認識を実現した製品です。

 一番の特長は、日本語の活字認識において難易度が高い「ひらがな・カタカナ・漢字・数字・英語の混在文書」「縦書き」にも対応している点です。解像度の低い画像の認識精度にも優れており、画質が低くなりがちなスマートフォンのカメラでも、活字を認識することが可能です。また、台形補正にも対応しているため、カメラで撮影した歪んだ画像の補正も簡単に行えます。

 OCRソフトウェア用開発キット「カラーOCRライブラリー」製品群としては、既にPC向けに活字認識、帳票認識(活字+手書き文字+バーコード+チェックマーク)、免許証認識、名刺認識、QRコード認識の5種類が提供されており、今回紹介した「活字認識ライブラリー for iOS」「活字認識ライブラリー for Android」は活字認識エンジンの部分をスマートフォンに対応させた製品となっています(2011年12月リリース)。

開発キット以外の製品

 パナソニック ソリューションテクノロジーでは、開発キット以外にも、「読取革命シリーズ」を始めとするパッケージ製品、OEM製品、プリンターとのバンドル製品と、さまざまなOCR製品を提供している。

カラーOCR

 製品群の名称「カラーOCRライブラリー」についている「カラー」は、以前、白黒画像しか認識できなかったOCRで、カラーでも認識できるようにした際の名残り。カラーに対応したのは、パナソニックが初だと言われている。

製品のライセンス体系

 開発キットの価格は、「活字認識ライブラリー for iOS」「活字認識ライブラリー for Android」が各55万0,000円(税抜)で、下記のスタートアップサポートが付属します。

 また、成果物の配布数に応じて別途ランタイムライセンスが必要です。購入本数に応じて単価テーブルが変わるため、詳細については製品ページの「お問い合わせ」よりご相談ください。

2つの保守サービス
  スタートアップサポート プレミアムサポート
サポート内容 メールによるQ&Aサービス、マイナーバージョンアップ時のメディア無償提供サービス メールによるQ&Aサービス、メジャーバージョンアップ時のメディア無償提供サービス
サポート期間 3か月 12か月
希望小売価格 7万5,000円(税抜) 25万0,000円(税抜)

 仕様、動作環境、関数一覧といった詳細情報は「活字認識ライブラリー for iOS」および「活字認識ライブラリー for Android」の製品ページを参照してください。

体験版の入手方法

 製品ページ上には掲載されていませんが、今回紹介したサンプルプロジェクトを含む「活字認識ライブラリー for iOS」「活字認識ライブラリー for Android」の体験版も用意されています。こちらも営業担当経由の対応になりますので、製品ページの「お問い合わせ」よりご相談ください。

 なお、製品の販売は法人向けに限られていますので、個人の方が体験版を入手することはできません。あらかじめご了承ください。

スマートデバイスの普及によるOCR技術の新しい可能性

 前述したとおり、スマートフォンやタブレットといった、個人で所有できるモバイル端末が普及してきました。これまで、業務システムでの利用が主だったOCR技術も、今後はBtoCのスマートフォンや、BtoBのタブレットでの需要が増えてくると考えられます。

 ぜひOCR技術を使って、新しいモバイル端末ならではの活用方法を模索し、新しいアプリケーションの価値を提案していただきたいと思います。

修正履歴

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/6607 2014/06/23 18:24

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング