(57)【要約】  電子デバイスおよび方法では、実世界のシーンの複数の画像を複数のズームレベルでキャプチャし、実世界のシーンは1つまたは複数のサイズのテキストを含む。次いで、電子デバイスおよび方法では、複数の画像の各々から1つまたは複数のテキスト領域を抽出し、その後、複数の画像のうちの1つまたは複数から抽出された第1のテキスト領域の1つまたは複数のバージョンにおけるOCRに関連する属性を分析する。属性が第1のテキスト領域のあるバージョンにおいて光学文字認識(OCR)の限界を超えていない値を有するとき、第1のテキスト領域のこのバージョンがOCRへの入力として与えられる。
2015537325.tif 000002
【特許請求の範囲】
【請求項１】
同一のテキストの複数の画像を使用することによってテキスト認識を向上させるための方法であって、
実世界のシーンの複数の画像を複数のズームレベルでキャプチャするステップであって、前記実世界のシーンが1つまたは複数のサイズのテキストを含むステップと、
前記複数の画像の各々から1つまたは複数のテキスト領域を抽出するステップと、
前記複数の画像のうちの1つまたは複数から抽出された第1のテキスト領域の1つまたは複数のバージョンにおけるOCRに関連する属性を分析するステップと、
前記属性が前記第1のテキスト領域のあるバージョンにおいて光学文字認識(OCR)の限界を超えていない値を有するとき、前記第1のテキスト領域の前記バージョンをOCRへの入力として与えるステップとを含む方法。
【請求項２】
前記属性は、前記1つまたは複数のテキスト領域における各領域の高さを含む、請求項1に記載の方法。
【請求項３】
前記抽出ステップは、前記1つまたは複数のテキスト領域に共通の2値の画素のラインが存在するかどうかを検査するステップを含む、請求項1に記載の方法。
【請求項４】
前記抽出ステップは、前記1つまたは複数のテキスト領域内の文字のストロークの幅の分散を検査するステップを含む、請求項1に記載の方法。
【請求項５】
前記第1のテキスト領域の極値x座標がw/zoom_levelよりも大きいかどうかを検査するステップであって、wが、前記第1のテキスト領域の幅であり、zoom_levelが、前記第1のテキスト領域を含む画像がカメラによってキャプチャされたズームのレベルであるステップをさらに含む、請求項1に記載の方法。
【請求項６】
前記第1のテキスト領域の極値y座標がh/zoom_levelよりも大きいかどうかを検査するステップであって、hが、前記第1のテキスト領域の高さであり、zoom_levelが、前記第1のテキスト領域を含む画像がカメラによってキャプチャされたズームのレベルであるステップをさらに含む、請求項1に記載の方法。
【請求項７】
前記複数の画像は、シーケンスとして連続的に次々とキャプチャされる、請求項1に記載の方法。
【請求項８】
前記複数の画像は、前記抽出ステップの前にキャプチャされる、請求項7に記載の方法。
【請求項９】
前記複数の画像は、単一のユーザ入力に応答して自動的にキャプチャされる、請求項7に記載の方法。
【請求項１０】
前記第1のテキスト領域の拡大バージョンを含む画像においてキャプチャされない前記実世界のシーンにおける特徴が、前記第1のテキスト領域のより少ないバージョンを含む別の画像においてキャプチャされる、請求項1に記載の方法。
【請求項１１】
前記属性が前記第1のテキスト領域のあるバージョンにおいて光学文字認識(OCR)の限界を超えた値を有するとき、前記1つまたは複数の画像から抽出された前記第1のテキスト領域の追加のバージョンを自動的に分析するステップをさらに含む、請求項1に記載の方法。
【請求項１２】
前記複数の画像のうちの1つまたは複数から抽出された第2のテキスト領域の1つまたは複数のバージョンにおけるOCRに関連する属性を分析するステップと、
前記属性が前記第2のテキスト領域のあるバージョンにおいて光学文字認識(OCR)の限界を超えていない値を有するとき、前記第2のテキスト領域の前記バージョンをOCRへの入力として与えるステップとをさらに含む、請求項1に記載の方法。
【請求項１３】
前記第1および第2の領域において認識されたテキストを出力するステップをさらに含む、請求項12に記載の方法。
【請求項１４】
実世界のシーンの画像におけるスキューを補正するために少なくとも1つのプロセッサによって実行すべき複数の命令を含む少なくとも1つの非一時的コンピュータ可読記憶媒体であって、前記複数の命令が、
実世界のシーンの複数の画像を複数のズームレベルでキャプチャするための第1の命令であって、前記実世界のシーンが1つまたは複数のサイズのテキストを含む第1の命令と、
前記複数の画像の各々から1つまたは複数のテキスト領域を抽出するための第2の命令と、
前記複数の画像のうちの1つまたは複数から抽出された第1のテキスト領域の1つまたは複数のバージョンにおけるOCRに関連する属性を分析するための第3の命令と、
前記属性が、前記第1のテキスト領域のあるバージョンにおいて光学文字認識(OCR)の限界を超えていない値を有するとき、前記第1のテキスト領域の前記バージョンをOCRへの入力として与えるための第4の命令とを含む少なくとも1つの非一時的コンピュータ可読記憶媒体。
【請求項１５】
前記属性は、前記1つまたは複数のテキスト領域における各領域の高さを含む、請求項14に記載の少なくとも1つの非一時的コンピュータ可読記憶媒体。
【請求項１６】
前記第2の命令は、前記1つまたは複数のテキスト領域に共通の2値の画素のラインが存在するかどうかを検査するための命令を含む、請求項14に記載の少なくとも1つの非一時的コンピュータ可読記憶媒体。
【請求項１７】
前記第2の命令は、前記1つまたは複数のテキスト領域内の文字のストロークの幅の分散を検査するための命令を含む、請求項14に記載の少なくとも1つの非一時的コンピュータ可読記憶媒体。
【請求項１８】
前記第1のテキスト領域の極値x座標がw/zoom_levelよりも大きいかどうかを検査するための第5の命令であって、wが、前記第1のテキスト領域の幅であり、zoom_levelが、前記第1のテキスト領域を含む画像がカメラによってキャプチャされたズームのレベルである第5の命令をさらに含む、請求項14に記載の少なくとも1つの非一時的コンピュータ可読記憶媒体。
【請求項１９】
前記第1のテキスト領域の極値y座標がh/zoom_levelよりも大きいかどうかを検査する第5の命令であって、hが、前記第1のテキスト領域の高さであり、zoom_levelが、前記第1のテキスト領域を含む画像がカメラによってキャプチャされたズームのレベルである第5の命令をさらに含む、請求項14に記載の少なくとも1つの非一時的コンピュータ可読記憶媒体。
【請求項２０】
前記複数の画像は、シーケンスとして連続的に次々とキャプチャされる、請求項14に記載の少なくとも1つの非一時的コンピュータ可読記憶媒体。
【請求項２１】
前記第1のテキスト領域の拡大バージョンを含む画像においてキャプチャされない前記実世界のシーンにおける特徴が、前記第1のテキスト領域のより少ないバージョンを含む別の画像においてキャプチャされる、請求項14に記載の少なくとも1つの非一時的コンピュータ可読記憶媒体。
【請求項２２】
実世界画像におけるテキストを復号するためのモバイルデバイスであって、
カメラと、
前記カメラから少なくとも画像を受け取るために前記カメラに動作可能に接続されたメモリと、
前記メモリに記憶された複数の命令を実行するために前記メモリに動作可能に接続された少なくとも1つのプロセッサとを備え、
前記複数の命令が、前記少なくとも1つのプロセッサに、
実世界のシーンの複数の画像を複数のズームレベルでキャプチャすることであって、前記実世界のシーンが1つまたは複数のサイズのテキストを含むことと、
前記複数の画像の各々から1つまたは複数のテキスト領域を抽出することと、
前記複数の画像のうちの1つまたは複数から抽出された第1のテキスト領域の1つまたは複数のバージョンにおけるOCRに関連する属性を分析することと、
前記属性が前記第1のテキスト領域のあるバージョンにおいて光学文字認識(OCR)の限界を超えていない値を有するとき、前記第1のテキスト領域の前記バージョンをOCRへの入力として与えることとを行わせるモバイルデバイス。
【請求項２３】
前記属性は、前記1つまたは複数のテキスト領域における各領域の高さを含む、請求項22に記載のモバイルデバイス。
【請求項２４】
前記第2の命令は、前記1つまたは複数のテキスト領域に共通の2値の画素のラインが存在するかどうかを検査するための命令を含む、請求項22に記載のモバイルデバイス。
【請求項２５】
前記少なくとも1つのプロセッサが、
前記1つまたは複数のテキスト領域内の文字のストロークの幅の分散を検査することを行うようにさらに構成される、請求項22に記載のモバイルデバイス。
【請求項２６】
前記複数の画像は、シーケンスとして連続的に次々とキャプチャされる、請求項22に記載のモバイルデバイス。
【請求項２７】
前記第1のテキスト領域の拡大バージョンを含む画像においてキャプチャされない前記実世界のシーンにおける特徴が、前記第1のテキスト領域のより少ないバージョンを含む別の画像においてキャプチャされる、請求項22に記載のモバイルデバイス。
【請求項２８】
実世界のシーンの複数の画像を複数のズームレベルでキャプチャするように構成されたカメラであって、前記実世界のシーンが1つまたは複数のサイズのテキストを含むカメラと、
前記複数の画像を格納するために前記カメラに結合されたメモリと、
前記複数の画像の各々から1つまたは複数のテキスト領域を抽出するために前記メモリに結合された手段と、
前記複数の画像のうちの1つまたは複数から抽出された第1のテキスト領域の1つまたは複数のバージョンにおけるOCRに関連する属性を分析するための手段と、
前記属性が前記第1のテキスト領域のあるバージョンにおいて光学文字認識(OCR)の限界を超えていない値を有することに応答して、前記第1のテキスト領域の前記バージョンをOCRへの入力として与えるための手段とを備えるモバイルデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、2013年3月15日に出願され、「Text Image Quality Based Feedback For Improving OCR」と題する米国特許出願第13/843637号の優先権を主張し、さらに、米国特許出願第13/843637号は、2012年12月13日にインド特許庁に出願され、「Text Image Quality Based Feedback For Improving OCR」と題するインド仮特許出願第5200/CHE/2012号の請求権を主張し、米国特許出願第13/843637号とインド仮特許出願第5200/CHE/2012号はどちらも参照により全体が本明細書に組み込まれている。
【０００２】
本出願は、自然画像またはビデオフレームにおいてテキストの文字を特定するためのデバイスおよび方法に関する。
【背景技術】
【０００３】
(たとえば、コピー機のフラットベッドスキャナによって)光学的に走査される紙のテキスト領域の特定は、組込みデジタルカメラを有するハンドヘルドデバイス(スマートフォンなど)によって画像またはビデオフレームにリアルタイムにキャプチャすることのできる実世界のシーンにおけるテキストを含むことができる領域を検出することよりも(たとえば、縦向きであり、サイズが大きく、かつ速度が遅いので)ずっと容易である。具体的には、従来技術の光学文字認識(OCR)方法は、文書処理の分野で始まったものであり、この場合、文書画像は、文書内の光学的に走査されたページの一連のテキスト行(たとえば、30テキスト行)を含む。文書処理技術は、光学スキャナによって作成された走査された文書には首尾よく使用されるが、たとえば、交通標識、店先、車両のナンバープレート上の、様々なフォントのテキストを含む自然画像に対して使用されたときには、照明、色、チルト、ピント、フォントなどの変動に起因して実用的でなくなるほど多くのフォールスポジティブおよび/またはフォールスネガティブが発生する。
【０００４】
図1は、インドの実世界シーン100における広告掲示板を示す。ユーザ110(図1参照)は、カメラ付きモバイルデバイス(携帯電話など)108を使用してシーン100の画像107(「自然画像」または「実世界画像」とも呼ばれる)をキャプチャすることができる。カメラによってキャプチャされた画像107は、モバイルデバイス108のスクリーン106上に表示されてよい。そのような画像107(図1)は、従来技術の画像処理技術を使用して直接処理された場合、領域103(図1)内の1つまたは複数の語を認識できなくなることがある。しかしながら、従来技術の方法を使用すると、上記で指摘した1つまたは複数の理由、たとえば、照明、色、チルト、ピント、フォントの変動に起因して、画質が不十分であるときに問題が生じることがある。
【０００５】
したがって、後述のように、自然画像またはビデオフレームにおけるテキストの領域の各ブロック内の文字を特定する前に画質を向上させる必要がある。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】http://omappedia.org/wiki/Camera-ISP_Driver
【非特許文献２】A. Levin、R. Fergus、F. Durand、およびW.T. Freeman、「Deconvolution using natural image priors」、ACM SIGGRAPH、2007
【非特許文献３】J. Matas、O. Chum、M. Urban、およびT. Pajdla、「Robust Wide Baseline Stereo from Maximally Stable Extremal Regions」、BMVC 2002、10頁
【非特許文献４】Hyunkyung ShinおよびJoong Sang Shin、「Application of Floyd-Warshall Labelling Technique: Identification of Connected Pixel Components In Binary Image」、Kangweon-Kyungki Math. Jour. 14 (2006)、No. 1, 47〜55頁
【非特許文献５】Jung-Me Park、Carl G. Looney、およびHui-Chuan Chen、「Fast Connected Component Labelling Algorithm Using A Divide and Conquer Technique」、Matric (2000)、第4巻第1号、発行者: Elsevier Ltd、4〜7頁
【発明の概要】
【課題を解決するための手段】
【０００７】
説明する実施形態のいくつかの態様では、電子デバイスおよび方法が、1つまたは複数のサイズを有する同一のテキストの複数の画像を使用してテキスト認識を向上させる。具体的には、電子デバイスおよび方法は、カメラによって複数のズームレベルでキャプチャされた複数の画像またはビデオフレーム(「画像」とも呼ぶ)内の領域を取得して、画像内の領域によって試験項目が満たされるかどうかを判定する。電子デバイスおよび方法によって使用される試験は、領域内にテキストが存在することを示し、「テキスト存在」試験とも呼ばれる。そのようなテキスト存在試験は、たとえば、ヘッダ行(デーヴァナーガリーでは「shiro-rekha」とも呼ばれる)を表す共通バイナリ値の画素のラインが存在すること、および/または(領域内に文字が存在することを示す)ストロークもしくはグリフの幅が分散していることを検出してよい。「テキスト存在」試験は、領域がテキストを含み、かつ/または非テキストを含むかどうかが電子デバイスおよび方法にはわからない段階で適用される。いくつかの実施形態における「テキスト存在」試験が各領域に個別に適用され、したがって、この試験が領域レベル試験である(かつ画像レベル試験ではない)ことに留意されたい。
【０００８】
したがって、1つまたは複数のサイズのテキストを含むシーンの複数の画像を取得した後、複数の画像の各々から1つまたは複数の領域が自動的に抽出され、その後、上述の種類の試験が適用され、テキストである可能性が高い領域(「潜在的なテキスト領域」または単に「テキスト領域」とも呼ぶ)が特定される。次いで、電子デバイスおよび方法では、(上述の試験の前または後に)複数の画像のうちの1つまたは複数から抽出された第1のテキスト領域の1つまたは複数のバージョンにおけるOCRに関連する属性を分析する。そのような属性の一例は、第1のテキスト領域の高さである。1つの画像内の第1のテキスト領域が、第1のテキスト領域の属性が光学文字認識(OCR)の限界を超えていることに起因してテキスト認識に受け入れられない属性の値を有する場合(たとえば、第1のテキスト領域の高さが40画素などのOCRに必要な最小画素数よりも小さい場合)、同じシーンの別の画像が同様に分析される。いくつかの実施形態において検査される画像の品質が各領域の個別の品質であり、したがって、この検査が領域レベル検査である(かつ画像レベル検査ではない)ことに留意されたい。したがって、そのような実施形態において行われるフィードバックは領域レベルである(画像レベルではない)。
【０００９】
第1のテキスト領域が受け入れられる属性の値を有する場合、第1のテキスト領域のそのバージョンがさらに処理され、領域を細分する(たとえば、スライスする)ことによって得られる一連のブロック間の各ブロックに対してOCRを実行し、OCRの結果をメモリに記憶することによって領域内のテキストが認識される。その後、OCRの結果を使用して、認識されたテキストまたは認識されたテキストを使用することによって得られた任意の他の情報のいずれか(たとえば、ヒンディー語を英語に翻訳したもの)がユーザに表示される。
【００１０】
様々な態様を例として示し説明する本明細書の説明から、実施形態のいくつかの他の態様が当業者には容易に明らかになるであろうことを理解されたい。図面および以下の詳細な説明は、本質的に例示的なものと見なされるべきであって、限定的なものと見なされるべきではない。
【図面の簡単な説明】
【００１１】
【図１】ユーザが従来技術のカメラ付きモバイルデバイスを使用して実世界における広告掲示板の画像をキャプチャしている状態を示す図である。
【図２】いくつかの説明する実施形態において、テキストである可能性が高い1つまたは複数の領域を画像から抽出し、画質の試験項目が潜在的なテキスト領域によって満たされるかどうかを検査し、テキスト領域をテキスト認識において使用できるように再画像化する必要があるときにフィードバックを生成するために1つまたは複数のプロセッサ404によって実行されるアクトを示す高レベルフローチャートである。
【図３Ａ】図2に示す種類のいくつかの実施形態において1つまたは複数のプロセッサ404によって実行されるアクトを示す中間レベルフローチャートである。
【図３Ｂ】いくつかの実施形態において画像内の領域をテキストを含む領域として検証するために使用されるストローク幅の計算を示す図である。
【図３Ｃ】いくつかの実施形態において画像内の領域をテキストを含む領域として検証するために使用されるストローク幅の計算を示す図である。
【図３Ｄ】図3Aの動作220を実行するテキスト画質フィードバックモジュールを示す図である。
【図３Ｅ】テキスト画像の品質を示す1つまたは複数のパラメータのエクストラクタ、および図4Aに示す種類のフィードバックモジュールのいくつかの実施形態において使用されるアーティファクトクラシファイアを示す高レベルブロック図である。
【図３Ｆ】図4Cに示す種類のエクストラクタによって抽出されるテキスト画質パラメータおよびいくつかの実施形態において生成される対応するフィードバックの例を示す表である。
【図４Ａ】図3Aの動作210を実行するテキスト領域エクストラクタを示す図である。
【図４Ｂ】図3Aの動作230においてテキスト認識を実行するOCRモジュール330を示す図である。
【図５Ａ】図3Dに示す種類のアーティファクトクラシファイアのトレーニングを示す高レベルデータ流れ図である。
【図５Ｂ】テキスト画質パラメータとしてサイズを用いた、図5Aのアーティファクトクラシファイアの使用法を示す高レベルデータ流れ図である。
【図６Ａ】図2に示す種類のいくつかの実施形態において、1つまたは複数のアーティファクトクラシファイアを使用して単一の画像の2つの異なる潜在的なテキスト領域におけるアーティファクトを特定することを示す高レベルデータ流れ図である。
【図６Ｂ】いくつかの例示的な実施形態において図6Aのアーティファクトクラシファイア681によって実行されるアクトを示すフローチャートである。
【図７】テキスト領域1101、1102、1103、および1104が様々な位置においてそれぞれに異なるサイズを有する実世界(従来技術)の広告掲示板1100を示す図である。
【図８Ａ】テキスト認識が同一のテキストの複数の画像を使用することによって改善されたいくつかの実施形態のモバイルデバイスの高レベルブロック図である。
【図８Ｂ】より小さいサイズの潜在的なテキスト領域1102および1103を、複数の画像を使用してテキスト領域1102および1103の位置においてズームインすることによってより高い解像度でキャプチャするのを可能にするためにいくつかの実施形態において実施される自動多解像度キャプチャを示す高レベルフローチャートである。
【図９】上述の実施形態のうちのいくつかにおけるハンドヘルドデバイスの様々なコンポーネントを示す高レベルブロック図である。
【図１０Ａ】カメラから受け取られた画像内の、テキストである可能性が高い各領域を評価し、(潜在的なテキスト領域ごとに)ズームのレベルを判定するためにいくつかの実施形態において1つまたは複数のプロセッサ404によって実行されるアクトを示す中間レベルフローチャートである。
【図１０Ｂ】リストをズームレベルに対して降順にソートし、このリストからのすべてのテキスト領域をカメラ視野内に保持する最大ズームレベル(Z)を特定するためにいくつかの実施形態において1つまたは複数のプロセッサ404によって実行されるアクトを示す中間レベルフローチャートである。
【図１０Ｃ】再画像化すべきテキスト領域を視野内に保持しつつ適切なズームレベルまでズームインするためにいくつかの実施形態において1つまたは複数のプロセッサ404によって実行されるアクトを示す中間レベルフローチャートである。
【図１０Ｄ】カメラによってキャプチャされた画像に対して図10Bの方法において使用される表記「h」および「w」を示す図である。
【図１１Ａ】いくつかの実施形態におけるハンドヘルドデバイス401の画面406上に表示されるメッセージ1510、たとえば(画面406上のカメラによってキャプチャされた画像の暗いバージョン(図示せず)に重ね合わされることがある)「非常に小さい単語が検出されました。ズームインするかまたは接近してください」という文を示す図である。
【図１１Ｂ】図11Aに示すようなメッセージ表示に続く、いくつかの実施形態においてハンドヘルドデバイスのカメラによってキャプチャされた(図1の)画像107のズームインバージョン1517を示す図である。
【図１１Ｃ】いくつかの実施形態において(図11Bの)バージョン1517において単語が認識された後の英語に翻訳された単語の表示を示す図である。
【図１２Ａ】画像1518内のテキスト領域1104R1および1102R1が小さすぎてOCRでは使用できない、(図7の)広告掲示板1100の画像1518を示す図である。
【図１２Ｂ】画像1518内のより大きいサイズの潜在的なテキスト領域1104R2および1102R2を取得するためのカメラの自動ズームインによる、いくつかの実施形態においてキャプチャされた(図7の)広告掲示板1100のズームインバージョン1519を示す図である。
【発明を実施するための形態】
【００１２】
本明細書において説明する種類のいくつかの動作およびアクトは、実世界シーンの画像の矩形部分(またはブロック)を特定し、その後、各矩形部分(またはブロック)をセグメント化してサブブロックのシーケンスを形成し各サブブロック内の文字を特定することのできるモバイルデバイス401(図9)に含まれる1つまたは複数のプロセッサ404によって実施される。したがって、モバイルデバイス401は、実世界におけるシーンの画像またはビデオのフレームを生成するためのカメラ405(図9)を含んでよい。モバイルデバイス401は、実世界シーンに対するモバイルデバイス401の姿勢(位置および向きを含む)を判定するのを助けるために使用することのできる加速度計、ジャイロスコープ、GPSセンサなどのセンサをさらに含んでよい。
【００１３】
当業者には、本明細書で説明する技術を、矩形以外の形状を有する画像の部分を特定し、かつその部分の文字を特定するように適応させることができることが諒解されよう。本明細書で説明する様々な例ではデーヴァナーガリーを使用して特定の概念を例示するが、当業者には、これらの概念をデーヴァナーガリー以外の言語またはスクリプトに適用してよいことが諒解されよう。たとえば、本明細書で説明する実施形態は、韓国語、中国語、日本語、および/またはその他の言語の文字を特定するのに使用されてよい。さらに、以下の説明では、便宜上単一のプロセッサについて説明することがあることに留意されたい。ただし、実施形態に応じて複数のプロセッサを使用できることを理解されたい。
【００１４】
したがって、図2のアクト201に関して、1つまたは複数のプロセッサ404は通常、実世界のシーンの複数の画像を複数のズームレベル(たとえば、所定のレベルであってよい)で(たとえば、カメラ405から、図9参照)取得する。実世界のシーンは、たとえば広告掲示板上に1つまたは複数のサイズのテキストを含む。その後、プロセッサ404は、動作210を実行して複数の画像の各々から1つまたは複数のテキスト領域を抽出する。続いて、動作220において、プロセッサ404は、複数の画像のうちの1つまたは複数から抽出された第1のテキスト領域の1つまたは複数のバージョンにおけるOCRに関連する属性を分析する。属性が第1のテキスト領域のあるバージョンにおいて光学文字認識(OCR)の限界を超えていない値を有するとき、プロセッサ404は第1のテキスト領域のこのバージョンをOCRへの入力として与える。
【００１５】
プロセッサ404は、動作210を実行する際、アクト211において、所定の方法(たとえば、MSER)を適用して、互いに連結されており強度および/または色などの1つまたは複数の特性が周囲の画素と異なる画像内の画素の領域を特定する。上述の種類の領域は、連結成分および/またはmaximally stable extremal regionすなわちMSERとして従来技術において知られている領域と同様または同一であってよい。そのような領域は、アクト211が完了したときにメモリに記憶される。実施形態に応じて、アクト211は複数の領域(1つまたは複数のテキスト領域を含む)のスキュー連結を含んでよく、その後スキュー連結された領域においてshiro-rekha検出が行われる。shiro-rekhaが検出された後、いくつかの実施形態では、クラスタリング規則が適用されてshiro-rekha領域が、軸(たとえば、x軸)上の射影が重なり合う隣接する領域とマージされる。
【００１６】
動作210の間、アクト212において、抽出された領域の1つが(たとえば、メモリから)受け取られ、その後アクト215において、たとえば、領域が、shiro-rekhaを特定するための試験項目を満たす(かつ隣接する領域があればその領域とマージされた)画素のラインを含むかどうかを検査することによって、テキストが存在するかどうかについて領域が試験される。アクト216において、領域は、実施形態に応じて(たとえば、ニューラルネットワークおよび/またはストローク幅に基づく)検証サブシステムを通じて供給されてよい。したがって、そのような実施形態のプロセッサ404は、カメラによってキャプチャされた実世界のシーンの画像のある領域にテキストが存在することを検証するための、ソフトウェア610(図9参照)に含まれる第1の命令を実行するようにプログラムされてよい(判定するための手段を実現する)。
【００１７】
アクト216においてテキストが存在するかどうかについての領域レベル試験(「テキスト存在」試験とも呼ばれる)項目を満たすことが判明した各領域は次いでメモリ501に記憶され、その後、動作220において使用される。具体的には、動作220は、潜在的なテキスト領域が、たとえば、テキストの認識(OCR)に関して指定された精度のレベルに基づいて、所定の画質について別の領域レベル試験項目を満たすかどうかを検査するためのアクト222を含む。したがって、アクト211を実行することによって取得された(画素のリストによって特定される)1つまたは複数のテキスト領域がアクト212において(メモリ501)から受け取られ、(アクト216において)テキスト存在試験項目を満たす(テキストを示す画素の対応するリストによって特定される)各領域が、いくつかの実施形態では動作220において局所的に領域内のテキスト画質が個々に評価される。具体的には、動作220におけるアクト222において、プロセッサ404は、領域の属性(たとえば、領域を表す画素のリスト内のy座標における最大値および最小値によって画定される文字枠の高さ)が40画素などのあらかじめ設定された限界以上であるかどうかを検査する。したがって、プロセッサ404は、ソフトウェア610に含まれる第2の命令によってプログラムされているときは、テキストを含む領域として特定された領域における画質を検査する(検査するための手段を実現する)。
【００１８】
アクト222においてテキスト画質を評価し(かつ検査の結果をメモリ501に記憶し)た後、領域の属性がアクト222において使用されるOCR限界を超えていないことを結果が示すとき、プロセッサ404は、領域の(OCRに受け入れられることがわかっている)画素のリストがOCRへの入力として与えられ、次いでOCRが自動テキスト認識を通常通りに行う動作230を実行する。たとえば、動作230において、プロセッサ404は、OCRを呼び出して(サブブロックのシーケンスにスライスし、その後各サブブロックを使用して、文字を認識するために所定の1組の特徴ベクトルと比較される特徴ベクトルを形成することによって)テキスト領域内の単語を特定する。したがって、動作230において、いくつかの実施形態のプロセッサ404は、ソフトウェア610に含まれる第3の命令を実行して光学文字認識(OCR)への入力として領域を与え、かつ(アクト216において)テキスト存在試験項目がその領域によって満たされることが判明し、(アクト222において)領域の属性が光学文字認識の限界を超えていないことが判明したときに、光学文字認識(OCR)の結果をメモリ501に記憶する。
【００１９】
アクト222において、画質がテキスト認識に受け入れられないことが判明した場合(たとえば、高さがOCRに必要な画素の最小数よりも少ない場合)、アクト223においてプロセッサ404によってフィードバックが自動的に生成される。続いて、プロセッサ404は、アクト223においてフィードバックが生成されたことに続いて(アクト201において)シーンの別の画像を取得してよい。アクト223において生成される前述のフィードバックは、実施形態に応じてユーザへのフィードバックであってもまたはカメラを自動的に制御する(たとえば、図11Aおよび図11Bに示すように画像化されるテキストの方へズームインする)(モバイルデバイス401内の)システムへのフィードバックであってもよい。図11Bにおいて、ユーザは、バージョン1517におけるヒンディー語の
【００２０】
【数１】
2015537325.tif 000003
【００２１】
という単語の高さh2が画像107の領域103におけるこの単語の対応する高さh1よりも大きくなる(たとえば、画素数で測定される)のに十分な程度に広告掲示板に接近している(図1)。画質が受け入れられるとき、テキストの画素を含む領域として特定された領域はOCRを受ける。図11Cに示すようにOCRの出力が使用され、図11Bに示すようなキャプチャされた領域の拡大バージョンにおいて
【００２２】
【数２】
2015537325.tif 000004
【００２３】
および
【００２４】
【数３】
2015537325.tif 000005
【００２５】
というヒンディー語の対応する単語が認識されているときには、情報、たとえば、「Maruti」および「Suzuki」という単語が表示されてよい。
【００２６】
同様に、図12Bにおいて、モバイルデバイス401におけるフィードバックがモバイルデバイス401内のオートズーム回路を操作して、ヒンディー語の
【００２７】
【数４】
2015537325.tif 000006
【００２８】
という単語の高さh4が画像1518内のこの単語の対応する高さh3よりも大きくなる(たとえば、画素数で測定される)のに十分な程度に画像1519(図12A)内で広告掲示板を拡大させる。シーン内のボール1121(図12A)または他の特徴が、
【００２９】
【数５】
2015537325.tif 000007
【００３０】
という単語を含むテキスト領域(「第1のテキスト領域」とも呼ぶ)の拡大バージョンを含む画像1519において画像化されないことに留意されたい。ただし、ボール1121は、
【００３１】
【数６】
2015537325.tif 000008
【００３２】
という単語を含むテキスト領域のより小さいバージョンを含む画像1518では画像化される。画像1518が、モバイルデバイス401によって最初にキャプチャされるより小さいバージョンであり、OCRには小さすぎる高さh3のテキストを有し、それによって、オートズーム回路の動作がトリガされ、次いでズームが増大するにつれて視野が変化し、拡大バージョンが画像1519としてキャプチャされることに留意されたい。そのような動作の間に、視野の変化によってテキストの一部が見えなくなったときに、いくつかの実施形態において、OCRへの入力として受け入れるのに適切な画質を有するテキストの領域を特定する際に使用される拡大バージョンを得るためにパノラマ画像に切り替えることのできる複数の画像をキャプチャするようにモバイルデバイス401内のカメラをパンさせるようにユーザに通知するように、モバイルデバイス401が構成されてよい。
【００３３】
したがって、アクト223において、いくつかの実施形態のプロセッサ604は、ソフトウェア610に含まれる第4の命令を実行してフィードバックを生成する(フィードバックを生成する手段を実現する)。要約すると、いくつかの実施形態のアクト223において、プロセッサ604は、アクト216においてテキスト存在試験項目が領域によって満たされることが判明し、かつアクト222において領域の属性が光学文字認識の限界を超えていることが判明したときに、(たとえば、OCR限界を超えている領域の属性に対して向上した対応する領域を取得するために)カメラ405がテキストを含む新しい画像をキャプチャする必要があることを示すフィードバック信号を生成する。図2に分岐224によって示されているように、(たとえば、それぞれに異なる解像度、被写界深度、視野などの)シーンの複数の画像をキャプチャしてメモリに記憶するいくつかの実施形態では、(上述の)アクト201に直接進むことによってアクト223がスキップされてよい。
【００３４】
したがって、いくつかの実施形態のプロセッサ604は、分岐224を選ぶ際に、ソフトウェア610に含まれる第4の命令を実行して、複数の新しい領域における新しい領域に対してアクト216における判定、アクト222における検査を繰り返し、(アクト216において)テキスト存在試験項目がその領域によって満たされることが判明し、(アクト222において)領域の属性が光学文字認識の限界を超えていることが判明したときにアクト223の内容を実行する。
【００３５】
(たとえば、動作230で)テキスト領域において文字のシーケンスが認識され、認識の結果がメモリ501に記憶された後、プロセッサ404は、アクト240において画像から抽出されたすべての領域が上述のように処理された(たとえば、アクト216ならびに動作220および230)か否かを検査し、処理されていない場合は、アクト212に戻って、テキストの存在が試験される別の領域を受け取り、その後、テキスト品質を評価し、次いでテキスト認識を行ってよい。テキスト認識の後で、結果が通常通りに使用されてよい。具体的には、動作250において、動作230におけるテキスト認識の結果がプロセッサ404によって使用され、認識されたテキストまたは認識されたテキストを使用することによって取得される任意の他の情報が画面407上に表示されてよい。
【００３６】
図2に示す種類のいくつかの実施形態では、アクト212、216ならびに動作220、230、および240がループにおいて反復的に実行されてよい。したがって、ある領域内の画素の座標のリストが、ループの反復において、ループの別の反復において同様に処理される任意の他の領域とは無関係に認識される。当業者にはこの説明を考慮して容易に明らかになるように、そのようなループは展開され、各領域が(たとえば、プロセッサの別個のコアまたは別個のプロセッサにおいて)独立に処理されてよい。
【００３７】
いくつかの実施形態における1つまたは複数のプロセッサ404は、次のように図3Aに示す種類のいくつかのアクトまたはステップを実行するようにプログラムされてよい。具体的には、次のようにアクト211、212、および216を実行することによって動作210(図2)が実施されてよい。アクト211において、画像の一部(たとえば、画像107)が、強度および/または色などの1つまたは複数の特性が周囲の画素とは異なる1つまたは複数の領域(「ブロブ」とも呼ぶ)を画像107から特定する任意の方法を使用してそのようなプロセッサ404によって特定されてよい。上述の種類の領域は、連結成分および/またはmaximally stable extremal regionすなわちMSERとして従来技術において知られている領域と同様または同一であってよい。
【００３８】
各領域は通常、MSERを特定するかまたは連結成分を特定する任意の既知の方法を使用することによって特定された領域にぴったりと適合する文字枠を特定することにより、プロセッサ404によって、図1の領域103などの矩形部分として特定される。ぴったりと適合する文字枠は、プロセッサ404によって、そのような領域の最大座標および最小座標を使用して通常通りに特定されてよい。文字枠は次に、局所的に領域内でスキューのインジケータを算出するためにプロセッサ404によって使用されてよい。(アクト213において)プロセッサ404によって、大域的に画像107全体においてスキューが存在するかどうかを判定するために1つまたは複数のそのようなスキューインジケータが使用され、その後、スキューが(存在する場合に)補正されてよい。
【００３９】
その後、アクト214において、いくつかの実施形態では、テキストが存在するかどうかを判定する1つまたは複数の試験を適用することによって、テキストである可能性が高い1つまたは複数の矩形領域を特定する。たとえば、プロセッサ404は、アクト214において、(デーヴァナーガリー語におけるshiro-rekhaの存在を示し得る)矩形領域の上3分の1内に画素のラインが存在するかどうかを検査してよい。したがって、いくつかの実施形態では、アクト214が、矩形領域のすべての行にわたって、最大数の画素が値1に2値化された行を特定ことによって、画素強度のヒストグラムにおけるピークが上3分の1に存在するかどうかを検査してよい。
【００４０】
続いて、アクト215(図3A)において、プロセッサ404によって、(たとえば、軸(x軸など)上で2つの領域の射影が重なり合い、2つの領域が互いに隣接し間に他の領域が介在していないときに)形状の試験に基づいて2つ以上の領域がクラスタ化されてよい。上述のクラスタ化は、様々な修正子を、その修正子によって修飾される特定の文字に(たとえば、付加することによって)含めるのを可能にする。その後、プロセッサ404は、アクト216(図3A)を実行し、たとえば、ニューラルネットワークを使用し、かつ/またはストローク幅に基づいて、各領域を(マージされているかどうかにかかわらず)テキストまたは非テキストとして分類し、このことは、図4Aに示す種類のテキスト検証ブロック250において実施されてよい。
【００４１】
いくつかの実施形態では、領域329(図3B)がテキストであることを検証するためのアクト216が、図3Cにおいてアクト331〜335によって示すように、(文字内で)ストローク幅を複数回算出し、ストローク幅の分散を検査することによって、テキスト検証ブロック250において実施される。図3Bは、(たとえばMSERを使用することによって特定される)領域329内の一定数の点(たとえば、3つの点)を選択し、所定数の方向(たとえば、4つの方向)の各々における領域329の寸法を算出し、その後算出された(たとえば、4つの方向の間で)最小の寸法をストローク幅として選択することによってストローク幅を求めることを示す。いくつかの実施形態においてストローク幅を求める特定の方法は、次に説明する図3Cの方法によって例示される。
【００４２】
具体的には、いくつかの例示的な実施形態において、プロセッサ404は、アクト331〜333(図3C)を実行して次のようにストローク幅を算出する。アクト331において、モバイルデバイス401は、点321などの、領域329(図3B)内部のN個の点を選択する。次に、アクト332において、モバイルデバイス401は、N個の点の各々においてストロークの幅を算出する。たとえば、点321において、プロセッサ404は、4つの光線321A、321B、321C、および321Dの長さを算出し、次いで最も短い交線321Bの長さを点321でのストロークの幅として使用する。次いで、アクト333において、モバイルデバイス401は、領域329のN個のそのようなストローク幅の平均を算出する。最後に、アクト334において、モバイルデバイス401は、N個のストローク幅の(平均からの)標準偏差および/または分散を算出する。次いで、アクト335において、モバイルデバイス401は、分散が所定のしきい値未満であるかどうかを検査し、所定のしきい値未満である場合、その領域のテキストとしての分類が検証されている。
【００４３】
いくつかの実施形態の動作220(図3A)は、第1の入力がテキスト検証ブロック250(図3B参照)から得られ、第2の入力がアーティファクトを自動的に補正する(モバイルデバイス401内の)システムから得られる2つの入力の一方を選択するセレクタ310を含むテキスト画質フィードバックモジュール300(図3D)によって実施される。最初に、第1の入力が、同じ領域の2つのバージョン、すなわち、グレイスケールバージョンおよび2値化バージョンを受け取るセレクタ310によって選択される。アーティファクトクラシファイア320によってある領域がアーティファクトを有さないことが判明すると、そのテキスト領域の2値化バージョンがOCRモジュール330に供給され、そこでテキスト認識が行われる。しかしながら、アーティファクトクラシファイア320によって(図3Fに示す表の行によって示されるように)テキスト領域が何らかのアーティファクトを有することが判明した場合、ユーザまたはカメラを動作させる(モバイルデバイス401内の)システムへのフィードバックが生成される。アーティファクトクラシファイア320は、OCRによって受け入れられるかまたは受け入れられない領域の1つまたは複数の属性に対するトレーニングを含むニューラルネットワークとして実装されてよい。
【００４４】
いくつかの実施形態では、テキスト画質フィードバックモジュール300(図3D)は、局所的にある領域内の画像の品質を示す1つまたは複数のパラメータを抽出するテキスト画質パラメータエクストラクタ350(図3E)を含む。そのような実施形態のテキスト画質フィードバックモジュール300は、テキスト画質パラメータエクストラクタ350によって生成されたパラメータ値を使用し、さらに図3Fに示す表に例示する種類の適切なフィードバックを生成するアーティファクトクラシファイア320さらに含む。参照により全体が本明細書に組み込まれるhttp://omappedia.org/wiki/Camera-ISP_Driverに記載されているようにオートフォーカス統計および/または自動露出統計が生成されてもよい。さらに、参照により全体が本明細書に組み込まれるA. Levin, R. Fergus, F. Durand、およびW.T. Freeman、「Deconvolution using natural image priors」、ACM SIGGRAPH、2007という論文に記載されているように使用される。
【００４５】
いくつかの例示的な実施形態において、(上述の動作210を実行する)図3Dのテキスト領域エクストラクタ290によって抽出されたテキスト領域は寸法が小さすぎてモバイルデバイス401のテキスト認識サブシステムでは適切に認識されないことが判明する。たとえば、いくつかの実施形態では、モバイルデバイス401は、認識すべきテキスト領域の高さに関して40画素というより低い限界を有し、この限界よりも小さい高さを有する画像領域は性能が不十分になる。したがって、図3Dのアーティファクトクラシファイア320は、(たとえば、高さが40画素未満であることに起因して)広告掲示板1100(図7)上の領域1102および1104を再画像化すべきであると判定してよい。
【００４６】
いくつかのそのような実施形態では、アーティファクトクラシファイア320は、ユーザに対するフィードバックメッセージを生成し、ユーザにテキストに接近するよう要求する。他のそのような実施形態では、アーティファクトクラシファイア320は、カメラを自動的に動作させて広告掲示板1100(図7)にズームインする信号を生成してよい。ズームの量は、テキスト領域の現在の高さを所定数の画素に達するようにスケールアップすることに基づいてそのようなアーティファクトクラシファイア320によって自動的に算出されてよく(たとえば、テキスト高さが30画素である場合、1.34倍スケールアップすると40画素の高さに達する)、このスケールアップ係数を使用してズームインが行われる(ただし、視野が狭くなることに留意されたい)。(たとえば、領域1104をキャプチャするための)オートズーミングの後で、以前存在していたテキスト領域(たとえば、領域1101)が画像内に存在しなくなったとき、いくつかの実施形態のアーティファクトクラシファイア320はユーザに画像に物理的に接近させるためのフィードバックをさらに生成する。いくつかの実施形態では、様々な画像から抽出されたテキスト領域が一緒に使用され、1つまたは複数のフィードバックに応答してアーティファクトクラシファイア320によって取得された各画像に共通するシーン(図7)内のテキストが認識される。
【００４７】
動作220(図3A)が実行された後、(OCRモジュール330によって)動作230が実行され、アクト221(図3A)からのyes分岐のようにテキスト領域内のテキストが認識される。具体的には、プロセッサ404は、たとえば、動作231(図3A)における細分(またはスライス)によって、そのようなテキスト領域からサブブロックのシーケンスを通常通りに取得する。サブブロックは、任意の既知の方法を使用し、たとえば、テキスト領域の高さおよび文字の所定のアスペクト比に基づき、かつ/またはMSER領域を形成する境界として特定された画素の境界の外側でかつテキスト領域の内部に空白が発生することに基づいて領域からスライスされてよい。アクト231(図3A)におけるスライシングの結果としてサブブロックのシーケンスが得られ、各サブブロック(またはブロックのスライス)は次いで、後述のように光学文字認識(OCR)を受ける。
【００４８】
具体的には、アクト232(図3A)において、プロセッサ404はテキスト領域のサブブロック(またはスライス)ごとの特徴ベクトルを形成し、その後アクト233を実行する。アクト232において形成される特定の特徴ベクトルは、実施形態に応じて異なり得る。アクト233において、プロセッサ404は、特徴ベクトルを、所定のアルファベットの文字の対応する特徴ベクトルとの比較によって復号し、1つまたは複数の文字(たとえば、各文字の確率を有するサブブロックごとの代替文字)を特定する。続いて、アクト234において、プロセッサ404は、特定された文字の1つまたは複数のシーケンスを文字シーケンスのリポジトリと一緒に使用して、テキスト領域に存在する単語を特定し、テキスト領域に存在する単語として特定された単語をメモリに記憶する(かつ/または画面上に表示する)。
【００４９】
モバイルデバイス401のいくつかの実施形態は、次に説明する図4Aおよび4Bのうちの1つまたは複数に示すように実施される。いくつかの実施形態では、モバイルデバイス401は、プロセッサ404によって実行されたときに、たとえば、1つまたは複数の領域が、たとえば画像内の画素の強度の変動に基づいて画像から抽出される動作410(図4A)を実行することによってテキスト領域エクストラクタ611を実施し、その後、後述のように動作420、430、440、450、452および460を実行するメモリ501内のソフトウェア610における複数の命令を含む。動作410において、画像内の画素は、画像内の強度の局所的極値(局所的最大値または局所的最小値)を含む領域Qiを特定する(リストとして実施されてよい)組において特定されてよい。そのような領域Qiは、動作510において、範囲i-△〜i+△における1つまたは複数の強度に対して最大限に安定な領域として特定され、各強度iは、それぞれの領域Qi-△およびQi+△を特定するために領域Qiに含まれる複数の画素の強度に対するしきい値として使用されてよい(△はMSER法に入力されるパラメータである)。
【００５０】
(「連結成分」を構成し得る)そのような領域は、動作410(図4A)において、たとえば、参照により全体が本明細書に組み込まれている、「Robust Wide Baseline Stereo from Maximally Stable Extremal Regions」(J. Matas、O. Chum、M. Urban、およびT. Pajdla、BMVC 2002、10頁)と題する論文に記載されたような任意のMSER法を使用することによって特定されてよい。他の方法を使用して、動作510において、たとえば、参照により全体が本明細書に組み込まれている、「Application of Floyd-Warshall Labelling Technique: Identification of Connected Pixel Components In Binary Image」(Hyunkyung ShinおよびJoong Sang Shin、Kangweon-Kyungki Math. Jour. 14 (2006)、No. 1、47〜55頁)と題する論文、またはやはり参照により全体が本明細書に組み込まれている、「Fast Connected Component Labelling Algorithm Using A Divide and Conquer Technique」(Jung-Me Park、Carl G. Looney、およびHui-Chuan Chen、Matric (2000)、第4巻第1号、発行者: Elsevier Ltd、4〜7頁)と題する論文に記載されているように、連結成分分析および領域の特定を実行してよい。
【００５１】
画像内の1つまたは複数の領域が特定された後、いくつかの実施形態のモバイルデバイス401内のテキスト領域エクストラクタ611が動作420(図4A参照)においてスキュー存在検出を実行し、その後スキュー補正が実行される。動作420は、動作460(後述)において画素をテキストまたは非テキストに分類する前に実行される。さらに、動作420は、(たとえば、動作440において)互いに隣接する領域をマージする前でさらに(たとえば、動作450において)2値化の前に実行される。動作420の間に、モバイルデバイス401は、局所的に特定の領域におけるスキューのインジケータの値を算出する。プロセッサ404のいくつかの実施形態は、(a)矩形における領域Qiにぴったりと適合する領域(「最小境界矩形」とも呼ぶ)および(b)領域Qi内の画素のカウントを使用して、領域iのスキューを求めるのに使用することのできるメトリックMiを取得することによって、領域Qiごとのスキューのインジケータの値を算出する。いくつかのそのような実施形態では、メトリックMiがしきい値t1と比較され、領域Qi内のスキューが受け入れられるか否かが判定され(たとえば、領域のスキュー角度が±5度よりも大きいときには受け入れられない)、それによって、各領域Qiにおけるスキューの2値インジケータが取得される。他のそのような実施形態では、メトリックMiが直接、各領域iにおけるスキューの実値インジケータとして使用される。
【００５２】
領域ごとに動作420において算出されるスキューのインジケータの値は、メモリ501の特定の位置において(領域ごとに)個々に記憶されるかまたは(複数の領域にわたって)まとめて記憶される。モバイルデバイス401のいくつかの実施形態は、領域についてスキューが存在することが示されるたびに画像全体のスキューカウントがメモリ501において増分される。他の実施形態は、メモリにおいて各領域について個々にスキューが存在するかまたはスキューが存在しないことを示す。この段階(たとえば、動作420において)では、領域によって形成される特徴がテキストであるかまたは非テキストであるかはわからない。ただし、その領域についてスキューのインジケータの値が求められる。いくつかの態様では、モバイルデバイス401は、画像内の複数の領域のそれぞれについて算出されたスキューのインジケータ(および/またはスキューのメトリック)の複数の値に所定の試験を適用し、複数の値を使用して、スキューが大域的に画像全体に存在するかどうかが判定される。動作420のいくつかの実施形態は、統計方法を使用して複数の値の平均または中央値を算出し、複数の値間の異常値をフィルタリングし、その後フィルタリングされた値の平均または中央値が再計算され、しきい値と比較されて(たとえば、±5度よりも大きい)、画像全体におけるスキューが受け入れられるか否かが判定される。
【００５３】
動作420の後で、画像の複数の領域にわたってスキューが受け入れられることが判明すると、いくつかの実施形態のモバイルデバイス401内のテキスト領域エクストラクタ611は、共通の2値の画素のラインが存在するかどうかを検査する動作430(図4A)を実行し、その後、(動作530において)互いに隣接する領域の一方の領域が、ラインが存在するかどうかの試験項目を満たすときに、所定の規則を使用して互いに隣接する領域をマージする動作440を実行する。動作440の後で、動作540の結果として得られる(マージされたまたはマージされていない)領域の文字枠を2値化する動作450が2値化モジュールにおいて実行される。
【００５４】
動作450の後で、テキスト領域エクストラクタ611において、(マージされているかどうかにかかわらず)領域の2値化ブロックに共通の2値の画素のラインが存在することを検証するための動作452(図4A)が実行され、その後、(たとえば、ニューラルネットワークを使用しかつ/またはストローク幅の分散に基づいて)2値化ブロックをテキストまたは非テキストとして分類するための動作460(図4A)が実行される。動作452は、テキスト領域エクストラクタ611の様々な実施形態においてそれぞれ異なるように検証モジュールで実施されてよい。動作460における分類の後で、テキストとして分類された1つまたは複数のブロックがテキスト領域エクストラクタ611によって図3Dに示すセレクタ310に供給される。
【００５５】
画像の領域内のテキストの単語の認識は、いくつかの実施形態では、図4Bに示し次に説明する種類のOCRモジュール330によって実行される。具体的には、モバイルデバイス401のいくつかの実施形態は、本明細書で説明する種類の方法を実行するための論理を実施するモジュール621、622、623、624、625、628、および629(図4B)を含む。そのようなモジュールは、以下に図4Bを参照して説明するように、ハードウェアまたはプロセッサ604によって実行されるソフトウェア、あるいはそれらの組合せとして実装されてよい。具体的には、いくつかの実施形態のモバイルデバイス401は、モバイルデバイス401のメモリ501内のモジュール621における言語特有の規則に基づいてテキスト領域のブロックをスライスする(ブロックはその文字枠によって特定される)文字セグメント化論理をモジュール622(図4B)内に含む。
【００５６】
モジュール622によって生成されたサブブロックのシーケンスは、シーケンス内のブロックごとにN個の要素の特徴ベクトルを作成するモジュール623(図4B)内の特徴表現論理に入力される。(shiro-rekhaおよび文字
【００５７】
【数７】
2015537325.tif 000009
【００５８】
について図4Bに示すように存在し得る任意の上部maatraを含む、OCR化すべきテキストの文字を示す画素を含む)各サブブロック内の画素を表すために、実施形態に応じて、任意の種類の特徴ベクトルがモジュール623によって使用されてよい。
【００５９】
いくつかの実施形態は、文字の画素を含む各サブブロックを所定数のサブサブブロック、たとえば、2x2すなわち4個のサブサブブロック、4x4すなわち16個のサブサブブロック、または場合によっては5x4すなわち20個のサブサブブロックに細分してよい。次いで、特徴ベクトルについて2つの寸法が形成され、サブブロックの各サブサブブロックにおける画素の行に沿った水平方向(たとえば、左から右)の黒白遷移および白黒遷移が記録され、特徴ベクトルについて2つの追加の寸法が形成され、サブブロックの列に沿った垂直方向(たとえば、下から上)の黒白遷移および白黒遷移が記録される。
【００６０】
実施形態に応じて、そのような特徴ベクトルに含めることのできる追加のカウントは、画素の強度値の変化がない場合のカウントである。たとえば、そのような追加のカウントは、サブブロックにおける画素の行に沿った水平方向(たとえば、左から右)の黒黒(すなわち、変化なし)強度値の発生数および白白(同じく変化なし)強度値の発生数を記録してよい。同様に、そのような追加のカウントは、サブブロックにおける画素の列に沿った垂直方向(たとえば、上から下)の黒黒強度値の発生数および白白(同じく変化なし)強度値の発生数を記録してよい。
【００６１】
モジュール623によって形成される1つまたは複数の特徴ベクトルは、いくつかの実施形態では、同じシーンの対応する複数の画像において(たとえば、図12Aの画像1518および図12Bの画像1519において)特定のテキスト領域(たとえば、図12Aの広告掲示板1100上の
【００６２】
【数８】
2015537325.tif 000010
【００６３】
という単語を含むテキスト領域1102など)の複数のバージョンを特定するのに使用されてよい。図12Aの画像1518内の
【００６４】
【数９】
2015537325.tif 000011
【００６５】
という単語は、図12Bの画像1519内の同じ単語
【００６６】
【数１０】
2015537325.tif 000012
【００６７】
の高さh4とは異なる高さh3を有するので、各画像にわたるテキスト領域を相関するのに使用される特徴ベクトルはスケール不変である。
【００６８】
(たとえば、画像内のキーポイント位置および/またはマップポイント位置を使用して)このような相関を実行するモバイルデバイス401のいくつかの実施形態では、属性が第1のテキスト領域のあるバージョンにおける光学文字認識(OCR)の限界を超えた値を有するとき、モバイルデバイス401は、本明細書で説明する種類の同時にまたは連続的にキャプチャされる画像から抽出される第1のテキスト領域の追加のバージョンを自動的に分析してよい。さらに、モバイルデバイス401のいくつかの実施形態は、1つまたは複数の画像から抽出された第2のテキスト領域の1つまたは複数のバージョンにおけるOCRに関連する属性を分析し、属性が特定の画像内の第2のテキスト領域のあるバージョンにおける光学文字認識(OCR)の限界を超えない値を有するとき、モバイルデバイス401は、この特定の画像から抽出された第2のテキスト領域をOCRへの入力として与える。このプロセスは、特定された各テキスト領域のあるバージョンがそれに含まれるテキストを認識するためのOCRに入力されるまで複数の画像から抽出されたテキストの1つまたは複数の追加の領域によって継続してよい。いくつかのそのような実施形態では、そのようなモバイルデバイス401は追加または代替として、第1のテキスト領域および第2のテキスト領域において認識されたテキストを出力してよい。
【００６９】
いくつかの実施形態のモジュール623によって形成された特徴ベクトルは、互いの代替としての一群の文字を、場合によっては、特定のサブブロック内のテキストの文字を表す群内の各文字の信頼基準とともに、出力として生成する多段文字デコーダ624(図4B)に入力される。後述の種類のいくつかの実施形態では、多段文字デコーダ624は、1組の所定の特徴ベクトルにおいて探索する第1の段階と、特定された文字ごとに、互いに誤った文字として特定されることがわかっている対応する1組の文字(特定された文字を含む「コンフュージョンセット」と呼ばれる)を探索する第2の段階を含む。上述の1組の所定の特徴ベクトルおよび上述のコンフュージョンセットは、多段文字デコーダ624によって2つの段階において使用される情報628の2つの部分としてデータベースに記憶される。実施形態に応じて、上述の情報のいずれかまたは両方の部分が単語デコーダ625からのフィードバックによって変更されてよい。
【００７０】
いくつかの実施形態では、情報628は、第1の段階において使用される第1の部分として、葉ノードが特徴ベクトルを保持する木構造を含み、この木構造は、第1の段階では、たとえば、ユークリッド距離を使用することによってサブブロックの特徴ベクトルを1つまたは複数の中間ノードにおける対応する特徴ベクトルと比較して特定の葉ノードを特定することによって横断される。いくつかの実施形態では、木構造における葉ノードは、文字を表す特徴ベクトルの平均(たとえば、共通に生じる文字の様々なフォントにおける複数の形状の平均)、ならびに文字を表す特徴ベクトル間の異常値であることに起因して選択される1つまたは複数の特徴ベクトルを含む。いくつかの実施形態では、情報628は、第2の段階で使用される第2の部分、すなわち、コンフュージョンセットにおける文字同士を区別するのに十分であることがわかっている特徴ベクトルの要素を特定する1組の重みを含む。対応するサブブロックについて多段文字デコーダ624によって特定された文字の各群は、テキスト領域のブロック内のすべてのサブブロックについてそのような群を収集し、次いで辞書629から選択された単語を出力する単語デコーダ625(図4B)に入力される。いくつかの実施形態の辞書629は、アクセントマークを削除することによって(たとえば、従来技術の辞書から)取得された所定の1組の単語および/または文字のシーケンスを保持する。
【００７１】
図5Aは、オフライン計算によって認識性能を最高にするテキストサイズを求めるための、図3Dに示す種類のアーティファクトクラシファイアのトレーニングを、高レベルデータ流れ図において示す。具体的には、図3Eのテキスト画質パラメータエクストラクタ350を設計時に使用してサンプル画像内の領域の高さ(またはテキストサイズ)を抽出する。さらに、OCRモジュール330を設計時に使用してサンプル画像の同じ領域に対してテキスト認識を実行する。OCRモジュール330の出力を、(ハードウェアまたはソフトウェアまたは組合せとして実装されてよい)論理511によって、サンプル画像を作成するために使用される領域内のテキストの特定の単語を特定するグラウンドトゥルースと比較して、認識精度を求める。認識精度および高さ(またはテキストサイズ)を論理512によって使用して(領域レベルでの)OCRの限界を特定する。その後、実行時に、図5Bに示すように、論理512によって生成された限界を論理515において使用して、(上述のアクト222のように)その領域をOCRに入力すべきかどうかを判定する。
【００７２】
図6Aは、図2に示す種類のいくつかの実施形態において、単一の画像の2つの異なる潜在的なテキスト領域において特定された2つの異なるアーティファクトを高レベルデータ流れ図において示す。具体的には、いくつかの実施形態では、アーティファクトクラシファイア681(図6A)は、テキストごとの検証ブロック250の画素を含む領域として特定された領域を受け取る。テキストの受け取られた領域は、領域内のぼけの部分が限界を超えていないかどうかを検査し、領域がテキストサイズの限界を超えていないかどうかをさらに検査するアーティファクトクラシファイア681(図6A)によって評価される。たとえば、図6Bに示すように、いくつかの実施形態のアーティファクトクラシファイア681は、アクト662において、受け取られた領域の高さが限界未満であるかどうかを検査し、受け取られた領域のサイズが小さすぎることが判明すると、たとえば、ユーザにズームインするかまたは目標に接近するよう求めるフィードバックが(図6Bのアクト672のように)フィードバックモジュール612U(図6A)によってユーザに与えられる。アーティファクトクラシファイア681は、テキストの受け取られた領域がぼけているかどうかをアクト663(図6B)においてさらに検査し、領域がぼけを有することが判明すると、モジュール683(図6A参照、同じくモバイルデバイス401内に存在する)を動作させ、たとえば、ぼけ除去法を使用して受け取られた領域内の画素の強度を変更することによって領域内の画像を向上させ、場合によってはその後、上述のようにOCRモジュール330においてテキスト認識を行うように、フィードバックモジュール612S(図6A)によって(図6Bのアクト673のように)(モバイルデバイス401内の)システムにフィードバックが与えられる。
【００７３】
いくつかの実施形態のアーティファクトクラシファイア681は、テキストが不十分なコントラストを有するかどうかをアクト664(図6B)においてさらに検査し、領域が不十分なコントラストを有することが判明すると、モジュール683を動作させ、たとえば、領域内の画素の強度を変更してコントラストを向上させることによって領域内の画像を向上させ、場合によってはその後、OCRモジュール330においてテキスト認識を行うように、フィードバックモジュール612S(図6A)によって(図6Bのアクト674のように)モバイルデバイス401内のシステムにフィードバックが与えられる。アーティファクトクラシファイア681は、テキストの受け取られた領域が露出過度であるかそれとも露出不足であるかをアクト665(図6B)においてさらに検査し、領域が適切な露出を有さないことが判明すると、モジュール683を動作させ、露出を向上させることによって領域内の画像を向上させ、場合によってはその後、OCRモジュール330においてテキスト認識を行うように、フィードバックモジュール612S(図6A)によって(図6Bのアクト675のように)システムにフィードバックが与えられる。
【００７４】
いくつかの実施形態では、単一のアーティファクトクラシファイア681が(アーティファクトクラシファイア681自体がアーティファクトをある場合にはぼけとして特定しかつ別の場合には小さいテキストサイズとして特定し、適切なフィードバックを与えることができるように)アクト662〜665の各々を実行するが、他の実施形態では、図6Bのアクトが複数のアーティファクトクラシファイアにおいて実行されてよい。たとえば、図6Aに示すように、アーティファクトクラシファイア681および682(どちらもモバイルデバイス401に実装される)はそれぞれ、ぼけと小さいテキストサイズの2つの問題を特定してよい。したがって、実施形態に応じて任意の数のアーティファクトクラシファイアを使用することができ、そのようなアーティファクトクラシファイアが互いに並行して動作してもまたは順次動作してもまたはそれらを組み合わせた動作を行ってもよいことがこの説明を考慮すれば容易に明らかになろう。
【００７５】
説明したいくつかの実施形態のモバイルデバイス401は、同一のテキストの複数の画像を使用する(ハードウェアまたはソフトウェアまたはそれらの組合せとして実装された)1つまたは複数のブロックを含み、次のようにテキスト認識を向上させる。具体的には、いくつかの実施形態のモバイルデバイス401は、カメラ405と相互作用して実世界のシーンの様々な解像度(たとえば、様々なズームレベル)での複数の画像をカメラから取得する多画像画像キャプチャブロック801(図8A)を含む。実世界シーンは、たとえば、様々なサイズのテキスト領域1101、1102、1103、および1104を有する図7に示す広告掲示板上に、様々なサイズのテキストを有してよい。そのようなテキスト領域は、モバイルデバイス401において、実世界シーンの複数の画像を多画像キャプチャブロック801から受け取る抽出ブロック802によって自動的に抽出される。
【００７６】
モバイルデバイス401は、抽出ブロック802からテキスト領域のうちの1つまたは複数を受け取る分析ブロック803も含む。分析ブロック803は、(抽出ブロック802によって)複数の画像のうちの1つから抽出された第1のテキスト領域のバージョンの、高さなどOCRに関連する属性を分析する。モバイルデバイス401は、(分析ブロック803によって分析された)属性が、OCRの所定の限界を超えない値を有するかどうか、たとえば、テキスト領域の高さが40画素を超えているかどうかを自動的に検査する決定ブロック804も含む。
【００７７】
決定ブロック804における答えがyesであるとき、モバイルデバイス401は、テキスト認識ブロック805を動作させてテキスト領域内の単語を特定する。モバイルデバイス401は、すべてのテキスト領域が認識されたかどうかを検査するための別の決定ブロック806を含む。答えがnoであるとき、モバイルデバイス401は、別の分析ブロック807において複数の画像のうちの1つから抽出された追加のテキスト領域のあるバージョンを分析し、その後、(上述の)決定ブロック804に戻る。決定ブロック804において、答えがnoであるとき、モバイルデバイス401は、さらに別の決定ブロック809を動作させて、すべてのバージョンが分析されたかどうかを検査し、分析されていないバージョンがある場合、(上述の)ブロック803が再び動作させられる。
【００７８】
決定ブロック809における答えがyesであるとき、モバイルデバイス401は任意にフィードバックモジュール810を動作させ、その後フィードバックを行うかまたはフィードバックを行わずにブロック801を動作させる。フィードバックモジュール810は、動作させられると、(後述の)図12Aおよび図12Bに示す種類のいくつかの実施形態ではモバイルデバイス401のシステムへの内部へのフィードバック信号を生成する。したがって、いくつかの実施形態では、フィードバックは、完全にシステムの内部で行われ、たとえば、図10A〜図10D(後述)に示すように動的に算出することもまたはあらかじめ決定されたレベルとすることもできる1つまたは複数のズームレベルを多画像キャプチャブロック801に対して特定してよい。1つまたは複数のズームレベルがあらかじめ決定されたレベルである実施形態では、多画像キャプチャブロック801は、カメラ405を動作させて一連の画像を対応する一連の解像度(またはズームレベル)で自動的に次々と連続的に(かつユーザに通知せずに)キャプチャしてよい。ズームレベルが動的に算出される実施形態では、多画像キャプチャブロック801は、カメラ405を動作させ、シーンのキャプチャされた1つまたは複数の画像がOCRの限界を超えたテキスト領域を有するときに追加の画像を取得してよい。代替または追加として、実施形態に応じて、フィードバック信号を使用して、たとえば、オーディオメッセージを再生するか、または(後述の)図11Aおよび図11Bに示すように、視覚的メッセージをユーザに表示することによって、ユーザに明確に通知してよい。決定ブロック806における答えがyesであるとき、モバイルデバイス401は、出力ブロック808を動作させ、シーンの複数の画像を使用することによって認識されるシーン内の様々なサイズのテキストの単語を特定する。
【００７９】
図8Bに示す種類のいくつかの実施形態は、シーンの最初の1組の画像(たとえば、10個の画像)を、たとえば、いくつかの実施形態では、アクションシーケンスをキャプチャするためのバーストモードと同様な方法でズームのレベルを自動的に変化させつつ(たとえば、上げつつ)自動的に連続して、たとえば、次々と連続的にキャプチャするブロック824を含む。この最初の1組の画像は、モバイルデバイス401のメモリ501に記憶され、処理すべき個々の画像を選択するセレクタ310を介して利用可能である(たとえば、最初はシーンの第1の画像を選択し、続いて同じシーンの第2の画像を選択する。どちらの画像も互いに対して異なる解像度の最初の1組の画像においてキャプチャされる)。セレクタ310によって選択された画像は、たとえば図7のポスター1100における、様々なサイズのテキストである可能性が高い1つまたは複数の領域を抽出するテキスト領域エクストラクタ611に渡される(テキスト領域1102は、テキスト領域1103よりも小さいテキスト領域1101よりも小さい)。
【００８０】
潜在的なテキスト領域が、(たとえば、ニューラルネットワークを使用して)テキストが存在するかどうかを試験する(上述の)図4Aに示す種類のテキスト検証ブロック250にテキスト領域エクストラクタ611によって供給される。テキスト検証ブロック250によって出力された、テキストであることがわかっている領域が、モバイルデバイス401内のプロセッサ404によって実行される(上記に図2を参照して説明した)アクト222において特定の属性に関して検査される。限界を超えていない特定の属性を有する領域は、通常通りにOCRモジュール330に供給される。アクト222において、1つまたは複数の領域が限界を超えていない属性を有さないことが判明すると、フィードバックモジュール612は、画質がOCRに不十分である1つまたは複数の領域、たとえば、画像内に小さいテキストを有する領域の位置および領域のサイズを特定する内部フィードバック信号をモバイルデバイス401内で生成する。フィードバックモジュール612からのそのような内部フィードバック信号は、いくつかの実施形態では、いくつかの実施形態のブロック824において様々な解像度でキャプチャされ、(上述の)セレクタ310が利用することができる最初の1組の複数の画像から別の画像を自動的に取り込むために使用される。
【００８１】
いくつかの実施形態において様々な解像度での最初の1組の複数の画像をキャプチャすると、キャプチャされた画像内の1つまたは複数のテキスト領域が小さすぎてOCRを受けることができないことが判明したことに応答して単にテキスト領域のサイズを拡大するために1つまたは複数のそのような画像を(自動的にまたは手動で)撮り直すことが不要になる。その代わりに、事前に所定数(たとえば、10)の画像をキャプチャすると、その後、たとえば、OCRにより大きい高さのテキスト領域が必要であるときに、より高い解像度の1つまたは複数の画像が利用可能になる。たとえば、画像がキャプチャされた直後に、解像度が徐々に高くなる9個の追加の画像を連続的にキャプチャし、それに応じてサイズが徐々に大きくなる(それにもかかわらず視野に収まる場合)テキスト領域をキャプチャすることができる。
【００８２】
実施形態に応じて、画像内のテキストの認識が首尾よく完了すると、そのような組の中の1つまたは複数の多解像度画像を破棄して(一方、ある画像をユーザによって最初に撮られた組に保持しつつ)モバイルデバイス401内のメモリ501を(1つの画像がキャプチャされた直後にバーストモードにおいて複数の解像度で自動的にキャプチャすることのできる)次の1組の画像を記憶するのに利用できるようにしてよい。いくつかの実施形態では、ユーザがモバイルデバイス401内のカメラ405を動作させるたびに、たとえば、単一のユーザ入力(モバイルデバイス401内のカメラを動作させるためにモバイルデバイス401上でボタンを1回押すことなど)に応答して、ユーザに複数の画像がキャプチャされることを気付かせずに、所定数の画像が所定数のズームレベルで自動的にキャプチャされる。
【００８３】
したがって、本明細書で説明する種類の電子デバイスおよび方法は、画像のある領域が(たとえば、電子デバイスおよび方法におけるOCRを実施することによって施される)その領域内のテキストの認識の限界を超えない属性(たとえば、高さ)を有するかどうかを検査する。具体的には、いくつかの実施形態では、電子デバイスおよび方法によって適用される限界は領域レベルの限界であり、すなわち、領域の属性が検査され、したがって、これらの実施形態では、限界は領域レベル限界と呼ばれることもある。上記の例では、領域は、その領域内の文字のシーケンスを十分な精度で認識するために高さが少なくとも40画素であることが必要になることがある。領域の属性に対する限界は、電子デバイスおよび方法におけるOCRの特定の実装形態ならびに指定できる精度のレベル(たとえば、90%の精度)に依存する。電子デバイスおよび方法の実施形態において必要な領域の高さに対する限界は、認識の対象となる特定の言語、たとえばヒンディー語における(各々が単一の文字の高さを有する)単語の画像内の領域に対して電子デバイスおよび方法を繰り返し使用することによって、あらかじめ経験的に決定されてよい。
【００８４】
テキストが存在するかどうかの試験項目は領域によって満たされ、領域の属性がその属性に対する限界を超えていないとき、本明細書で説明する種類の電子デバイスおよび方法は、その領域をOCRモジュール330への入力として与え、その後、光学文字認識の結果(たとえば、場合によっては認識における信頼性を示す確率を含む、領域に存在する単語として認識された1つまたは複数の単語)をメモリ501に記憶してよい。そのような結果はその後、たとえば、画像内で認識されたヒンディーテキストの単語を英語に翻訳するために通常の方法で使用されてよい(たとえば、図11Cに示されているように)。
【００８５】
テキストが存在するかどうかの試験項目が画像のある領域によって満たされるが、その領域の属性がその属性に対する限界を超えているとき、本明細書で説明する種類の電子デバイスおよび方法は、実施形態に応じて様々なアクトを実行するように構成されてよい。いくつかの実施形態は、特定の領域に対応する領域を含む追加の画像に対して上述のアクトのうちの1つまたは複数を繰り返す。追加の画像は、実世界における同じシーンについてキャプチャされ、対応する領域の属性(たとえば、高さ)に関して異なる値を有するそのような複数の画像のうちの1つであってよい。具体的には、上記のように、いくつかの実施形態は、実世界のシーンの1組の所定数の画像(たとえば、10個の画像)を事前に、画像内の領域が特定される前でかつ領域がOCRに入力するのに不適切であることが(任意の方法で)判明する前に、単一の画像がキャプチャされるのと同時にキャプチャする。ズームレベルが徐々に高くなる1組の画像をキャプチャすると、OCRには小さすぎる1組の画像内の早い時期にキャプチャされた画像内のテキスト領域に対して、1組の画像内の後からキャプチャされた画像内のこれらの同じテキスト領域の拡大バージョンに対してOCRを実行することによってOCRを施すことが可能になる。(単一の画像ではなく)1組の画像を最初にキャプチャすると、その後で、テキスト領域が小さすぎてOCRに入力できないことが判明したときに画像を撮り直すことが不要になる。さらに、最初に複数のサイズのテキストを含む組における複数の画像を撮っておくと、そのような実施形態では、様々なサイズのテキスト領域を認識/OCRすることが可能になり、その後、第1のテキスト領域が各画像にわたって内部相関され、その後、テキストを認識するうえで追加の画像を撮る必要なしに認識されたテキストがユーザに提示される。
【００８６】
上記のように、いくつかの実施形態は、領域の属性を向上させてOCRの限界を超えないようにするために、特定の領域を含む別の画像をキャプチャする必要があることを示すフィードバック信号を生成してよい。フィードバック信号は、カメラを自動的に動作させて(たとえば、同じシーンにズームインさせて)追加の画像を取得するか、またはカメラを操作して追加の画像を取得するように(たとえば、画面上にメッセージを表示するかまたはオーディオメッセージを再生することによって)ユーザに促すために電子デバイスおよび方法によって使用されてよい。
【００８７】
したがって、いくつかの実施形態は、カメラによってキャプチャされた画像の個々の領域内のテキストの認識を向上させるために画質ベースのフィードバックを行う。個々の領域に関するこのようなフィードバックは、カメラによってキャプチャされたテキスト画像の品質が低く、いくつかの領域(たとえば、図7の1102および1104)ではテキスト認識が不十分になり、一方、同じ画像(たとえば、広告掲示板1100の画像)の他の領域(たとえば、図7の1101および1103)では適切なテキスト認識が行われることに起因する問題を解消する。より具体的には、画像内のテキスト領域の画質に基づく、上述の種類の、ユーザへのフィードバック(図11Aおよび図11B参照)ならびに上述の種類の、システムへのフィードバック(図12Aおよび図12B参照)によって、テキストとして特定された領域における画質を向上させ、それによって認識性能を向上させるための適切な制御処置がとられる。したがって、いくつかの実施形態は、カメラ画像におけるテキスト認識を向上させるのを助けることができるユーザまたはシステムへのフィードバックを行うための機構を使用する。そのような実施形態は、以下のうちの1つまたは複数を含み得る。1)テキスト認識を阻害する画像のアーティファクトの影響を受ける特徴を判定すること、2)アーティファクトクラシファイアを構成することによって不十分な認識を生じさせるアーティファクトタイプを特定すること、3)アーティファクトタイプに応じてユーザまたはシステムのいずれかにフィードバックを行うこと。ユーザへのフィードバックには、ユーザが講じることのできる1組の推奨される処置が含まれる。システムへのフィードバックには、画像向上とそれに続く認識のための命令が含まれる。そのような実施形態は、様々な画像化条件に対するさらなるロバストネスを実現することによってユーザの経験を改善する利点を有すると考えられ、画質フィードバックは、より広い範囲の実世界シナリオにおけるテキスト認識を可能にするうえで有用である。
【００８８】
図2、図3A、図3D、図10A、図10B、および図10Cに示す種類の方法を実行するいくつかの実施形態のモバイルデバイス401(図9)は、画像内のデーヴァナーガリー語の任意の文字を特定するように処理される実世界シーンの画像を生成するために上述の種類のカメラ405(図9)を含むスマートフォンなどの任意のハンドヘルドデバイスであってよい。前述のように、モバイルデバイス401は、加速度計、ジャイロスコープ、コンパスなどの、モバイルデバイス401の動きに関する情報を提供するセンサ406をさらに含むことができる。モバイルデバイス401は、加速度計およびコンパスおよび/または他のセンサを使用して、通常の方法で傾斜および/または回転を感知し、プロセッサ404がモバイルデバイス401においてキャプチャされた画像内の所定の記号の方向および位置を判断するのを助けることができる。モバイルデバイス401は、センサ406の代わりにまたはセンサ406に加えて、カメラ405からの画像を使用して、プロセッサ404が、画像化される所定の記号に対するモバイルデバイス401の方向および位置を判定するのを助けてよい。
【００８９】
また、モバイルデバイス401は、通常の方法で使用されるグラフィックスエンジン1004と画像処理プロセッサ1005とをさらに含むことができる。モバイルデバイス401は、(たとえば、メモリ501内のソフトウェア610を実行する1つまたは複数のプロセッサ404によって実現される)OCRモジュール330を任意に含んでよく、(OCRモジュール330内のソフトウェアがプロセッサ404によって実行されたときに)OCRモジュール330によって入力された受け取られたブロック内のテキストの文字を特定する。
【００９０】
メモリ501に加えて、モバイルデバイス401は、フラッシュメモリ(またはSDカード) 1008などの1つまたは複数の他の種類のメモリと、ならびに/またはメモリ501(「主記憶装置」とも呼ばれる)にロードするために、および/もしくはプロセッサ404が使用するために、データおよび/またはソフトウェアを記憶するハードディスクおよび/または光ディスク(「補助記憶装置」とも呼ばれる)とを含むことができる。モバイルデバイス401は、送受信機1010内のワイヤレス送信機および受信機および/または何らかの他の通信インターフェース1009をさらに含むことができる。モバイルデバイス401は、セルラー式通信デバイスまたは他のワイヤレス通信デバイス、パーソナル移動通信システム(PCS)デバイス、パーソナルナビゲーションデバイス(PND)、パーソナルインフォメーションマネージャ(PIM)、携帯情報端末(PDA)、ラップトップ、カメラ、スマートフォン、タブレット(Apple Inc.から入手可能なiPadなど)、または拡張現実(AR)環境を作成することが可能な他の適切なモバイルプラットフォームなどの、何らかの携帯型電子デバイスであってよいことを理解されたい。
【００９１】
上記で説明した種類のモバイルデバイス401は、「コンピュータビジョン」技法を使用する物体認識などの、他の位置判断方法を含むことができる。モバイルデバイス401は、たとえば、IRもしくはRF送信機、または、WiFi、セルラーワイヤレスネットワークもしくは他のネットワークのような1つもしくは複数のタイプのワイヤレス通信ネットワークを介して1つもしくは複数の信号を送信することを可能にされたワイヤレス送信機であってもよい、送受信機1010内の送信機を使用することによって、モバイルデバイス401上でのユーザ入力に応答して、玩具であってもよい実世界の物体を遠隔制御するための手段をも含んでもよい。モバイルデバイス401は、マイクロホンとスピーカ(符号なし)とをユーザインターフェースにさらに含むことができる。当然のことながら、モバイルデバイス401は、プロセッサ404が使用するためのファームウェアを記憶するために使用可能な読み出し専用メモリ1007など、本開示に関連しない他の要素を含むことができる。
【００９２】
さらに、実施形態に応じて、モバイルデバイス401は、OCRモジュール330を動作させて、たとえば画像内のデーヴァナーガリーアルファベットの文字を特定する実装形態において、画像内のテキストの文字を検出してよい。任意の1つまたは複数の文字デコーダ、単語辞書、およびフィードバックモジュールは、ソフトウェア(1つまたは複数のプロセッサまたはプロセッサコアによって実行される)内またはハードウェア内またはファームウェア内またはそれらの任意の組合せ内に実装されてもよい。
【００９３】
モバイルデバイス401のいくつかの実施形態では、上記で説明したOCRモジュール330における機能は、モバイルデバイス401のメモリ501にあるソフトウェア610を実行するプロセッサ404によって実施されるが、他の実施形態では、このような機能性は、モバイルデバイス401内のハードウェア回路および/またはファームウェアおよび/またはソフトウェアの何らかの組合せで実施される。したがって、実施形態に応じて、本明細書に記載したタイプの様々な機能は、ソフトウェア(1つまたは複数のプロセッサまたはプロセッサコアによって実行される)内または専用ハードウェア回路内またはファームウェア内またはそれらの任意の組合せ内に実装されてもよい。
【００９４】
モバイルデバイス401のいくつかの実施形態は、メモリ501内のソフトウェア610を実行して図10Aのアクト1401〜1407、図10Bのアクト1411〜1421、および図10Cのアクト1431〜1435を実行するプロセッサ404を含む。具体的には、アクト1401において、プロセッサ404は、画像内の潜在的なテキスト領域をその位置と一緒に抽出する(たとえば、MSERを使用して抽出し、その後クラスタ化規則を使用して抽出する)。次いで、アクト1402において、プロセッサ404は、(shiro-rekha試験およびニューラルネットワーククラシファイアを使用して)テキスト領域がテキストを含むかどうかを検証し、list_of_images_to_be_zoomedを空のリストとして初期設定し、i=0を設定する。次いで、アクト1403において、プロセッサ404は、検証されたテキスト領域ごとにループに入り、次のようにアクト1404〜1407を実行する。アクト1404において、プロセッサ404は、Is text_region_height>thresholdを検査し、答えがyesである場合、アクト1406においてOCRが実行され、その後、アクト1407において、forループを終了できるかどうかが検査され、終了できない場合、アクト1403に戻る。アクト1404において答えがnoであるとき、プロセッサ404は、zoom_level[i]=threshold/text_region_heightを算出し、text_region_location[i]およびzoom_level[i]をlist_of_images_to_be_zoomedに記憶し、次いでi=i+1の増分を行う。次いで、プロセッサ404はアクト1407に進む。アクト1407において、答えがyesである場合、プロセッサ404は、図10Bに示す方法に進む。
【００９５】
図10Bの方法では、プロセッサ404は、図10Aの方法のリストをズームレベルに対して降順にソートし、このリストからのすべてのテキスト領域をカメラ視野内に保持する最大ズームレベル(Z)を特定するようにプログラムされる。そのような最大ズームレベル(Z)を使用して、1つまたは複数の画像を、OCRを受けるテキスト領域を抽出する際に使用できるようにキャプチャする。具体的には、アクト1411において、プロセッサ404は、zoom_level_found=falseを設定し、その後、アクト1412において、ループ変数としてi=1からsorted_list_of_images_to_be_zoomedの長さまでのiを使用してアウターループを入力する。次に、アクト1413において、プロセッサ404は、number_of_images_within_field_of_view=0を設定し、その後、アクト1414において、ループ変数としてj=1からlist_of_images_to_be_zoomedの長さまでのjを使用してインナーループを入力する。
【００９６】
その後、アクト1415において、プロセッサ404は、テキストの領域のx座標がw/zoom_levelよりも大きいかどうか、または領域のy座標がh/zoom_levelよりも大きいかどうかを検査し、この場合、図10Dに示すように、wは領域の幅であり、hは領域1410の高さである。いくつかの実施形態のアクト1415において検査されるx座標は、領域の「極値」x座標である(たとえば、領域内の画素の座標のリスト内のx座標の中の(正のx方向における)最大値または(負のx方向における)最小値)。極値x座標または最も遠いx座標を使用すると、領域の中心は視野内に位置するが極値x座標が視野内に位置しない状況が対処される。同様に、検査されるy座標は、同じく、領域内の画素の座標のリスト内のy座標の中の最大値または最小値である。いくつかの実施形態では、元の画像の中心に対してテキスト領域の位置が測定されることに留意されたい。さらに、極値が、テキスト領域が元の画像の右半分に位置するかそれとも左半分に位置するかに応じて右極限値または左極限値を指し得ることに留意されたい。
【００９７】
アクト1415における答えがyesである場合、プロセッサ404はアクト1418に進み、視野内の画像の数がズームすべき画像のリストの長さに等しいかどうかを検査する(たとえば、アーティファクトクラシファイア320によって、領域の数がOCRの限界を超えていることが判明する)。アクト1418における答えがnoである場合、プロセッサ404は(後述の)アクト1421に進む。
【００９８】
アクト1415における答えがnoである場合、プロセッサ404は、変数number_of_images_within_field_of_viewを1だけ増分し、アクト1417に進んで、インナーループが完了しているかどうかを検査し、完了していない場合アクト1414に戻る。アクト1417においてインナーFORループが完了すると、プロセッサ404は(上述の)アクト1418に進む。アクト1418において、答えがyesである場合、プロセッサ404はアクト1419に進み、フラグzoom_level_found=trueを設定し、その後、アクト1420において、変数Z=zoom_level[i]を設定し、その後、アクト1421において、アウターループが完了したかどうかを検査し、完了していない場合はアクト1412に戻る。アウターFORループが完了すると、プロセッサ404は、図10Cの方法に進む。
【００９９】
図10Cの方法では、プロセッサ404は、図10Aおよび図10Bの方法における処理の結果に応じて、自動ズームを実行するかまたはユーザにフィードバックを与えるようにプログラムされる。具体的には、アクト1431において、zoom_level_foundがfalseである場合、アクト1436が実行され、カメラを対象に近付け、対象上の所望の位置でズームインするためのメッセージがユーザに対して表示される。アクト1431における答えがyesである場合、アクト1432が実行され、自動ズームが有効化されているかどうかが検査され、有効化されていない場合、アクト1435が上述のアクト1436と同様に実行され、その後、アクト1434において図10Aおよび図10Bの方法が繰り返される。アクト1432における答えがyesであるとき、アクト1433において、カメラが自動的に動作させられ、ズームレベルが変数Zによって示される値だけ高くなり、新しい画像がキャプチャされ、その後、(上述の)アクト1434が実行される。
【０１００】
したがって、実施形態に応じて、OCRモジュール330の任意の1つまたは複数のコンポーネントは、1つまたは複数のマイクロプロセッサ、埋め込み式プロセッサ、コントローラ、特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)などを含み得るが、必ずしもそれらを含む必要はないことが理解されよう。プロセッサという用語は、特定のハードウェアではなく、システムによって実施される機能について説明するものである。さらに、本明細書で使用する場合、「メモリ」という用語は、長期メモリ、短期メモリ、またはモバイルプラットフォームに関連する他のメモリを含む任意のタイプのコンピュータ記憶媒体を指し、いかなる特定のタイプのメモリ、もしくはメモリの数、またはメモリが収納される媒体のタイプに限定されない。
【０１０１】
したがって、本明細書で説明する方法は、用途に応じて様々な手段によって実現され得る。たとえば、これらの方法は、ファームウェア1013(図9)またはソフトウェア610、またはハードウェア1012、またはそれらの任意の組合せで実現されてよい。ハードウェア実装形態の場合、各処理ユニットは、本明細書に記載された機能を実行するように設計された、1つまたは複数の特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)、デジタル信号処理デバイス(DSPD)、プログラマブル論理デバイス(PLD)、フィールドプログラマブルゲートアレイ(FPGA)、プロセッサ、コントローラ、マイクロコントローラ、マイクロプロセッサ、電子デバイス、他の電子ユニット、あるいはそれらの組合せ内で実装されてもよい。ファームウェアおよび/またはソフトウェア実装形態の場合、これらの方法論は、本明細書に記載された機能を実行するモジュール(たとえば、手順、機能等)で実施され得る。
【０１０２】
本明細書で説明する方法を実装する際に、ソフトウェア命令(「コンピュータ命令」とも呼ぶ)を有形に具現化する任意の機械可読媒体が使用されてもよい。たとえば、ソフトウェア610(図9)は、メモリ501に記憶され、プロセッサ404によって実行されるプログラムコードを含んでもよい。メモリは、プロセッサ404内に、またはプロセッサ404の外部に実装され得る。ファームウェアおよび/またはソフトウェアで実装された場合、これらの関数は、コンピュータ可読媒体上に1つもしくは複数の命令またはコードとして格納され得る。例には、データ構造によって符号化された非一時的コンピュータ可読記憶媒体と、コンピュータプログラムによって符号化されたコンピュータ可読記憶媒体とが含まれる。
【０１０３】
非一時的なコンピュータ可読記憶媒体には、物理的なコンピュータ記憶媒体が含まれる。非一時的コンピュータ可読記憶媒体は、コンピュータによってアクセスでき、かつ情報(ソフトウェアおよび/またはデータ)を保持する任意の利用可能な非一時的媒体であってよい。例として、限定することなく、そのような非一時的コンピュータ可読記憶媒体は、RAM、ROM、フラッシュメモリ、EEPROM、CD-ROMまたはその他の光ディスク記憶装置、磁気ディスク記憶装置またはその他の磁気記憶デバイス、あるいは、プログラムコードを命令またはデータ構造の形式で記憶するために使用され得、しかも、コンピュータによってアクセスされ得るその他任意の非一時的媒体を備え、本明細書で使用されるようなディスク(diskおよびdisc)は、コンパクトディスク(disc)(CD)、レーザディスク(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー（登録商標）ディスク(disk)、およびBlu-ray（登録商標）ディスク(disc)を含む。ここで、diskは、通常、データを磁気的に再生する一方、discは、レーザを用いてデータを光学的に再生する。上記の組合せも、本明細書で説明する非一時的コンピュータ可読媒体の範囲内に含まれるべきである。
【０１０４】
教授の目的で特定の実施形態について説明したが、この説明を考慮して他の実施形態が容易に明らかになろう。したがって、いくつかの実施形態の図2に示す項目はモバイルデバイス401であるが、他の実施形態において、(メモリ501とプロセッサ404とを含む)項目は、異なるフォームファクタを使用することによって実装され、たとえば、特定の他の実施形態において、項目はモバイルプラットフォーム(タブレット、たとえば、Apple, Inc.から市販されているiPadなど)であるが、さらに他の実施形態において、項目は任意の電子デバイスまたはシステムである。そのような電子デバイスまたはシステムの例示的な実施形態は、1つまたは複数のワイヤレスリンクを介して、手に保持されるのに十分に小さいハウジング内に包含されるセンサおよびユーザ入力回路と通信する、ラップトップコンピュータ、デスクトップコンピュータ、またはサーバコンピュータ1015のような固定コンピュータの部分であるプロセッサおよびメモリのような、ワイヤレスに相互通信する複数の物理的な部品を含んでもよい。
【０１０５】
ハンドヘルドカメラによってキャプチャされた画像において認識される特定のアーティファクトに応じて、ユーザは、実施形態に応じて様々な種類のフィードバックを受け取ってよい。さらに、いくつかの実施形態におけるハプティックフィードバック回路1018(図9)をトリガして、カメラを対象に近付けかつまたは対象上の所望の位置でズームインするためのフィードバックをユーザに与えることによって、(たとえば、モバイルデバイス401の振動による)ハプティックフィードバックが実現される。上述のハプティックフィードバックの代わりに、他の実施形態ではモバイルデバイス401内のスピーカを介してオーディオフィードバックが実現されてよい。
【０１０６】
当業者にはこの説明を考慮すれば容易に明らかになるように、説明する実施形態の範囲から逸脱せずに様々な適応および変更を施すことができる。したがって、多数のそのような実施形態が添付の特許請求の範囲によって包含される。
【符号の説明】
【０１０７】
103  領域
107  画像
201、211〜216、222、223、231〜234、331〜335  アクト
210、220、230、240、250、410〜450、510  動作
224  分岐
250  テキスト検証ブロック
300  テキスト画質フィードバックモジュール
310  セレクタ
320  アーティファクトクラシファイア
330  OCRモジュール
321  点
321A、321B、321C  光線
329  領域
350  テキスト画質パラメータエクストラクタ
401  モバイルデバイス
404  プロセッサ
405  カメラ
407  画面
501  メモリ
511、512、515  論理
604  プロセッサ
610  ソフトウェア
611  テキスト領域エクストラクタ
612、612S  フィードバックモジュール
621、622、623  モジュール
624  多段文字デコーダ
625  単語デコーダ
628  情報
629  辞書
662〜675  アクト
681  アーティファクトクラシファイア
682  アーティファクトクラシファイア
683  モジュール
801  多画像キャプチャブロック
802  抽出ブロック
803  分析ブロック
804  決定ブロック
806  決定ブロック
807  分析ブロック
808  出力ブロック
809  決定ブロック
810  フィードバックモジュール
824  ブロック
1004  グラフィックスエンジン
1005  プロセッサ
1007  読み出し専用メモリ
1008  フラッシュメモリ
1009  通信インターフェース
1010  送受信機
1012  ハードウェア
1013  ファームウェア
1018  ハプティックフィードバック回路
1100  広告掲示板
1101、1102、1103、1104  領域
1121  ボール
1401〜1407  アクト
1411〜1421  アクト
1431〜1435  アクト
1517  バージョン
1518  画像
1519  画像
i  領域
Mi  メトリック
Qi  領域
t1  しきい値
【図１】
2015537325.tif 000013
【図２】
2015537325.tif 000014
【図３Ａ】
2015537325.tif 000015
【図３Ｂ】
2015537325.tif 000016
【図３Ｃ】
2015537325.tif 000017
【図３Ｄ】
2015537325.tif 000018
【図３Ｅ】
2015537325.tif 000019
【図３Ｆ】
2015537325.tif 000020
【図４Ａ】
2015537325.tif 000021
【図４Ｂ】
2015537325.tif 000022
【図５Ａ】
2015537325.tif 000023
【図５Ｂ】
2015537325.tif 000024
【図６Ａ】
2015537325.tif 000025
【図６Ｂ】
2015537325.tif 000026
【図７】
2015537325.tif 000027
【図８Ａ】
2015537325.tif 000028
【図８Ｂ】
2015537325.tif 000029
【図９】
2015537325.tif 000030
【図１０Ａ】
2015537325.tif 000031
【図１０Ｂ】
2015537325.tif 000032
【図１０Ｃ】
2015537325.tif 000033
【図１０Ｄ】
2015537325.tif 000034
【図１１Ａ】
2015537325.tif 000035
【図１１Ｂ】
2015537325.tif 000036
【図１１Ｃ】
2015537325.tif 000037
【図１２Ａ】
2015537325.tif 000038
【図１２Ｂ】
2015537325.tif 000039
【国際調査報告】
2015537325.tif 000040
2015537325.tif 000041
2015537325.tif 000042
2015537325.tif 000043