システム概要
本開示の実施形態を用いて、ユーザによる、所与のアプリケーション(例えば、マシンビジョンアプリケーション)の光学式文字認識パラメータのセットアップを支援することが可能である。一般に、アプリケーションに応じてOCRパラメータをセットアップすることは極めて困難であり、特に、新規ユーザにとっては困難である。例えば、ユーザがOCR文字列の周囲に領域を描画し、セグメンテーションプロセスがそれらの文字を正しく見つけない場合、ユーザは、その後どうするのが最良なのかわからない場合がある。そこで、本明細書に開示の実施形態を用いることにより、ユーザによるOCRパラメータのセットアップを、可能な限り自動的に支援することが可能である。本明細書に開示の実施形態は、OCR用セグメンテーションパラメータの選択に対するインタラクティブ/インクリメンタルなアプローチを含む。本明細書に開示の実施形態は又、セグメンテーション結果の均一性をチェックする機能と、特定の構成がその均一性を侵害する場合にはその構成を自動的に拒否する機能とを含む。本明細書に開示の実施形態は又、良好な文字の特定の統計的特性に基づく、セグメンテーションパラメータの自動選択を可能にする。
図1を参照すると、コンピュータ12に常駐可能であってコンピュータ12によって実行可能なイメージングプロセス10が示されており、コンピュータ12は、ネットワーク14(例えば、インターネット又はローカルエリアネットワーク)に接続可能である。コンピュータ12は、例えば、単一のサーバコンピュータ、一連のサーバコンピュータ、単一のパーソナルコンピュータ、一連のパーソナルコンピュータ、ミニコンピュータ、メインフレームコンピュータ、又はコンピューティングクラウドであってよいが、これらに限定されない。コンピュータ12の各種コンポーネントは、1つ以上のオペレーティングシステムを実行することが可能であり、それらは、例えば、Microsoft Windows Server(商標)、Novell Netware(商標)、Redhat Linux(商標)、Unix、又はカスタムオペレーティングシステムであってよいが、これらに限定されない。
イメージングプロセス10の命令セット及びサブルーチンは、コンピュータ12に結合された記憶装置16に記憶させることが可能であり、コンピュータ12に含まれる1つ以上の処理装置(図示せず)と1つ以上のメモリアーキテクチャ(図示せず)とによって実行可能である。記憶装置16は、ハードディスクドライブ、フラッシュドライブ、テープドライブ、光学式ドライブ、RAIDアレイ、ランダムアクセスメモリ(RAM)、又は読み出し専用メモリ(ROM)であってよいが、これらに限定されない。
ネットワーク14は、1つ以上の2次ネットワーク(例えば、ネットワーク18)に接続可能であり、例えば、ローカルエリアネットワーク、ワイドエリアネットワーク、又はイントラネットであってよいが、これらに限定されない。
イメージングプロセス10には、クライアントアプリケーション22、24、26、28を介してアクセス可能である。クライアントアプリケーション22、24、26、28は、例えば、標準的なウェブブラウザ、カスタマイズされたウェブブラウザ、又はカスタムアプリケーションであってよいが、これらに限定されない。クライアントアプリケーション22、24、26、28の命令セット及びサブルーチンは、クライアント電子機器38、40、42、44に(それぞれ)結合された記憶装置30、32、34、36に(それぞれ)記憶させることが可能であり、クライアント電子機器38、40、42、44に(それぞれ)組み込まれた1つ以上の処理装置(図示せず)及び1つ以上のメモリアーキテクチャ(図示せず)によって実行可能である。
記憶装置30、32、34、36は、例えば、ハードディスクドライブ、フラッシュドライブ、テープドライブ、光学式ドライブ、RAIDアレイ、ランダムアクセスメモリ(RAM)、及び読み出し専用メモリ(ROM)であってよいが、これらに限定されない。クライアント電子機器38、40、42、44は、例えば、パーソナルコンピュータ38、ラップトップコンピュータ40、スマートフォン42、ノートブックコンピュータ44、サーバ(図示せず)、データ対応セルラ電話(図示せず)、及び専用ネットワーク機器(図示せず)であってよいが、これらに限定されない。
クライアントアプリケーション22、24、26、28のうちの1つ以上を、イメージングプロセス10の機能の一部又は全てを実行するように構成してよい。従って、イメージングプロセス10は、純粋なサーバサイドアプリケーション、又は純粋なクライアントサイドアプリケーション、又は、クライアントアプリケーション22、24、26、28及びイメージングプロセス10のうちの1つ以上によって協調的に実行される、ハイブリッドサーバサイド/クライアントサイドアプリケーションであってよい。
ユーザ46、48、50、52は、コンピュータ12及びイメージングプロセス10には、ネットワーク14から直接、又は2次ネットワーク18からアクセスすることが可能である。更に、コンピュータ12は、点線のリンク線54で示されるように、2次ネットワーク18経由でネットワーク14に接続することが可能である。
ネットワーク14(又はネットワーク18)には、様々なクライアント電子機器を直接又は間接的に結合することが可能である。例えば、パーソナルコンピュータ38は、有線ネットワーク接続により、ネットワーク14と直接結合されているように図示されている。更に、ノートブックコンピュータ44は、有線ネットワーク接続により、ネットワーク18と直接結合されているように図示されている。ラップトップコンピュータ40は、ラップトップコンピュータ40と、ネットワーク14と直接結合されているように図示された無線アクセスポイント(即ち、WAP)58との間に確立された無線通信チャネル56により、ネットワーク14と無線結合されているように図示されている。WAP58は、例えば、ラップトップコンピュータ40とWAP58との間に無線通信チャネル56を確立することが可能な、IEEE 802.11a、802.11b、802.11g、Wi−Fi、及び/又はBluetoothの機器であってよい。スマートフォン42は、スマートフォン42と、ネットワーク14と直接結合されているように図示されたセルラネットワーク/ブリッジ62との間に確立された無線通信チャネル60により、ネットワーク14と無線結合されているように図示されている。
当該技術分野において知られているとおり、全てのIEEE 802.11x規格では、パス共有の為に、イーサネットプロトコル及びキャリア検知多重アクセス衝突回避(即ち、CSMA/CA)を用いることが可能である。各種の802.11x規格では、例えば、位相シフトキーイング(即ち、PSK)変調又は相補コードキーイング(即ち、CCK)変調を用いることが可能である。当該技術分野において知られているとおり、Bluetoothは、短距離無線接続を用いて、例えば、携帯電話、コンピュータ、及びスマートフォンの相互接続を可能にする電気通信業界規格である。
クライアント電子機器38、40、42、44は、それぞれがオペレーティングシステムを実行することが可能であり、そのオペレーティングシステムは、例えば、Apple iOS(商標)、Microsoft Windows(商標)、Android(商標)、Redhat Linux(商標)、又はカスタムオペレーティングシステムであってよいが、これらに限定されない。
次に図2を参照すると、イメージングプロセス10において使用されるように構成された、マシンビジョンシステム100を表す一例示的実施形態が示されている。代替実施形態においては、本開示の範囲から逸脱することなく、様々なシステム実装を採用できることに注目されたい。後で詳述するように、本明細書に記載のイメージングプロセス10の実施形態は、主に、所与の文字列に関連付けられた1つ以上の文字に対するセグメンテーションパラメータを自動的に調整することに用いることが可能である。本明細書に記載のイメージングプロセスは、検査工程の間の任意の好適な時点で用いることが可能である。例えば、実施形態によっては、イメージングプロセスの局面は、ライブオブジェクト画像又はランタイムオブジェクト画像の全地球測位/位置決めをオブジェクトのモデル画像又はトレーニング画像に対して実施することに続いて、且つ、ランタイムオブジェクト又はランタイムフィーチャの検査前、検査中、又は検査後において、発生しうる。
実施形態によっては、マシンビジョンシステム100は、イメージングデバイス110を含んでよく、このイメージングデバイスは、マシンビジョンアプリケーション112を実行することが可能なオンボード処理装置(図示せず)及びメモリ(図示せず)を含むカメラであってよい。カメライメージングデバイス110が、基底オブジェクト120の検査中に検出された感知障害に応答できるように、カメライメージングデバイス110に、適切なインタフェース、アラーム、及び信号を取り付けたり、且つ/又は、接続したりしてよい。この実施形態では、複数のオブジェクト(120)を収容しているコンベヤ122が示されている。これらのオブジェクトは、検査工程において、イメージングデバイス110の所定の視野(FOV)内を順に通過することが可能である。従って、イメージングデバイス110は、観察される各オブジェクト120の少なくとも1つの画像を取得できる。
実施形態によっては、従来のマイクロコンピュータ130は、任意の好適なコンピューティング装置(例えば、図1に示されたコンピュータ12)であってよい。コンピュータ130は、グラフィカルユーザインタフェースコンポーネント(例えば、マウス132、キーボード134、及びディスプレイ136)を含んでよい。他のタイプのインタフェースを用いてもよく、例えば、代替実施形態では、携帯型情報端末(PDA)を用いてよい。実施形態によっては、イメージングデバイス110をコンピュータ130に常時接続してよく、特に、コンピュータが画像処理機能を実行する場合には、そうしてよい。更に、且つ/又は、代替として、イメージングデバイス(例えば、Insight(登録商標)の製品群におけるイメージングデバイス)内の処理装置は、リモートコンピュータとの相互接続に関わらず、デバイスの独立動作を可能にすることができる。この実施形態では、コンピュータ130は、イメージングデバイス110のセットアップ、テスト、及びランタイム動作の分析の為に、デバイスと接続し、且つ/又は、デバイスと通信することが可能である。
実施形態によっては、モデル画像又はトレーニング画像に関連するデータ140を、コンピュータ130との接続を介してディスク記憶装置142に記憶させたり、イメージングデバイス110のオンボードメモリに記憶させたりすることが可能である。このデータは、イメージングプロセス10に関連付けられたデータを含んでよく、本開示の1つ以上の実施形態に従って使用可能である。
更に図3を参照すると、又、後で詳述するように、イメージングプロセス10は、1つ以上の文字を含む文字列を有する画像を受け取るステップ(302)を含んでよい。イメージングプロセス10は又、上記1つ以上の文字のそれぞれを識別する文字列を受け取るステップ(304)を含んでよい。イメージングプロセス10は又、少なくとも1つのセグメンテーションパラメータを自動的に生成するステップ(306)を含んでよい。イメージングプロセス10は又、上記少なくとも1つのセグメンテーションパラメータを使用して、上記文字列を有する上記画像に対してセグメンテーションを実行するステップ(308)を含んでよい。イメージングプロセス10は又、セグメンテーション結果が1つ以上の条件を満たすかどうかを判定するステップ(310)と、上記セグメンテーション結果が上記1つ以上の条件を満たす場合には上記少なくとも1つのセグメンテーションパラメータを選択するステップ(312)と、を含んでよい。イメージングプロセス10は又、上記1つ以上のコンピューティング装置において上記画像の少なくとも一部分を表示するステップ(314)を含んでよい。
本明細書に開示の実施形態は、マシンビジョン検査に関連付けられた光学式文字認識の、コンピュータに実装される方法を対象としている。実施形態によっては、イメージングプロセス10は、既存のアプローチの制限の多くに対処するように構成されてよい。例えば、既存のアプローチの幾つかは、複数のフォントの事前トレーニングを行い、多くのフォントをテストして、どのフォントが正しいかを判定することをOCRツールに行わせることによって、セットアップの問題に対処する。その後、他のパラメータ(セグメンテーションパラメータ用の値など)を推定することが可能である。このアプローチには制限がある。即ち、選択されるフォントが完全に一致しない可能性があり、そのため、パラメータの選択が次善のものになる可能性がある。
図4を参照すると、イメージングプロセス10の一実施形態を表すフローチャート400が示されている。図4に示されるように、イメージングプロセス10は、自動セグメンテーション機能並びに自動調整機能を有するインクリメンタルプロセスを利用することが可能である。実施形態によっては、イメージングプロセス10は、ユーザがユーザからの最小限の情報でOCRツールを繰り返しセットアップすることを可能にできる。その最終結果は、構成及びトレーニングが完全に行われたOCRツールである。従って、図4に示されるように、イメージングプロセス10は、1つ以上の文字を含む文字列を有する画像402を受け取ることが可能である。イメージングプロセス10は、イメージングプロセス10を「OCRMaxを実行(Run OCRMax)」オプション404により続行するオプションをユーザに提供することが可能である。イメージングプロセス10は又、セグメンテーションに関連付けられたユーザ選択可能オプション406を提示することが可能である。実施形態によっては、このユーザ選択可能オプションは、セグメンテーションが正しいか正しくないかをユーザが示すことを可能にするように構成されてよい。セグメンテーションが正しい場合、ユーザは、クラシフィケーションが正しいか正しくないかを示すオプション408を提供されてよい。クラシフィケーションが正しい場合、イメージングプロセス10は、自動調整414に進むことが可能である(これについては後で詳述する)。クラシフィケーションが正しくない場合、ユーザは、文字列を指定するオプション420を提供されてよい。
実施形態によっては、セグメンテーションが正しくない場合、イメージングプロセス10は、自動セグメンテーション機能410(これについては後で詳述する)を提供することが可能である。自動セグメンテーションの後、ユーザは、セグメンテーション結果が正しかったかどうかをオプション412で示すオプションを提供されてよい。正しいセグメンテーションが見つかった場合、イメージングプロセス10は、自動調整414を進めることが可能である。正しいセグメンテーションが見つからない場合、ユーザは、画像が不良かどうかを識別するオプションを提供されてよい。その場合、イメージングプロセス10は、それぞれが追加文字列を有する1つ以上の追加画像を受け取ることが可能である。そうでない場合、イメージングプロセス10は、ユーザがセグメンテーションを手動で生成することを可能にするように構成されたユーザ選択可能オプション424をユーザに提供することが可能である。
実施形態によっては、イメージングプロセス10により、最初の文字列及び追加文字列の一方又は両方を少なくとも部分的に使用して、文字のデータベースを生成することが可能である。イメージングプロセス10が、文字列に対するセグメンテーションが正しいことの通知を受け取った後、関連付けられた、セグメンテーションパラメータの正しいセットを今後の使用に備えて記憶することが可能である。従って、イメージングプロセス10は、セグメンテーションパラメータの正しいセットを今後の文字列に適用することが可能である。次に、セグメンテーションパラメータの正しいセットを調整して、使用すべき最適なセグメンテーションパラメータ値を1つ見つけることが可能である。次に、新しいフォント文字を抽出することが可能であり、クラシファイアをトレーニング及び使用することが可能である。このようにして、イメージングプロセス10は、フォントが完全にトレーニングされて、現在のセグメンテーションパラメータが適正に動作しているという確信をユーザが得るまで、続行されてよい。これらのフォント及びセグメンテーションパラメータはコピー可能であり、自動調整プロセスは進めてよい。
実施形態によっては、イメージングプロセス10は、ユーザがOCRツールのセットアップ時に直面する可能性のある問題の多くに対処することが可能である。運用時に、ユーザが画像内の文字列の周囲に領域を描画し、デフォルトのセグメンテーションパラメータが正しく動作しない場合、普通のユーザであれば、正しいセグメンテーションの為にはどのパラメータを変更すべきかを判断するのに苦労する可能性がある。例えば、既存のシステムでは、セグメンテーションツールに様々なセグメンテーションパラメータが含まれている可能性があり、それらのそれぞれが手動による変更を必要とする可能性がある。図5に示された画像は、デフォルトのパラメータが複数の文字に対して正しくセグメンテーションを行うことに失敗した場合の一例を示している。
次に図6を参照すると、イメージングプロセス10に従って使用可能なグラフィカルユーザインタフェース600の一実施形態が示されている。運用時には、ユーザは、テキストフィールド602を使用して文字列を指定することが可能である。GUI600は、ユーザが自動セグメンテーション機能604を選択することによって自動セグメンテーションアルゴリズムを起動することを可能にできる。GUI600は又、ユーザが手動セグメンテーション機能606により手動セグメンテーションを実施することを可能にできる。
実施形態によっては、イメージングプロセス10に関連付けられた自動セグメンテーションアルゴリズムは、様々なセグメンテーションパラメータの組み合わせによって進めることが可能であり、且つ、文字列の長さと同じ数のセグメントを見つける複数のセグメンテーションパラメータ及びパラメータの組み合わせを探ることが可能である。これらのセグメンテーションパラメータについては、後で詳述する。本明細書に記載のように、少なくとも1つのセグメンテーションパラメータを文字列に適用するフレーズは、少なくとも1つのセグメンテーションパラメータを使用して、文字列の画像に対してセグメンテーションを実施することを意味する場合がある。
実施形態によっては、正しい数のセグメントを識別することに加えて、イメージングプロセス10は、文字列の不均一性に基づいて、特定の結果を拒否するように構成されてよい。例えば、複数の文字のASCII表現が与えられた場合、その文字列に、(例えば、狭いか、短いか、広い)特殊文字が含まれるかどうかを判定することが可能である。実施形態によっては、文字列に特殊文字が全く含まれない場合は、全ての領域の幅及び高さを同じサイズにする(又は所定の許容範囲内にする)必要があるが、その結果を拒否してもよい。文字列に特殊文字が含まれる場合は、個々の文字サイズが均一かどうかをチェックしてよい。不均一であり、拒否された結果の幾つかの例を、図7から図9に示す。
次に図10を参照すると、グラフィカルユーザインタフェース1000を表す一実施形態及び関連画像が示されている。従って、イメージングプロセス10に関連付けられた自動セグメンテーションアルゴリズムを実行して、図10に示されるように、おそらくは正しい1つ以上の結果を生成してユーザに示すことが可能である。運用時には、ユーザは、正しいと思われる1つの結果を選択し、GUI1000に関連付けられた「OK」アイコンを選択してよい。次に、アルゴリズムの第2の部分を進めてよい。このようにして、自動調整アルゴリズムは、この特定の画像に対して実行するのに最良且つ/又は最適なセグメンテーションパラメータを識別することが可能である。このモデルに現在のレコードを追加することが可能であり、それぞれの固有の文字を抽出することが可能であり、クラシフィケーションの為にフォントをトレーニングすることが可能である。図11に示された画像は、セグメンテーション及びクラシフィケーションが正しく行われた文字に対して、この操作の後にイメージングプロセス10を実行した結果を示している。
次に図12から図14を参照すると、グラフィカルユーザインタフェース1200から1400を表す実施形態が示されている。GUI1200は、この特定のフォントについて、イメージングプロセス10の間に抽出された文字を示している。セグメンテーションが次の画像に対して失敗した場合、ユーザは、図13から図14に示されるように、上述の操作のうちの1つ以上を繰り返すことが可能である。
次に図15から図16を参照すると、グラフィカルユーザインタフェース1500を表す実施形態が示されている。図15に示されるように、モデルに新しいレコードが追加されると、抽出されている最良のセグメンテーションパラメータは、新しいレコードだけでなく以前のレコードに対しても動作可能である。この例に示されるように、このフォントは、今や、図16に示された文字「−」を含んでいる。
実施形態によっては、イメージングプロセス10は、ユーザが特定の文字列を手動で編集することを可能にできる。この特定の例では、各領域の編集及び訂正を手動で行うと、自動セグメンテーションアルゴリズムが、それらの文字の確立された正しい領域に基づいて動作することが可能である。図17は、確立されたセグメンテーションパラメータによる正しいセグメンテーションが文字「8」に対して行われない場合の一例を示している。そこで、ユーザは、手動セグメンテーション機能1706を選択し、文字「8」の周囲の領域を調節することによって、図18に示されるように、文字全体を囲むことが可能である。「OK」を選択すると、各セグメントの正しい位置及びサイズが与えられた状態での自動セグメンテーションアルゴリズムの実行が可能になる。従って、イメージングプロセス10に関連付けられた自動セグメンテーションアルゴリズムは、セグメンテーションパラメータの様々な組み合わせを探り、これらを、図19から図20に示されるように、現在のレコードに対して適用することが可能である。(正しく、又は正しくなく)計算された各結果について、自動セグメンテーションアルゴリズムは、結果領域を、確立された正しい領域と比較することが可能である。
幾つかのありうるシナリオの1つとして、確立された正しい領域と結果領域との間の良好な一致を、ある許容範囲(例えば、デフォルトで80%の面積の重なり)において識別することが考えられるが、これには限定されない。この特定の例では、最小最大、画素数、幅、高さなど、多種多様な情報を、良好な要素として抽出することが可能である。インスタンスによっては、確立された正しい領域の中に存在しない領域が、結果の中に含まれてよい。この特定の例では、様々なデータを追加要素として抽出することが可能である。更に、且つ/又は、代替として、結果の中に存在しない領域が、確立された正しい領域の中に含まれてよい。この特定の例では、欠落している要素として、様々なデータを、黄金領域を用いて抽出し、良好な要素に追加することが可能である。更に、且つ/又は、代替として、この2者の間に不良な一致があってよい(例えば、重なる面積が許容範囲より少なくてもよい)。この特定の例では、確立された正しい領域を用いて、様々なデータを、良好な要素として抽出することが可能である。この統計データは、モデル内のレコードにある全ての統計データ(あれば)と組み合わせてよい。実施形態によっては、追加要素を排除して良好な要素を含むように、セグメンテーションパラメータを修正してよい。セグメンテーションパラメータの組み合わせによっては、全ての領域が、確立された正しい領域のそれと一致する結果が得られる可能性がある。最も良好に一致した結果を選択し、モデルに追加してよい。そして、最も正しいセグメンテーションパラメータを、フォント文字とともに抽出することが可能である。
実施形態によっては、モデル内のレコード数が増えるにつれ、モデル内のレコードの全ての文字を正常にクラシファイするのに最適な数のフォント文字を抽出することが可能になる。ある文字の第2のインスタンスが、トレーニングされた文字に対して変動が大きすぎる為に正しくクラシファイされない場合は、そのインスタンスをフォントに追加してよい。このようにして、ユーザは、自分のフォントが全てのレコードに対して動作することを確認することが可能である。
本明細書に記載のように、イメージングプロセス10は、1つ以上のセグメンテーションパラメータを含むことが可能である。幾つかのセグメンテーションパラメータには以下で説明するものが含まれてよいが、これらに限定されるものではなく、これらは、あくまで例として提示されており、網羅的な一覧であることを意図するものではない。
実施形態によっては、セグメンテーションパラメータは、極性を含んでよい。例えば、入力画像内の全ての文字の極性であってよい。
実施形態によっては、セグメンテーションパラメータは、例えば、行微調整モードを含んでよい。このモードは、使用すべき行微調整手法を指定することが可能である。行微調整モードは、クラシックモード又は標準であってよい。
実施形態によっては、セグメンテーションパラメータは、例えば、角度サーチ範囲を含んでよい。角度サーチ範囲は、度数では角度サーチ範囲の半分に対応してよい。これは、サーチ領域の角度に対して、行をサーチする範囲として使用される角度である。
実施形態によっては、セグメンテーションパラメータは、例えば、スキュー範囲を含んでよい。スキュー範囲は、度数ではスキューサーチ範囲の半分に対応してよい。これは、サーチ領域のスキューに対して、行をサーチすることが可能な範囲として使用されるスキューである。
実施形態によっては、セグメンテーションパラメータは、例えば、正規化モードを含んでよい。このモードは、入力画像を正規化することに用いる方法を指定することが可能である。これは、グローバル閾値処理、ローカル閾値処理、又はローカル高度に設定してよい。
実施形態によっては、セグメンテーションパラメータは、例えば、ストローク幅を含んでよい。ストローク幅は、画像の残り部分と同じストローク幅を有するように見えない全てのものを正規化画像から取り除くかどうかを指定することが可能である。これが有用になりうるのは、例えば、複数の文字が薄い縞状ノイズによって互いにつながっているように見える場合である。
実施形態によっては、セグメンテーションパラメータは、例えば、2値化閾値を含んでよい。2値化閾値は、正規化画像における、前景と背景との間を2値化する2値化閾値の計算に用いる修飾子を指定することが可能である。
実施形態によっては、セグメンテーションパラメータは、例えば、境界断片を含んでよい。境界断片は、サーチ領域のいずれかの境界に接触する断片があっても完全に無視するかどうかを指定することが可能である。
実施形態によっては、セグメンテーションパラメータは、断片画素数を含んでよく、例えば、文字断片が、文字に含まれうると見なされるべく有しうる前景(例えば、テキスト)画素の最小数を含んでよい。文字断片は、2値化画像内のブロブであってよい。
実施形態によっては、セグメンテーションパラメータは、例えば、文字がレポートされるべく有する必要がある前景(例えば、テキスト)画素の最小数を含んでよい。
実施形態によっては、セグメンテーションパラメータは、断片コントラスト閾値を含んでよく、例えば、断片が、文字に含まれうると見なされるべく、2値化閾値に対して有する必要がある(例えば、正規化画像グレーレベルでの)最小コントラスト量を含んでよい。
実施形態によっては、セグメンテーションパラメータは、文字高さを含んでよく、例えば、文字がレポートされるべく有する必要がある、文字のマーク矩形の最小高さ(画素数)を含んでよい。セグメンテーションパラメータは又、文字及び/又は文字行の最大高さを制限する為に最大文字高さ機能を使用するかどうかも含んでよい。セグメンテーションパラメータは又、文字のマーク矩形の最大許容可能高さ(画素数)も含んでよい。
実施形態によっては、セグメンテーションパラメータは、文字幅を含んでよく、例えば、文字がレポートされるべく有する必要がある、文字のマーク矩形の最小幅(画素数)を含んでよい。セグメンテーションパラメータは又、文字のマーク矩形の最大許容可能幅(画素数)も含んでよい。この値より幅広の文字があれば、広すぎない複数のピースに分割してよい。セグメンテーションパラメータは又、文字の最大幅を制限する為に最大文字幅機能を使用するかどうかも含んでよい。
実施形態によっては、セグメンテーションパラメータは、文字間ギャップを含んでよく、例えば、2つの文字の間に発生しうる最小ギャップサイズ(画素数)を含んでよい。2つの断片の間のギャップがこれより小さい場合、これらの断片は、同じ文字の一部と見なされなければならない。
実施形態によっては、セグメンテーションパラメータは、文字内ギャップを含んでよく、例えば、損傷した文字の場合であっても、1つの文字の中で発生しうる最大ギャップサイズ(画素数)を含んでよい。文字内ギャップが発生しうるのは、例えば、ドットマトリクス印刷における連続するドット列の間であり、或いは、かき傷によって損傷した活字の2つのピースの間である。この値より大きいギャップは、別々の2つの文字の間の区切りであると解釈できる。一方、この値以下のギャップは、別々の2つの文字の間の区切り、又は1つの文字の中のギャップのいずれかであると解釈できる。
実施形態によっては、セグメンテーションパラメータは、主行に対する断片距離を含んでよく、例えば、断片が文字の主行の外側に有しうる最大距離を、行高さの推定値に対するパーセンテージとして、含んでよい。
実施形態によっては、セグメンテーションパラメータは、文字断片マージモードを含んでよく、これは、例えば、「群(Group)」段階の間に2つの断片をマージして1つの文字にするかどうかを決定する為に使用されるモードを指定することが可能である。このモードは、「重なりが必要(requireOverlap)」に設定することが可能である(例えば、マージする文字断片同士は、水平方向に少なくとも1画素分重なっていなければならない)。このモードは又、「最小文字間ギャップを指定(specifyMinIntercharacterGap)」に指定することも可能である(例えば、間に水平方向のギャップがある文字断片同士をマージして複数の文字を形成することが可能である(但し、任意の2つの断片は、ギャップが「最小文字間ギャップ(minIntercharacterGap)」未満であればマージ可能である))。このモードは又、「ギャップを指定(specifyGaps)」に指定することも可能である(例えば、「最小文字間ギャップ(minIntercharacterGap)」及び「最大文字内ギャップ(maxIntracharacterGap)」の両方に基づいて2つの断片をマージする決定をすれば、間に水平方向のギャップがある文字断片同士をマージして複数の文字を形成することが可能である)。
実施形態によっては、セグメンテーションパラメータは、最小文字アスペクトを含んでよく、これは、例えば、幅広の文字を分割するかどうかを指定することが可能である。
実施形態によっては、セグメンテーションパラメータは、文字幅タイプを含んでよく、これは、例えば、フォントにおける文字の幅がどのように変動すると見込まれるかを指定することが可能である。なお、文字幅は、マーク矩形(例えば、インクの境界ボックス)の幅であり、(典型的にはマーク矩形の周囲のパディングを含むであろう)セル矩形の幅ではない。この幅タイプは、「不明(unknown)」、「固定(fixed)」、又は「可変(variable)」に設定することが可能である。
実施形態によっては、セグメンテーションパラメータは、解析モードを含んでよく、これは、例えば、「最小解析(minimal analysis)」を実施するか、「標準解析(standard analysis)」を実施するかを指定することが可能である。最小解析では、上述のパラメータに従って直接的なセグメンテーションを実施することが可能である。標準解析では、(例えば、文字間隔を含む)行全体の解析を実施して最適なセグメンテーションを決定する。
実施形態によっては、セグメンテーションパラメータは、ピッチメトリックを含んでよく、これは、例えば、文字の間隔(ピッチ)を指定することに用いることが可能である。なお、ピッチは、隣接する文字同士の(ほぼ)対応する場所の間の距離であり、1つの文字の末尾から次の文字の先頭までの距離(これは「文字間ギャップ(intercharacter gap)」と呼ばれる)ではない。これは、「未知(unknown)」、「左から左(leftToLeft)」、「中心から中心(centerToCenter)」、「右から右(rightToRight)」などに設定することが可能である。
実施形態によっては、セグメンテーションパラメータは、ピッチタイプを含んでよく、これは、例えば、個々のピッチ値がどのように変動すると見込まれるかを指定することが可能であり、ピッチ値は、ピッチメトリックで指定されるとおりに測定される。これは、「未知(unknown)」、「固定(fixed)」、「比例(proportional)」、又は「可変(variable)」に設定することが可能である。
実施形態によっては、セグメンテーションパラメータは、最小ピッチを含んでよく、これは、例えば、2つの文字の間で発生しうる最小ピッチを画素数で指定することが可能である(但し、ピッチは、ピッチメトリックで指定されるとおりに計算される)。
実施形態によっては、セグメンテーションパラメータは、空白挿入を含んでよく、これは、例えば、空白文字を他の文字間のギャップに挿入することの取り扱い方を指定することが可能である。これは、「空白無し(no space)」、「単一の空白(single space)」、又は「複数の空白(multiple spaces)」に設定することが可能である。
実施形態によっては、セグメンテーションパラメータは、空白文字の幅を含んでよく、これは、例えば、空白文字の最小幅を画素数で指定することが可能である。更に、且つ/又は、代替として、セグメンテーションパラメータは、空白文字の最大幅を含んでよく、これは、例えば、空白文字の最大幅を画素数で指定することが可能である。
実施形態によっては、セグメンテーションパラメータは、2つの文字断片が同じ文字の一部と見なされる為に必要な、2つの文字断片のx方向の重なり合いの最小フラクションを含んでよい。
実施形態によっては、セグメンテーションパラメータは、文字の最小許容可能アスペクトを含んでよい(但し、このアスペクトは、文字の行全体の高さを文字のマーク矩形の幅で割ったものとして定義される)。この値よりアスペクトが小さい文字(例えば、幅が広すぎる文字)は、幅が広すぎないピースに分割される。
実施形態によっては、イメージングプロセス10は、文字列が正しい場合のみ自動的にセグメンテーションを行い、不均一な結果は拒否するステップを含んでよい。イメージングプロセス10は又、与えられた文字列及び確立された正しい領域の文字のセグメンテーションを自動的に行うことが可能である。本明細書に記載のように、イメージングプロセス10は、モデルレコードにある所与のフォントをトレーニングするように構成されてよい。
実施形態によっては、イメージングプロセス10は、文字列の一例を含む新しい画像を受け取るステップと、その文字列の正しいセグメンテーション領域ではなく、その文字列の中の正しい文字を識別する文字列を受け取るステップと、を含んでよい。イメージングプロセス10は、その文字列の画像の可能なセグメンテーションを、セグメンテーションパラメータの様々なセットを用いて自動的に生成するように構成されてよい。イメージングプロセス10は、それぞれが候補セグメンテーションパラメータと関連している、文字列の中の可能な正しいセグメンテーションの中から選択することが可能であり、選択された、文字列の中の正しいセグメンテーションのセグメンテーションパラメータを光学式文字認識に使用することが可能である。
実施形態によっては、イメージングプロセス10は、文字列の一例を含む新しい画像を受け取るステップと、その文字列の正しいセグメンテーションではなく、その文字列の中の正しい文字を識別するステップと、を含んでよい。イメージングプロセス10は、セグメンテーションパラメータの候補セットと、その文字列の画像のセグメンテーション結果とを、自動的に生成することが可能である。イメージングプロセス10は、それぞれが候補セグメンテーションパラメータと関連している、文字列の中の可能な正しいセグメンテーションの中から選択することが可能であり、全ての候補結果をサーチし、それらのセグメンテーション領域を、ユーザが選択したもののセグメンテーション領域と比較し、特定パーセンテージ以内で同様の領域を生成するセグメンテーションパラメータを識別することが可能である。イメージングプロセス10は、見つかった全てのセグメンテーションパラメータに加えて、モデル内の文字列のセグメンテーションが正しい、選択された画像を記憶することが可能である。イメージングプロセス10は、セグメンテーションパラメータが一意に選択されるまで、又は最適に見つかるまで、上述の操作を繰り返すことが可能である。
実施形態によっては、イメージングプロセス10は、文字列の一例を含む新しい画像を受け取るステップと、その文字列の正しいセグメンテーションではなく、その文字列の中の正しい文字を識別するステップと、を含んでよい。イメージングプロセス10は、セグメンテーションパラメータの候補セットと、その文字列の画像のセグメンテーション結果とを、自動的に生成するように構成されてよい。イメージングプロセス10は、それぞれが候補セグメンテーションパラメータと関連している、文字列の中の可能な正しいセグメンテーションの中から選択することが可能である。上述の選択がいずれも正しくない場合、イメージングプロセス10は、文字列に対して正しいセグメンテーションを行い、その正しいセグメンテーションがなされた文字列に対してセグメンテーションパラメータを自動的に決定することが可能である。イメージングプロセス10は、見つかった全てのセグメンテーションパラメータに加えて、モデル内の文字列のセグメンテーションが正しい、選択された画像を記憶することが可能である。イメージングプロセス10は、セグメンテーションパラメータが一意に選択されるまで、又は最適に見つかるまで、上述の操作を繰り返すことが可能である。
実施形態によっては、イメージングプロセス10は、様々なセグメンテーションパラメータを試行するステップと、文字列の長さと同じ数のセグメントを有する結果を生成するステップと、を含んでよい。イメージングプロセス10は、文字列内の文字のASCII表現に対して、均一性基準を満たさない可能な結果を拒否することが可能である。イメージングプロセス10は、文字列の画像の可能なセグメンテーションのベクトルと、関連付けられた候補セグメンテーションパラメータとを生成することが可能である。
実施形態によっては、イメージングプロセス10は、既に見つかっている全てのセグメンテーションパラメータに加えて、文字列のセグメンテーションが正しい画像のベクトルを受け取ることが可能である。イメージングプロセス10は、既に見つかっている全てのセグメンテーションパラメータを試行し、文字列の長さと同じ数のセグメントを有する結果を生成することが可能である。イメージングプロセス10は、文字列内の文字のASCII表現に対して、均一性基準を満たさない可能な結果を拒否することが可能である。イメージングプロセス10は、文字列の画像の可能なセグメンテーションのベクトルと、関連付けられた候補セグメンテーションパラメータとを生成することが可能である。
実施形態によっては、イメージングプロセス10は、既に見つかっている全てのセグメンテーションパラメータに加えて、文字列のセグメンテーションが正しい画像のベクトルを受け取ることが可能である。イメージングプロセス10は、既に見つかっている全てのセグメンテーションパラメータを試行し、文字列の長さと同じ数のセグメントを有する結果を生成することが可能である。成功しないセグメンテーションパラメータがあった場合、イメージングプロセス10は、以前の実行の統計データを用いてパラメータを調節し、反復の形で再試行することが可能である。イメージングプロセス10は、文字列内の文字のASCII表現に対して、均一性基準を満たさない可能な結果を拒否することが可能である。イメージングプロセス10は、記憶されているセグメンテーションパラメータを、セグメンテーションが正しい画像のベクトルに適用し、失敗したものを拒否することが可能である。イメージングプロセスは、文字列の画像の可能なセグメンテーションのベクトルと、関連付けられた候補セグメンテーションパラメータとを生成することが可能である。
実施形態によっては、イメージングプロセス10は、文字列のセグメンテーションが正しい画像のベクトルを受け取ることが可能である。イメージングプロセス10は、文字列のセグメンテーションが正しい画像のベクトルから、セグメンテーションパラメータの範囲を抽出することが可能である。幾つかの例として、文字幅、高さ、断片及び文字の画素数、文字間ギャップ、文字内ギャップなどの範囲が挙げられるが、これらに限定されない。イメージングプロセス10は、抽出された範囲の中で様々なセグメンテーションパラメータを試行し、文字列の長さと同じ数のセグメントを有する結果を生成することが可能である。イメージングプロセス10は、文字列内の文字のASCII表現に対して、均一性基準を満たさない可能な結果を拒否することが可能である。イメージングプロセス10は、記憶されているセグメンテーションパラメータを、セグメンテーションが正しい画像のベクトルに適用し、失敗したものを拒否することが可能である。イメージングプロセス10は、文字列の画像の可能なセグメンテーションのベクトルと、関連付けられた候補セグメンテーションパラメータとを生成することが可能である。
実施形態によっては、イメージングプロセス10は、文字列の一例を含む画像と、その文字列内の正しい文字と、その文字列の正しいセグメンテーションと、に対して、可能なセグメンテーションパラメータを自動的に生成するように構成されてよい。このようにして、イメージングプロセス10は、文字列の正しいセグメンテーションから、セグメンテーションパラメータの範囲を抽出することが可能である。幾つかの例として、文字幅、高さ、画素数、ピッチ、及び文字間ギャップの範囲が挙げられるが、これらに限定されない。イメージングプロセス10は、抽出された範囲の中で様々なセグメンテーションパラメータを試行し、文字列の正しいセグメンテーションの領域とほぼ(例えば、特定パーセンテージ以内で)一致する領域を有する結果だけを保持することが可能である。イメージングプロセス10は、文字列の画像の正しいセグメンテーションのベクトルと、関連付けられた正しいセグメンテーションパラメータとを生成することが可能である。
実施形態によっては、イメージングプロセス10は、既に見つかっている全てのセグメンテーションパラメータに加えて、文字列のセグメンテーションが正しい画像のベクトルを受け取るように構成されてよい。イメージングプロセス10は、既に見つかっている全てのセグメンテーションパラメータを試行し、文字列の正しいセグメンテーションの領域とほぼ(例えば、特定パーセンテージ以内で)一致する領域を有する結果だけを保持することが可能である。イメージングプロセス10は、文字列の画像の可能なセグメンテーションのベクトルと、関連付けられた候補セグメンテーションパラメータとを生成することが可能である。
実施形態によっては、イメージングプロセス10は、既に見つかっている全てのセグメンテーションパラメータに加えて、文字列のセグメンテーションが正しい画像のベクトルを受け取るように構成されてよい。イメージングプロセス10は、文字列の正しいセグメンテーションから、セグメンテーションパラメータの範囲を抽出するように構成されてよい。幾つかの例として、文字幅、高さ、画素数、ピッチ、及び文字間ギャップの範囲が挙げられるが、これらに限定されない。イメージングプロセス10は、既に見つかっている全てのセグメンテーションパラメータを、様々な解析及び正規化モード、前景閾値、幅タイプなどを追加することによって拡張することが可能である。イメージングプロセス10は、セグメンテーションパラメータを拡張し、文字列の正しいセグメンテーションの領域とほぼ(例えば、特定パーセンテージ以内で)一致する領域を有する結果だけを保持することが可能である。イメージングプロセス10は、文字列の画像の可能なセグメンテーションのベクトルと、関連付けられた候補セグメンテーションパラメータとを生成することが可能である。
実施形態によっては、イメージングプロセス10は、既に見つかっている全てのセグメンテーションパラメータに加えて、文字列のセグメンテーションが正しい画像のベクトルを受け取ることが可能である。イメージングプロセス10は、文字列の正しいセグメンテーションから、セグメンテーションパラメータの範囲を抽出するように構成されてよい。幾つかの例として、文字幅、高さ、画素数、ピッチ、及び文字間ギャップの範囲が挙げられるが、これらに限定されない。イメージングプロセス10は、既に見つかって拡張されている全てのセグメンテーションパラメータを試行し、文字列の正しいセグメンテーションの領域とほぼ(例えば、特定パーセンテージ以内で)一致する領域を有する結果だけを保持することが可能である。成功しないセグメンテーションパラメータがあった場合、イメージングプロセス10は、以前の実行の統計データを用いてパラメータを調節し、反復の形で再試行することが可能である。イメージングプロセス10は、記憶されているセグメンテーションパラメータを、セグメンテーションが正しい画像のベクトルに適用し、失敗したものを拒否することが可能である。イメージングプロセス10は、文字列の画像の可能なセグメンテーションのベクトルと、関連付けられた候補セグメンテーションパラメータとを生成することが可能である。
実施形態によっては、イメージングプロセス10は、文字列のセグメンテーションが正しい画像のベクトルを受け取ることが可能である。イメージングプロセス10は、文字列の正しいセグメンテーションから、セグメンテーションパラメータの範囲を抽出するように構成されてよい。幾つかの例として、文字幅、高さ、画素数、ピッチ、及び文字間ギャップの範囲が挙げられるが、これらに限定されない。イメージングプロセス10は、文字列のセグメンテーションが正しい画像のベクトルから、セグメンテーションパラメータの範囲を抽出するように構成されてよい。幾つかの例として、文字幅、高さ、断片及び文字の画素数、文字間ギャップ、文字内ギャップなどの範囲が挙げられるが、これらに限定されない。イメージングプロセス10は、抽出された範囲の中で様々なセグメンテーションパラメータを適用し、文字列の正しいセグメンテーションの領域とほぼ(例えば、特定パーセンテージ以内で)一致する領域を有する結果だけを保持することが可能である。イメージングプロセス10は、記憶されているセグメンテーションパラメータを、セグメンテーションが正しい画像のベクトルに適用し、失敗したものを拒否することが可能である。イメージングプロセス10は、文字列の画像の可能なセグメンテーションのベクトルと、関連付けられた候補セグメンテーションパラメータとを生成することが可能である。
実施形態によっては、イメージングプロセス10は、セグメンテーションアルゴリズムの以前の実行の統計データを用いてセグメンテーションパラメータを自動的に調節するステップを含んでよい。イメージングプロセス10は、文字列の一例を含む新しい画像を受け取るステップと、その文字列の正しいセグメンテーションではなく、その文字列の中の正しい文字を識別するステップと、を含んでよい。イメージングプロセス10は、セグメンテーションパラメータセットを供給し、セグメンテーションアルゴリズムを適用し、セグメンテーションがなされた領域の数を文字列の長さと比較することが可能である。セグメンテーションがなされた領域の数が文字列の長さより少ない場合、イメージングプロセス10は、拒否された要素をより多く含むように、セグメンテーションパラメータを調節することが可能である。セグメンテーションがなされた領域の数が文字列の長さより多い場合は、保持された要素をより多く排除するように、セグメンテーションパラメータを調節することが可能である。イメージングプロセス10は、最大反復回数にわたって、又は、同じ数のセグメントが見つかるまで、上述の操作の一部又は全てを繰り返すことが可能である。
実施形態によっては、イメージングプロセス10は、文字列の一例を含む新しい画像を受け取るステップと、その文字列の中の正しい文字、並びにその文字列の正しいセグメンテーションを識別するステップと、を含んでよい。イメージングプロセス10は、セグメンテーションパラメータセットを供給し、セグメンテーションアルゴリズムを適用し、セグメンテーションがなされた領域を正しいセグメンテーションの領域と比較することが可能である。幅、高さ、画素数、断片画素数、コントラストなどを含む統計データは、セグメントごとに抽出可能である。欠落しているセグメント(例えば、特定の場所において結果に存在しないセグメント)の統計データは、収集して群にすることが可能である。正しいセグメント(例えば、良好に重なり合うセグメント)の統計データは、この群に追加することが可能である。不良な結果(例えば、あまり良好に重ならない結果)の統計データは、文字列の正しいセグメンテーションから抽出し、群に追加することが可能である。追加セグメント(例えば、上記特定の場所において文字列の正しいセグメンテーションに存在しないセグメント)の統計データは、別個に収集することが可能である。セグメンテーションパラメータは、追加セグメントを排除し、その他の全てのセグメントを含むように調節することが可能である。イメージングプロセス10は、最大反復回数にわたって、又は、正しいセグメンテーションが見つかるまで、上述の操作の1つ以上を反復的に繰り返すことが可能である。
次に図21から図43を参照すると、イメージングプロセス10に関連付けられた様々なグラフィカルユーザインタフェースを表す実施形態が示されている。なお、本明細書に記載の様々な実施形態は、イメージングプロセス10の一般的概要を提示することを意図したものであり、具体的なグラフィカルユーザインタフェースは、例としてのみの提示であって、いかなる形でも本開示の範囲を限定することを意図したものではない。
実施形態によっては、現在の画像がロードされている場合、イメージングプロセス10は、実行されて、セグメンテーション及びクラシフィケーションの結果を正常なものとして表示することが可能である。セグメンテーション領域が正しいように見えない場合、ユーザは、文字列を入力してから、セグメンテーションを修正することを選択してよく、これに応じて、結果がユーザに返される。ユーザは、正しい結果を選択する。そして、ユーザは、現在のレコードを「自動調整モデル(Auto−Tune Model)」に追加するボタンを選択してよい。ユーザは、別の画像をロードしてよい。セグメンテーションがなされた領域が正しく、文字が正しくクラシファイされている場合、ユーザには、変更(セグメンテーションパラメータ、又はセグメンテーションパラメータとフォント)を受け入れるオプションが与えられてよい。
実施形態によっては、現在の画像がロードされている場合、イメージングプロセス10は、実行されて、セグメンテーション及びクラシフィケーションの結果を正常なものとして表示することが可能である。セグメンテーション領域が正しいように見えない場合、ユーザは、文字列を入力してから、セグメンテーションを修正することを選択してよく、これに応じて、結果がユーザに返される。ユーザは、正しい結果を選択する。そして、ユーザは、現在のレコードを「自動調整モデル(Auto−Tune Model)」に追加するボタンを選択してよい。ユーザは、別の画像をロードしてよい。セグメンテーションがなされた領域は正しいものの、文字が正しくクラシファイされていない場合、ユーザは、文字列を指定してから、クラシフィケーションを修正して結果を「自動調整モデル(Auto−Tune Model)」に追加することを選択してよい。ユーザは、別の画像をロードしてよい。セグメンテーションがなされた領域が正しく、文字が正しくクラシファイされている場合、ユーザには、変更(セグメンテーションパラメータ、又はセグメンテーションパラメータとフォント)を受け入れるオプションが与えられてよい。
実施形態によっては、現在の画像がロードされている場合、イメージングプロセス10は、実行されて、セグメンテーション及びクラシフィケーションの結果を正常なものとして表示することが可能である。セグメンテーション領域が正しいように見えない場合、ユーザは、文字列を入力してから、セグメンテーションを修正することを選択してよく、これに応じて、結果がユーザに返される。ユーザは、正しい結果を選択する。そして、ユーザは、現在のレコードを「自動調整モデル(Auto−Tune Model)」に追加するボタンを選択してよい。ユーザは、別の画像をロードしてよい。セグメンテーションがなされた領域が正しくない場合、ユーザは、新しい領域を指定することなく、上述のステップの一部又は全てを繰り返してよい。その後、ユーザは、別の画像をロードしてよい。領域が正しく、文字が正しくクラシファイされている場合、ユーザは、変更(セグメンテーションパラメータ、又はセグメンテーションパラメータとフォント)を受け入れることを選択してよい。
実施形態によっては、現在の画像がロードされている場合、イメージングプロセス10は、実行されて、セグメンテーション及びクラシフィケーションの結果を正常なものとして表示することが可能である。セグメンテーション領域が正しいように見えない場合、ユーザは、文字列を入力してから、セグメンテーションを修正することを選択してよく、これに応じて、結果がユーザに返される。結果が正しくなく、セグメンテーション領域を調節する必要がある場合、ユーザは、セグメンテーション領域を調節してから、そのレコードを「自動調整モデル(Auto−Tune Model)」に追加することを選択してよい。ユーザは、別の画像をロードしてよい。そして、領域が正しく、文字が正しくクラシファイされている場合、ユーザは、変更(セグメンテーションパラメータ、又はセグメンテーションパラメータとフォント)を受け入れることを決定してよい。
実施形態によっては、現在の画像がロードされている場合、イメージングプロセス10は、実行されて、セグメンテーション及びクラシフィケーションの結果を正常なものとして表示することが可能である。セグメンテーション領域が正しいように見えない場合、ユーザは、文字列を入力してから、セグメンテーションを修正することを選択してよく、これに応じて、結果がユーザに返される。ユーザは、正しい結果を選択してから、このレコードを「自動調整モデル(Auto−Tune Model)」に追加することを決定してよい。その後、ユーザは、別の画像をロードしてよい。そして、セグメンテーションがなされた領域が正しく、文字が正しくクラシファイされている場合、ユーザは、「拒否(Reject)」ボタンを選択することにより、自動調整パラメータを拒否してよい。
実施形態によっては、現在の画像がロードされている場合、イメージングプロセス10は、実行されて、セグメンテーション及びクラシフィケーションの結果を正常なものとして表示することが可能である。セグメンテーション領域が正しいように見えない場合、ユーザは、文字列を入力してから、セグメンテーションを修正することを選択してよく、これに応じて、結果がユーザに返される。ユーザは、正しい結果を選択してから、このレコードを「自動調整モデル(Auto−Tune Model)」に追加することを選択してよい。ユーザは、別の画像をロードしてよい。セグメンテーションがなされた領域が正しく、文字が正しくクラシファイされている場合、ユーザは、自動調整プロセスを完了する時間がないと判断する可能性があり、そこで、自動調整データを保存する為の「保存(Save)」ボタンが設けられてよい。
実施形態によっては、現在の画像がロードされている場合、イメージングプロセス10は、実行されて、セグメンテーション及びクラシフィケーションの結果を正常なものとして表示することが可能である。セグメンテーション領域が正しいように見えない場合、ユーザは、文字列を入力してから、セグメンテーションを修正することを選択してよく、これに応じて、結果がユーザに返される。ユーザは、正しい結果を選択してから、このレコードを「自動調整モデル(Auto−Tune Model)」に追加するボタンをヒットしてよい。ユーザは、別の画像をロードしてよい。そして、セグメンテーション領域が正しいように見えない場合、ユーザは、文字列を入力してから、セグメンテーションを修正することを選択してよい。この結果は、ユーザに返されてよい。ユーザは、正しい結果を選択してから、このレコードを「自動調整モデル(Auto−Tune Model)」に追加することを選択してよい。ここで、「自動調整モデル(Auto−Tune Model)」内の最初のレコードが新しいセグメンテーションパラメータで失敗した場合、ユーザは、「自動調整モデル(Auto−Tune Model)」内の最後の「自動調整レコード(Auto−Tune Record)」を選択してから、「削除(Delete)」ボタンを選択してよい。「自動調整モデル(Auto−Tune Model)」は、自動的に再調整されてよく、新しいセグメンテーションパラメータが計算される。ユーザは、別の画像をロードしてよい。セグメンテーションがなされた領域が正しく、文字が正しくクラシファイされている場合、ユーザは、変更(セグメンテーションパラメータ、又はセグメンテーションパラメータとフォント)を受け入れることを選択してよい。
次に図21を参照すると、ユーザが「自動調整(Auto−Tuning)」モードにある場合、イメージングプロセス10の実施形態は、普通に実行されて、セグメンテーション及びクラシフィケーションを実施してよい。従って、イメージングプロセス10は、セグメンテーション及びクラシフィケーションのグラフィックスを、図21に示されるように表示する。セグメンテーション領域又はクラシフィケーションが正しくない場合は、ユーザが「自動調整(Auto−Tuning)」モードにあるときの挙動が変化する。「自動調整(Auto Tuning)」は、図22に示されるように、ボタン又は他の好適なオプションを介して開始されてよい。図23に示されるように、ユーザが診断グラフィックスを見たい場合、ユーザは、表示中の情報に応じて、様々に着色された矩形で満たされた画像を見ることになる。例えば、図23に示されるように、拒否された断片の周囲の領域は、黄色で表示されてよく、文字の主線は青色で表示されてよい(図示せず)。図24は、拒否された文字を示している。更に、且つ/又は、代替として、図25に示されるように、保持された断片の周囲の領域は、シアンで表示されてよく、文字の主線は青色で表示されてよい。本開示の範囲から逸脱しない範囲で、他の様々な構成や方法を用いてよい。
実施形態によっては、イメージングプロセスは、新しい「診断(Diagnostics)」タブにおいては、「行データ(Line Data)」、「保持された断片(Kept Fragments)」、「拒否された断片(Rejected Fragments)」、「保持された文字(Kept Characters)」、及び「拒否された文字(Rejected Characters)」に関連する情報をユーザに対して表示することが可能である。例えば、「行データ(Line Data)」は、「角度(Angle)」、「スキュー(Skew)」、「最小/最大文字間ギャップ(画素数)(Min/Max Inter Char Gap (pixels))」、「最小/最大文字内ギャップ(画素数)(Min/Max Intra Char Gap (pixels))」、「最小/最大ピッチ(Min/Max Pitch)」などであってよいが、これらに限定されない。「保持された断片(Kept Fragments)」は、「最小/最大サイズ(画素数)(Min/Max Size (pixels))」、「最小/最大コントラスト(%)(Min/Max Contrast (%))」、「主線までの最大距離(%)(MaxDistanceToMainLine (%))」などであってよいが、これらに限定されない。「拒否された断片(Rejected Fragments)」は、「最小/最大サイズ(画素数)(Min/Max Size (pixels))」、「最小/最大コントラスト(%)(Min/Max Contrast (%))」、「主線までの最大距離(%)(MaxDistanceToMainLine (%))」などであってよいが、これらに限定されない。「保持された文字(Kept Characters)」は、「最小/最大文字幅(画素数)(Min/Max Char Width (pixels))」、「最小/最大文字高さ(画素数)(Min/Max Char Height (pixels))」、「最小/最大文字サイズ(画素数)(Min/Max Char Size (pixels))」などであってよいが、これらに限定されない。「拒否された文字(Rejected Characters)」は、「最小/最大文字幅(画素数)(Min/Max Char Width (pixels))」、「最小/最大文字高さ(画素数)(Min/Max Char Height (pixels))」、「最小/最大文字サイズ(画素数)(Min/Max Char Size (pixels))」などであってよいが、これらに限定されない。
次に図26を参照すると、グラフィカルユーザインタフェース2600を表す実施形態が示されている。インタフェース2600は、診断テキストデータが表示されるタブを含んでよい。実施形態によっては、表示すべき診断グラフィックスを指定する為のドロップダウンメニューを追加してよい。実施形態によっては、「診断を表示(Show Diagnostics)」ドロップダウンメニューは、「表示(Show)」ドロップダウンメニューとの組み合わせで動作可能である。プロパティシート内において、「診断を表示(Show Diagnostics)」が「全てを隠す(hide all)」以外の何かに設定されている場合は、診断グラフィックスだけが表示されてよい。プロパティシートの内側において、「診断を表示(Show Diagnostics)」が「全てを隠す(hide all)」に設定されている場合は、通常のグラフィックスが表示されてよい。プロパティシートの外側において、「表示(Show)」ドロップダウンプロパティが「全てを表示(Show All)」又は「結果グラフィックスのみ(result graphics only)」に設定されている場合は、「診断を表示(Show Diagnostics)」の設定内容にかかわらず、通常のグラフィックスが表示される。プロパティシートの外側において、「表示(Show)」ドロップダウンが「全てを隠す(hide all)」に設定されている場合は、グラフィックスは、ユーザがプロパティシートを開いたときに表示されるグラフィックスである。
本明細書に記載のイメージングプロセスの実施形態は、様々なタイプのクラシフィケーションアルゴリズムを用いてよい。これらのクラシフィケーションアルゴリズムの幾つかは、文字をクラシファイする為の基本的なクラシフィケーションアルゴリズム、基本的な妥当性検査ルーチンが後に続く、文字をクラシファイする為の基本的なクラシフィケーションアルゴリズム、アグレッシブ且つ簡素化されたアルゴリズムによる、文字をクラシファイする為の基本的なクラシフィケーションアルゴリズムなどであってよいが、これらに限定されない。実施形態によっては、様々なデフォルトのクラシフィケーションアルゴリズムを用いてよい。例えば、図27に示される「追加の文字妥当性検査をスキップする(Skip Additional Character Validation)」チェックボックスから、特定のモードを選択してよい。実施形態によっては、ジョブファイルのバージョンがファームウェアより古い場合、ファームウェアは、特定のパラメータに基づいてクラシフィケーションを自動的に設定する。更に、且つ/又は、代替として、ジョブファイルのバージョンがファームウェアより新しい場合、ファームウェアは、適切なパラメータに基づいてクラシフィケーションを自動的に設定する。
実施形態によっては、「自動調整モード(Auto−Tuning Mode)」において、運用中にセグメンテーション及びクラシフィケーションの両方を実施することが可能である。その後、ユーザは、画像がロードされてプロセスが実行されるたびにクラシフィケーションを実施しないオプションを追加したい場合がある。「自動調整(Auto−Tuning)」が完了し、セグメンテーションパラメータ、又はセグメンテーションパラメータとトレーニングが良好であるとユーザが考えた場合、ユーザは、これらの変更をコミットしてよい。
本開示の実施形態は、様々なライブラリ、及びこれらのライブラリと通信している関連ファームウェアを利用してよい。本明細書に記載のイメージングプロセスは、様々な情報を1つ以上のグラフィカルユーザインタフェースに表示するように構成されてよい。従って、ライブラリから特定のユーザインタフェースに情報をレポートする幾つかのメッセージがあってよい。例えば、このメッセージは、「自動調整(Auto−Tune)」モデル内の各レコードに関するレコード情報を特定のユーザインタフェースに送り、そのインタフェースは、この情報を表示するように構成されてよい。更に、且つ/又は、代替として、幾つかのメッセージは、自動調整グラフィックス及び画像を、特定の表示用ユーザインタフェースに送るように構成されてよい。幾つかのメッセージは、「自動調整(Auto−Tune)」セッションを終了させるように構成されてよく、ライブラリが計算したセグメンテーションパラメータを、その後の、ユーザに対する表示の為に更新することが可能である。
実施形態によっては、ユーザは、「自動調整(Auto−Tune)」機能を開始させてよく、1つ以上の画像を使用してトレーニングを行ってよい。ユーザは、各画像について、文字のセグメンテーション及びクラシフィケーションが正しく行われたかどうかを決定してよい。正しく行われていない場合は、失敗画像のトレーニングが行われ、アルゴリズムは、画像のセグメンテーションを正しく行うセグメンテーション設定と、既にトレーニングされた画像とを見つける。トレーニングを行う画像の数が多いほど、「自動調整(Auto−Tune)」アルゴリズムの信頼度及び精度を高めることが可能である。ユーザが満足した時点で、新しいセグメンテーション設定を適用してよく、新しくトレーニングされた文字により、フォントを更新してよい。「自動調整(Auto−Tune)」プロセス中に文字をトレーニングすることには多くの利点があり、それらは、ユーザが画像セットを2回(1回はセグメンテーション、もう1回は文字のトレーニング)繰り返す必要がないこと、又、調整プロセスから得られたセグメンテーションパラメータを使用して文字のトレーニングを自動的に行うことが可能な為に読み取り精度が向上することなどであるが、これらに限定されない。
本明細書で用いている「文字のセグメンテーション(Character Segmentation)」という語句は、検査領域内の各文字の境界(上端、左端、下端、右端)を見つけるプロセス又は動作を意味するものであってよい。文字のセグメンテーションは、本明細書に記載の1つ以上のアルゴリズムを用いて実施されてよい。「自動調整レコード(Auto−Tune Record)」という語句は、画像、トレーニング文字列、及び画像内の文字のユーザ確認済み場所からなるものであってよい。「自動調整モデル(Auto−Tune Model)」という語句は、ゼロ個以上の「自動調整レコード(Auto−Tune Records)」と、全てのレコードの正しいセグメンテーションを最良に行う構成設定との集合を意味するものであってよい。
本明細書に記載のように、「自動調整(Auto−Tuning)」の概念は、最適セグメンテーションパラメータを識別する為の誘導プロセスを意味するものであってよい。セグメンテーションパラメータは、このプロセスの完了後に更新されてよい。実施形態によっては、自動調整プロセスは、複数の画像が成功することを必要とする。ユーザインタフェースは、画像を取得し、結果を評価するプロセスにおいてユーザを誘導するように構成されてよい。従って、ユーザに膨大な数の結果を提示して、そこから選択させるべきではない。結果は、それぞれ別々でなければならず、量的に制限されていなければならない。ユーザに対しては、作業結果を失わないように、「自動調整(Auto−Tune)」セッションをディスクに保存することを促さなければならない。最後に保存されたセッションは、ユーザインタフェースによって自動的に復元することが可能である。
実施形態によっては、「自動調整(Auto−Tune)」プロセスは、大量のCPUリソース及びメモリリソースを必要とする可能性がある。プロセスが完了し、設定及びフォントが更新されたら、それらのリソースは不要になり、解放されてよい。実施形態によっては、リソースを可能な限り早急に解放することが重要である。「自動調整(Auto−Tune)」プロセスが完了したら(即ち、ユーザが設定を受け入れるか、キャンセルしたら)、全ての「自動調整(Auto−Tune)」リソースが解放されてよい。リソース間の情報(例えば、トレーニングされた画像など)は、複数のセッションにまたがっては保持されない。所要時間が2秒を超えると見込まれる操作の場合は、プログレスバーが表示されてよい。プログレスフィードバック(47%完了)は利用できない為、プログレスバーは、操作が依然アクティブであることを単純に示すだけである。操作をキャンセルするメカニズムは設けられないであろう。
実施形態によっては、トレーニング中に、ユーザは、プロパティシート又は設定パネルから「自動調整(Auto−Tune)」を押す。ユーザは、「自動調整(Auto−Tune)」ダイアログが提示され、新しい画像を取得することが可能である。次にユーザは、新しい画像のトレーニングを行うか、別のステップにアクセスするか、「OK」を選択して終了することが可能である。新しいセグメンテーションパラメータが更新され、フォントが更新される。
実施形態によっては、画像を自動文字セグメンテーションによってトレーニングした場合に、ユーザは、その画像のセグメンテーションがうまく行われなかったと判断する可能性があり、その場合は、トレーニング文字列を入力してよい。ユーザは、「自動セグメンテーション(Auto−Segment)」ボタンを選択してよい。ユーザは、ステータスバーを提示され、「自動セグメンテーション(Auto−Segment)」が完了するのを待つ。ユーザは、「自動セグメンテーション(Auto−Segment)」結果の一覧が提示され、各結果をクリックして評価することが可能である。結果を選択することにより、画像上のセグメンテーションマーキングを更新することが可能である。ユーザは、最良の結果を選択し、「OK」を選択する。新しい「自動調整レコード(Auto−Tune Record)」が作成され、この新しい「自動調整(Auto−Tune)」設定により、画像が更新される。この新しくトレーニングされた文字により、フォントが更新される。
実施形態によっては、画像を手動文字セグメンテーションによってトレーニングした場合に、ユーザは、その画像のセグメンテーションがうまく行われなかったと判断する可能性がある。その場合、ユーザは、トレーニング文字列を入力して、「手動セグメンテーション(Manual−Segment)」ボタンを選択してよい。「自動調整(Auto−Tune)」ダイアログは隠され、表示コントロールに、トレーニング文字列内の各文字の編集可能領域が提示される。そして、ユーザは、各領域の位置決め及びサイズ調整を行ってよい。ユーザは、ツールバー上の「OK」をクリックする(又は、画像をダブルクリックする)。次に、ユーザは、ステータスバーを提示されて、セグメンテーション設定が見つかるのを待つことが可能である。プロセスが完了すると、ステータスバーは閉じる。新しい「自動調整レコード(Auto−Tune Record)」が作成され、この新しい「自動調整(Auto−Tune)」設定により、画像が更新される。この新しくトレーニングされた文字により、フォントが更新される。
実施形態によっては、ユーザは、画像は良好にセグメンテーションがなされているが、文字が誤識別されたと判断する可能性がある。その場合、ユーザは、トレーニング文字列を入力して、「フォントをトレーニング(Train Font)」ボタンをクリックする。この新しくトレーニングされた文字により、フォントが更新される。
実施形態によっては、ユーザは、画像は良好にセグメンテーションがなされており、且つ、文字が正しく識別されたと判断する可能性がある。これは、他の画像との違いが顕著でないテスト画像である。ユーザアクションは不要である。
実施形態によっては、ユーザは、画像は良好にセグメンテーションがなされており、且つ、文字が正しく識別されたと判断する可能性がある。ユーザは、これが、「自動調整(Auto−Tuning)」時に考慮されるべき重要な画像であると判断し、「レコードを作成(Create Record)」ボタンを選択してよい。現在の画像及び現在のセグメンテーション領域を用いて、新しい「自動調整レコード(Auto−Tune Record)」が作成される。
実施形態によっては、「自動調整(Auto−Tune)」は、ツール内のセグメンテーションパラメータを設定し、任意選択で文字の再トレーニングを行う複数画像プロセスである。「自動調整(Auto−Tune)」プロセスがアクティブである間、ユーザは、画像をロードし、各画像についての結果を評価することを求められる。ユーザは、文字のセグメンテーションが正しく行われたかどうか、並びに、文字の識別が正しく行われたかどうかを、視覚的に判断する。文字のセグメンテーション又は識別が正しく行われていない場合、「自動調整(Auto−Tune)」アルゴリズムは、訂正を行うことを試行する。プロセスが進むほど、結果の信頼度及び精度が高くなる。ユーザが満足した時点で、新しいセグメンテーション設定が適用され、新しくトレーニングされた文字により、フォントが更新される。
実施形態によっては、「自動調整(Auto−Tune)」プロセスは、複数の画像にまたがる。ユーザは、「自動調整(Auto−Tune)」ダイアログを閉じることなく、画像をロードし、検査領域を調節することが可能であってよい。本明細書に記載の実施形態は、「自動調整(Auto−Tune)」ダイアログを閉じることなく、画像を、再生コントロールから、又はディスクから、又はライブ取得により、ロードする方法をユーザに提供することが可能である。実施形態は又、「自動調整(Auto−Tune)」ダイアログを閉じることなく、ビルトイン領域を編集する方法をユーザに提供することも可能である。
実施形態によっては、「自動調整(Auto−Tune)」プロセスがアクティブである間に、ユーザは、各画像における文字セグメンテーションを評価する。文字のセグメンテーションが正しく行われていない場合、「自動調整(Auto−Tune)」アルゴリズムは、訂正を行うことを試行する。「自動調整(Auto−Tune)」プロセスは、処理対象テキストについての情報を要求することが可能であり、何らかの性能(速度及び精度)調節を提供する。
本明細書に開示の実施形態は、幾つかの「自動調整(Auto−Tune)」オプションをユーザに提供することが可能である。幾つかのオプションは、以下のものを含んでよいが、これらに限定されない。「ロックされたパラメータの一覧(Locked Parameter List)」。これは、「自動調整(Auto−Tune)」で修正してはならないセグメンテーションパラメータのセットを指定することが可能である。デフォルトでは、どのパラメータもロックされていない。「画像分解能(Image Resolution)」。例えば、文字は、フル分解能又はサブサンプル分解能でのセグメンテーションが可能である。デフォルト値を設定してよい。「結果の数(Number of Results)」。これは、生成してユーザに提示する候補結果の最大数を特定することが可能である。「パラメータのステップ数(Parameter Steps)」。例えば、各セグメンテーションパラメータについて試行される反復の回数である。パラメータが自動的にロックされるのは、関連付けられたツール入力が「リンク(Links)」タブ内でリンクされている場合である。
実施形態によっては、現在の画像のセグメンテーションが正しく行われない場合、ユーザは、「自動セグメンテーション(Auto−Segment)」アルゴリズムの実行を選択してよい。「自動セグメンテーション(Auto−Segment)」アルゴリズムは、現在の画像のセグメンテーションを正しく行うセグメンテーション構成の一覧と、「自動調整レコード(Auto−Tune Records)」の一覧にある画像とを検索して返す。返された構成の一覧は、ユーザに提示され、ユーザは、当該文字の最良のセグメンテーションを行う構成を選択する。満足な構成がユーザによって選択された場合は、その検証結果が新しい「自動調整レコード(Auto−Tune Record)」として記憶され、選択された構成は、その後の画像のセグメンテーションに使用される。更に、この新しくトレーニングされた文字により、フォントが更新される。満足な構成がない場合、ユーザは、「自動セグメンテーション(Auto−Segment)」入力を修正して「自動セグメンテーション(Auto−Segment)」機能を再実行するか、又は、当該文字の手動セグメンテーションをグラフィカルに行うことを選択してよい。
本明細書に開示の実施形態は、「自動セグメンテーション(Auto−Segment)」動作を開始するコマンドをユーザに提供することが可能である。これは、明示的なコマンドでなくてよい。即ち、ユーザが現在の画像においてセグメンテーションをどのように格付けするかに応じて起動されて良い。ユーザは、トレーニング文字列を提供しなければならない。
本明細書に開示の実施形態は、「自動セグメンテーション(Auto−Segment)」プロセスが進行中であること、並びに全てが良好であることをユーザに情報伝達するステータスインジケータを提供することが可能である。更に、且つ/又は、代替として、本明細書に開示の実施形態は、ユーザが文字のセグメンテーションを手動で行った後に、進行中の自動セグメンテーション動作をキャンセルする方法を提供することが可能である。キャンセルが完了したら、ユーザはインタラクティブグラフィックス表示に戻らなければならず、セグメンテーショングラフィックスは、ユーザが配置した場所にある。
本明細書に開示の実施形態は、「自動セグメンテーション(Auto−Segment)」結果から最良のセグメンテーション構成を選択するオプションをユーザに提供することが可能である。
更に、且つ/又は、代替として、実施形態によっては、候補構成ごとに、セグメンテーション結果を現在の画像と照合して視覚的に評価する手段をユーザに提供することが可能である。
現在の画像のセグメンテーションが正しく行われず、「自動セグメンテーション(Auto−Segment)」結果が満足なものでない場合、ユーザは、当該文字の手動セグメンテーションをグラフィカルに行うことを選択してよい。手動で配置された領域は、新しい「自動調整レコード(Auto−Tune Record)」に記憶させてよい。手動で配置された領域に適合するセグメンテーション構成を見つける為に、「自動セグメンテーション(Auto−Segment)」ルーチンを内部的に実行してよい。ユーザによって提供される領域に基づいて、最良の構成を自動的に選択することが可能であり、ユーザは、構成の一覧から選択する必要がない。この新しくトレーニングされた文字により、フォントを更新してよい。
更に、且つ/又は、代替として、本明細書に開示の実施形態は、ユーザが各セグメンテーション領域を手動で位置決めすることを可能にできる。ユーザは、各文字の位置、サイズ、角度、及びスキューを設定することが可能でなければならない。領域の数は、トレーニング文字列によって決定されてよく、システムは、ユーザが文字領域を追加したり除去したりすることを可能にしなくてもよい。
実施形態によっては、ツールが構成を検索中であること、プロセスが進行中であること、並びに、全てが良好であることをユーザに情報伝達するステータスインジケータを提供するように構成されてよい。更に、且つ/又は、代替として、実施形態によっては、ユーザが文字のセグメンテーションを手動で行った後に、進行中の検索動作をキャンセルする方法を提供することが可能である。キャンセルが完了したら、ユーザはインタラクティブグラフィックス表示に戻らなければならず、セグメンテーショングラフィックスは、ユーザが配置した場所にある。
前述のように、実施形態によっては、「自動調整(Auto−Tune)」プロセス中に文字のトレーニングが行われる。フォントトレーニングは、「自動セグメンテーション(Auto−Segment)」コマンドの後に自動的に実施される。フォントトレーニングは又、セグメンテーションが良好であるのに文字が誤識別される場合には、ユーザによって開始されてよい。フォントトレーニングのオプションは、いずれの場合にも当てはまる。
本明細書に開示の実施形態は、トレーニング済み文字の管理方法に関する特定の情報を必要とする場合があり、幾つかのフォントトレーニングオプションをユーザに提供することが可能であり、そのようなオプションとして、トレーニング対象文字のインスタンスの数を制限することが可能な「文字当たりの最大インスタンス(Maximum Instances per Character)」があるが、これに限定されない。本明細書に開示の実施形態は又、「自動セグメンテーション(Auto−Segment)」コマンドを実行することなく文字の再トレーニングを行うオプションをユーザに提供することが可能である。ユーザは、トレーニング文字列を提供しなければならず、「自動調整レコード(Auto−Tune Record)」が作成される。「自動調整モデル(Auto−Tune Model)」データは、後でエクスポート及び復元されてよい。これにより、ユーザは、ベース画像のセットのトレーニングを行うことが可能であり、そして、後で、新たな問題画像に遭遇したときに、データセットに追加することが可能である。ユーザは、保存先又はロード元の場所を選択することが可能になる。ユーザは、任意の好適なコンピューティング装置の、ユーザが指定する場所においてアクティブセッションを継続できるようにされてよい。ユーザは、保存先の場所を選択することが可能になる。ユーザは又、以前に保存されたセッションを復元して、現在のアクティブセッションを上書きすることができるようにされてよい。ユーザは、ロード元の場所を選択することが可能になる。場合によっては、ユーザは、現在進行中のものを破棄して「自動調整(Auto−Tune)」プロセスを最初からやり直したい場合がある。ユーザは、「自動調整モデル(Auto−Tune Model)」を新しい空の状態にリセットできるようにされてよい。
実施形態によっては、「自動調整レコード(Auto−Tune Records)」は、典型的には、トレーニング動作中に自動的に作成される。レコードの作成に使用された画像が低品質であった為に「自動調整(Auto−Tune)」メカニズムにおいて問題を引き起こしている場合は、そのレコードを削除することが有用である可能性がある。レコードは、ユーザによる閲覧が可能である。レコード内の画像は、2つの方法でマーキングすることが可能であり、それらは、トレーニング済みのセグメンテーション領域によりマーキングする方法と、現在のセグメンテーション設定を使用して生成されたセグメンテーション領域によりマーキングする方法である。現在のセグメンテーション設定が、レコード画像のトレーニングに使用された設定よりも高い精度でレコード画像のセグメンテーションを行う場合、ユーザは、現在のセグメンテーション結果でレコードを更新することを選択してよい。
実施形態によっては、そのレコードの作成に使用された画像に、検証済み(トレーニング時)セグメンテーション領域によるマーキングを施して、ユーザに提供することが可能である。実施形態は、そのレコードの作成に使用された画像に、現在の設定を使用して生成されたセグメンテーション領域によるマーキングを施して、ユーザに提供することが可能である。ユーザは、そのレコードの作成に使用されたテキストを提示されてよい。
実施形態によっては、ユーザは、「自動調整レコード(Auto−Tune Record)」を削除したり、且つ/又は、現在のセグメンテーション結果で更新したりしてよい。更に、且つ/又は、代替として、「自動調整(Auto−Tune)」ダイアログは、以下のオプションをユーザに提供することが可能である。「OK」−「全てをコミット(Commit All)」。この場合、ユーザは、ダイアログを閉じて、セグメンテーションパラメータ及びトレーニング済みフォント文字を受け入れるオプションを有することが可能である。セグメンテーションパラメータはコピーされ、フォントは、トレーニング済み文字で更新される。
次に図28から図29を参照すると、本開示の教示と整合するグラフィカルユーザインタフェースの実施形態が示されている。この特定の例では、図28に示されたプロパティシート上の「自動調整(Auto−Tune)」ボタンにより、自動調整機能を起動することが可能である。更に、且つ/又は、代替として、図29に示されるように、「外部設定(External Settings)」セルが参照されているときは、「自動調整(Auto−Tune)」ボタンは無効にされてよい。
次に図30から図31を参照すると、ツールバーグラフィカルユーザインタフェースを描いた本開示の実施形態が示されている。ツールバーコマンドは、画像取得コマンド、検査領域編集コマンド、エクスポートコマンド、インポートコマンド、クリアモデルコマンドなどであってよいが、これらに限定されない。「OK」ボタン又は「キャンセル(Cancel)」ボタンを押すと、「自動調整(Auto−Tune)」ダイアログが閉じられる。「OK」が選択されると、変更が関連セルに対してコミットされる。
次に図32から図34を参照すると、実施形態によっては、1つ以上のタブページが含まれてよい。これらのタブページは、(図32に示された)「自動調整(auto−tune)」、「設定(settings)」、「レコード(records)」、「フォント(font)」などであってよいが、これらに限定されない。「自動調整(auto−tune)」タブは、自動セグメンテーションコマンド、手動セグメンテーションコマンド、及びフォントトレーニングコマンドを設けることが可能である。「設定(settings)」タブは、自動調整設定へのアクセスと、フォントトレーニングオプションへのアクセスとを提供することが可能である。「レコード(Records)」タブは、図33に示された「レコードを表示(view records)」、「レコードを削除(delete records)」、及び「レコードを更新(update records)」を設けることが可能である。実施形態によっては、「レコードを表示(View Record)」ボタンを選択すると、以下のモーダルダイアログが開く。これは、レコードの表示、並びにレコードの更新を考慮したものである。
図35から図36に示されるように、プロセスが進行中の場合は、モーダルポップアップウィンドウが表示される。これは、自動セグメンテーションの進行状況、構成検索の進行状況、自動セグメンテーションのキャンセルの進行状況、及び構成検索のキャンセルの進行状況を提供することが可能である。
実施形態によっては、図34に示された「レコードを表示(view record)」オプションを選択するとモーダルダイアログが生成されてよく、このダイアログは、当該レコードの表示及び/又は更新を考慮したものであってよい。図37は、そのような構成を示すグラフィカルユーザインタフェース3700を表している。図37に示されるように、グラフィカルユーザインタフェース3700は、「トレーニング済み(trained)」機能及び「現在の設定(current settings)」機能の両方を含んでよく、それぞれ表示可能である。現在の結果を保存するオプションも提供されてよい。
図38から図39に示されるように、実施形態によっては、「自動セグメンテーション(Auto−Segment)」プロセスが完了すると、モデルダイアログが表示される。このダイアログは、ユーザが最良のセグメンテーション構成を選択することを可能にするものであってよい。「結果を編集(Edit Result)」ボタンが選択されると、ユーザは、現在の選択を開始点として、文字セグメントグラフィックスを手動で編集することが可能になる。「OK」ボタンが選択されると、「自動調整(Auto−Tune)」モデルが現在の選択に基づいて更新され、ダイアログが閉じられる。「OK」ボタンが有効化されるのは、一覧内の1つのアイテムが選択されている場合だけである。
実施形態によっては、文字セグメントを手動で編集する際に、平行四辺形グラフィックスを用いてよい。この平行四辺形グラフィックスは、幾つかの機能を含んでよい。例えば、移動機能により、マウスを平行四辺形の内側の中に置くと、カーソルが標準的な移動カーソル(4つの矢印)に変わる。このグラフィックスをクリックしてドラッグすると、平行四辺形を移動させることができる。例えば、サイズ変更機能により、マウスを平行四辺形の辺の上に置くと、カーソルが標準的なサイズ変更カーソル(2つの矢印)に変わる。この辺をクリックしてドラッグすると、平行四辺形のサイズを変更することができる。例えば、スキュー機能により、マウスを平行四辺形の左上コーナー上に置くと、カーソルが標準的なクロスヘアカーソルに変わる。このポイントをクリックしてドラッグすることにより、平行四辺形の内角を変更することができる。例えば、回転機能により(図40を参照)、マウスを、平行四辺形の底辺にある回転アイコンの上に置くと、マウスカーソルが回転カーソルに変わる。このポイントをクリックしてドラッグすることにより、平行四辺形の回転を修正することができる。キーボード編集が可能になる。既存の「移動(Move)」、「サイズ変更(Resize)」、及び「回転(Rotate)」の各モードに加えて、「スキュー(Skew)」モードが利用可能である。「スキュー(Skew)」モードでは、図41に示されるように、平行四辺形の内角を1度刻みで(左矢印で−1度、右矢印で+1度)調節する。平行四辺形の底辺と左辺との間の角度(度)が、上矢印の先端に描画される。
次に図42を参照すると、本開示の実施形態と整合するグラフィカルユーザインタフェース4200が示されている。この特定の例では、「セグメンテーション(segmentation)」タブに、「セルにエクスポート(Export to Cell)」というユーザ選択可能ボタンが含まれてよい。このエクスポートコマンドが無効化されてよいのは、図43に示されるように、「外部設定(External Settings)」参照が既に設定されている場合である。
自動調整ではメモリ及び処理装置が多用されることが一因となり、自動調整機能は、「自動調整(Auto−Tune)」セッションの範囲内で実現可能である。セッションの終了時にメモリが解放され、結果は、コミットされるか、破棄される。セッションは、ほぼ完全に内部実装細部であり、ユーザにはさらされなくてよい。ユーザに対する影響は、中間トレーニングデータ(例えば、「自動調整レコード(Auto−Tune Records)」がセッション間で保存されないことである。セッションデータは、ユーザによってインポート及びエクスポートされてよい。本明細書に開示の実施形態は、いずれかの「自動調整(Auto−Tune)」機能を実施する前に新たな「自動調整(Auto−Tune)」セッションを開始することが可能である。この動作は、ユーザに対して透過的であってよく、「自動調整(Auto−Tune)」ダイアログが開いているときに自動的に実施されてよい。本明細書に開示の実施形態は、全てのアクティブな「自動調整(Auto−Tune)」セッションを終了することが可能である。この動作は、ユーザに対して透過的であってよく、「自動調整(Auto−Tune)」ダイアログが閉じているときに自動的に実施されてよい。
本方法は又、1つ以上のコンピューティング装置を使用して、セグメンテーション結果が1つ以上の条件を満たすかどうかを、閾値又は最適値に設定されている条件に基づいて判定するステップを含んでよい。本方法は又、1つ以上のコンピューティング装置を使用して、最初の文字列及び追加の文字列の一方又は両方を少なくとも部分的に用いて、文字のデータベースを生成するステップを含んでよい。本方法は又、1つ以上のコンピューティング装置を使用して、正しいセグメンテーションパラメータセットを有する文字列についての、正しいセグメンテーションの通知を受け取るステップを含んでよい。本方法は又、1つ以上のコンピューティング装置を使用して、正しいセグメンテーションパラメータセットを第2の文字列に適用するステップを含んでよい。実施形態によっては、識別するステップは、ASCII均一性基準に合致しているかどうかを識別するステップを含んでよい。
操作は又、1つ以上のコンピューティング装置を使用して、セグメンテーション結果が1つ以上の条件を満たすかどうかを、閾値又は最適値に設定されている条件に基づいて判定するステップを含んでよい。操作は又、1つ以上のコンピューティング装置を使用して、最初の文字列及び追加の文字列の一方又は両方を少なくとも部分的に用いて、文字のデータベースを生成するステップを含んでよい。本方法は又、1つ以上のコンピューティング装置を使用して、正しいセグメンテーションパラメータセットを有する文字列についての、正しいセグメンテーションの通知を受け取るステップを含んでよい。本方法は又、1つ以上のコンピューティング装置を使用して、正しいセグメンテーションパラメータセットを第2の文字列に適用するステップを含んでよい。実施形態によっては、識別するステップは、ASCII均一性基準に合致しているかどうかを識別するステップを含んでよい。実施形態によっては、少なくとも1つのセグメンテーションパラメータは、極性、行微調整、角度サーチ範囲、スキューサーチ範囲、正規化モード、ストローク幅、2値化閾値、境界断片、画素数、コントラスト閾値、文字高さ、文字幅、文字間ギャップ、文字内ギャップ、文字断片距離、文字断片マージモード、幅広文字分割、最小文字アスペクト、文字幅タイプ、解析モード、ピッチメトリック、ピッチタイプ、最小ピッチ、空白挿入、空白スコアリング、空白文字の最小幅、及び空白文字の最大幅のうちの1つ以上を含んでよい。
1つ以上の処理装置は更に、それぞれが追加文字列を有する少なくとも1つの追加画像を受け取るように構成されてよい。1つ以上の処理装置は更に、最初の文字列及び追加文字列の一方又は両方を少なくとも部分的に使用して、文字のデータベースを生成するように構成されてよい。1つ以上の処理装置は更に、正しいセグメンテーションパラメータセットを有する文字列についての、正しいセグメンテーションの通知を受け取るように構成されてよい。1つ以上の処理装置は更に、正しいセグメンテーションパラメータセットを第2の文字列に適用するように構成されてよい。実施形態によっては、識別するステップは、ASCII均一性基準に合致しているかどうかを識別するステップを含んでよい。実施形態によっては、少なくとも1つのセグメンテーションパラメータは、極性、行微調整、角度サーチ範囲、スキューサーチ範囲、正規化モード、ストローク幅、2値化閾値、境界断片、画素数、コントラスト閾値、文字高さ、文字幅、文字間ギャップ、文字内ギャップ、文字断片距離、文字断片マージモード、幅広文字分割、最小文字アスペクト、文字幅タイプ、解析モード、ピッチメトリック、ピッチタイプ、最小ピッチ、空白挿入、空白スコアリング、空白文字の最小幅、及び空白文字の最大幅のうちの1つ以上を含んでよい。
当業者であれば理解されるように、本開示は、方法、システム、又はコンピュータプログラム製品として実施されてよい。従って、本開示は、全体がハードウェアである実施形態、全体がソフトウェアである実施形態(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)、又は、本明細書においては全てがまとめて「回路」、「モジュール」、又は「システム」と称せられてよい、ソフトウェアの側面とハードウェアの側面とを併せ持つ実施形態の形態をとるものであってよい。更に、本開示は、コンピュータで使用可能な記憶媒体において、コンピュータで使用可能なプログラムコードが実施されている、コンピュータで使用可能な記憶媒体上のコンピュータプログラム製品の形態をとるものであってよい。
任意の好適な、コンピュータで使用可能な、又はコンピュータ可読な媒体が利用可能である。コンピュータで使用可能な、又はコンピュータ可読な媒体は、例えば、電子式、磁気式、光学式、電磁式、赤外線式、又は半導体式のシステム、装置、デバイス、又は伝搬媒体であってよいが、これらに限定されない。コンピュータ可読媒体のより具体的な例(非網羅的な一覧)として、1つ以上のワイヤを有する電気的接続、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、消去可能プログラム可能読み出し専用メモリ(EPROM又はフラッシュメモリ)、光ファイバ、ポータブルコンパクトディスク読み出し専用メモリ(CD−ROM)、光学式記憶装置、インターネット又はイントラネットをサポートする伝送媒体のような伝送媒体、又は磁気記憶装置などが挙げられる。なお、コンピュータで使用可能な、又はコンピュータ可読な媒体は、プログラムが印刷される紙又は他の好適な媒体であってもよい。なぜなら、プログラムは、(例えば、紙又は他の媒体の光学式走査により)電子的に取り込んで、コンパイルし、解釈し(又は、必要であれば他の好適な方法で処理し)、コンピュータメモリに記憶させることが可能だからである。本文書の文脈では、コンピュータで使用可能な、又はコンピュータ可読な媒体は、命令を実行するシステム、装置、又はデバイスによって使用されるべく、又はこれらと接続されて、プログラムを格納、記憶、伝達、伝搬、又は搬送することが可能な任意の媒体であってよい。コンピュータで使用可能な媒体は、この媒体によって実施される、コンピュータで使用可能なプログラムコードを、ベースバンドで、又は搬送波の一部分として有する伝搬データ信号を含んでよい。コンピュータで使用可能なプログラムコードは、任意の適切な媒体により伝送されてよく、そのような媒体として、インターネット、有線、光ファイバケーブル、RFなどがあるが、これらに限定されない。
本開示の操作を実施する為のコンピュータプログラムコードは、Java、Smalltalk、C++などのオブジェクト指向プログラミング言語で書くことが可能である。しかしながら、本開示の操作を実施する為のコンピュータプログラムコードは、「C」プログラミング言語や同様のプログラミング言語のような、従来の手続き型プログラミング言語でも書くことが可能である。プログラムコードは、全体をユーザのコンピュータで実行することが可能であり、或いは、一部をスタンドアロンソフトウェアパッケージとしてユーザのコンピュータで実行し、一部をユーザのコンピュータで実行し、一部をリモートコンピュータで実行することが可能であり、或いは、全体をリモートコンピュータ又はサーバで実行することが可能である。後のシナリオでは、リモートコンピュータは、ローカルエリアネットワーク(LAN)又はワイドエリアネットワーク(WAN)経由でユーザのコンピュータと接続されてよく、或いは、(例えば、インターネットサービスプロバイダを使用してのインターネット経由で)外部コンピュータに接続されてよい。
本開示は、以下に、本開示の実施形態による方法、装置(システム)、及びコンピュータプログラム製品のフローチャート図及び/又はブロック図を参照して説明されている。当然のことながら、フローチャート図及び/又はブロック図の各ブロック、並びに、フローチャート図及び/又はブロック図におけるブロックの組み合わせは、コンピュータプログラム命令によって実装可能である。これらのコンピュータプログラム命令は、汎用コンピュータ、専用コンピュータ、又は他のプログラマブルデータ処理装置の処理装置に与えられてよく、それによって、これらのコンピュータプログラム命令が、コンピュータ又は他のプログラマブルデータ処理装置の処理装置によって実行されて、フローチャート図及び/又はブロック図の1つ以上のブロックで指定される機能/動作を実装する手段を生成するようなマシンが生成されてよい。
これらのコンピュータプログラム命令は又、コンピュータ又は他のプログラマブルデータ処理装置に対し、特定の様式で機能するように指示することが可能なコンピュータ可読メモリに記憶されてよく、この特定の様式は、そのコンピュータ可読メモリに記憶されたそれらのコンピュータプログラム命令によって、フローチャート図及び/又はブロック図の1つ以上のブロックで指定される機能/動作を実装する命令手段を含む製造物が生産されるような様式であってよい。
これらのコンピュータプログラム命令は又、一連の操作ステップをコンピュータ又は他のプログラマブルデータ処理装置で実行させるべく、コンピュータ又は他のプログラマブルデータ処理装置にロードされてもよく、それによって、それらのコンピュータプログラム命令がコンピュータ又は他のプログラマブルデータ処理装置で実行されて、フローチャート図及び/又はブロック図の1つ以上のブロックで指定される機能/動作を実装するステップを提供するような、コンピュータ実装プロセスが生成されてよい。
図面中のフローチャート図及びブロック図は、本開示の様々な実施形態によるシステム、方法、及びコンピュータプログラム製品の可能な実装のアーキテクチャ、機能、及び動作を表している。この点において、フローチャート図又はブロック図内の各ブロックは、指定された論理機能を実装する為の1つ以上の実行可能命令を含む、モジュール、セグメント、又はコードの一部分を表すものであってよい。又、代替実装によっては、ブロック内に記された各機能は、図面内に記された順序に従わずに実行されてよいことにも注意されたい。例えば、連続して図示されている2つのブロックが、実際にはほぼ同時に実行される場合があり、或いは、これらのブロックが、関連する機能によっては、逆の順序で実行される場合もある。又、ブロック図及び/又はフローチャート図の各ブロック、並びに、ブロック図及び/又はフローチャート図におけるブロックの組み合わせは、指定された機能又は動作を実行する、専用のハードウェアベースのシステム、又は、専用のハードウェア及びコンピュータ命令の組み合わせによって実装されてよいことにも注意されたい。
本明細書で使用されている術語は、特定の実施形態を説明することのみを目的としており、本開示を限定することを意図したものではない。本明細書において使用されているように、単数形「a」、「an」、及び「the」は、文脈上明らかに他の意味を示している場合を除き、複数形も同様に含むものとする。更に、語句「含む(「comprises」及び/又は「comprising」)」は、本明細書において使用された場合に、述べられた機能、整数、ステップ、操作、要素、及び/又は構成要素の存在を明示するものであり、1つ以上の他の機能、整数、ステップ、操作、要素、構成要素、及び/又はこれらの集合体の存在又は追加を排除するものではないことを理解されたい。
後述の特許請求の範囲における全ての手段又はステップ並びに機能要素の、対応する構造、材料、動作、及び等価物は、他の特許請求されている要素との組み合わせで機能を実行する為の任意の構造、材料、又は動作を、明確に特許請求されているものとして含むことを意図されている。本開示の記載は、例示及び説明を目的として与えられており、網羅的であること、又は、開示された形態での開示に限定されることを意図したものではない。当業者であれば、本開示の範囲及び趣旨から逸脱することのない様々な修正や変形が明らかであろう。本実施形態は、本開示の原理及び実際の適用を最もよく説明すること、並びに、他の当業者が、様々な修正を有する様々な実施形態の開示を、想定される具体的な用途に適するものとして理解することを可能にする為に、選択され、記載されている。
以上、本出願の開示を、詳細に、且つ、その実施形態を参照することにより、説明してきたが、添付の特許請求の範囲において定義されている本開示の範囲から逸脱することのない修正及び変形が可能であることは明らかであろう。