IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社オプトエレクトロニクスの特許一覧

特開2024-12889文字列読取方法、文字列読取装置及びプログラム
<>
  • 特開-文字列読取方法、文字列読取装置及びプログラム 図1
  • 特開-文字列読取方法、文字列読取装置及びプログラム 図2
  • 特開-文字列読取方法、文字列読取装置及びプログラム 図3
  • 特開-文字列読取方法、文字列読取装置及びプログラム 図4
  • 特開-文字列読取方法、文字列読取装置及びプログラム 図5
  • 特開-文字列読取方法、文字列読取装置及びプログラム 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024012889
(43)【公開日】2024-01-31
(54)【発明の名称】文字列読取方法、文字列読取装置及びプログラム
(51)【国際特許分類】
   G06V 30/26 20220101AFI20240124BHJP
   G06K 7/00 20060101ALI20240124BHJP
   G06K 7/10 20060101ALI20240124BHJP
   G06K 7/14 20060101ALI20240124BHJP
【FI】
G06V30/26
G06K7/00 004
G06K7/10 412
G06K7/14 013
【審査請求】未請求
【請求項の数】13
【出願形態】OL
(21)【出願番号】P 2022114673
(22)【出願日】2022-07-19
(71)【出願人】
【識別番号】391062872
【氏名又は名称】株式会社オプトエレクトロニクス
(74)【代理人】
【識別番号】100123881
【弁理士】
【氏名又は名称】大澤 豊
(74)【代理人】
【識別番号】100080931
【弁理士】
【氏名又は名称】大澤 敬
(72)【発明者】
【氏名】丑木 崇
(72)【発明者】
【氏名】福場 賢
【テーマコード(参考)】
5B064
【Fターム(参考)】
5B064AA01
5B064EA27
(57)【要約】
【課題】 読取対象物の画像中の文字列を識別する機能をユーザに提供する場合において、当該機能をユーザに無期限で試用させてもよいようにしつつ、正規版の機能に近い使用感をユーザに体験してもらえるようにする。
【解決手段】 撮像部151により読取対象物の画像を取得し、文字列識別部153によりその取得した画像中の文字列を識別して、出力部155により出力する。このとき、文字変換部154により、文字列識別部153が識別した文字列中から選択した一部の文字を、出力部155からの出力の前に、予め定められたマスク用の文字に変換するようにした。このとき、識別した文字列中の何番目の文字を前記一部の文字として選択するかを、文字列識別部153が文字列を識別する度に決め直すとよい。また、文字の選択を、ランダムに行うとよい。
【選択図】 図2
【特許請求の範囲】
【請求項1】
画像取得部により読取対象物の画像を取得し、該取得した画像中の文字列を識別して、当該文字列のデータを出力する識別手順と、
前記識別手順で識別した文字列中から選択した一部の文字を、前記出力の前に、予め定められたマスク用の文字に変換する変換手順とを備えることを特徴とする、文字列読取方法。
【請求項2】
請求項1に記載の文字列読取方法であって、
前記変換手順において、前記識別した文字列中の何番目の文字を前記一部の文字として選択するかを、前記識別手順で文字列を識別する度に決め直すことを特徴とする、文字列読取方法。
【請求項3】
請求項1に記載の文字列読取方法であって、
前記変換手順において、前記一部の文字を、前記識別した文字列中からランダムに選択することを特徴とする、文字列読取方法。
【請求項4】
請求項1に記載の文字列読取方法であって、
前記識別手順は、予め定められた文字列のフォーマットに従って、取得した前記画像中の文字列を識別する手順であり、
前記マスク用の文字は、前記フォーマットに従った文字列中に現れない文字であることを特徴とする、文字列読取方法。
【請求項5】
請求項1に記載の文字列読取方法であって、
対象物に付された文字列を読み取る文字列読取装置により実行され、
前記文字列読取装置に対して所定の入力が与えられた場合に、該入力以降は前記変換手順を行わないように前記文字列読取装置を制御する無効化手順を備えることを特徴とする、文字列読取方法。
【請求項6】
請求項5に記載の文字列読取方法であって、
前記文字列読取装置は、前記取得した画像中のコード記号をデコードするデコード手順を実行可能であり、
前記所定の入力は、前記デコード手順におけるデコードで所定の文字列が得られるような対象物の画像を前記画像取得部に取得させること、であることを特徴とする文字列読取方法。
【請求項7】
画像取得部により読取対象物の画像を取得し、該取得した画像中の文字列を識別して、当該文字列のデータを出力する識別部と、
前記識別部が識別した文字列中から選択した一部の文字を、前記出力の前に、予め定められたマスク用の文字に変換する変換部とを備えることを特徴とする、文字列読取装置。
【請求項8】
請求項7に記載の文字列読取装置であって、
前記変換部が、前記識別した文字列中の何番目の文字を前記一部の文字として選択するかを、前記識別部が文字列を識別する度に決め直すことを特徴とする、文字列読取装置。
【請求項9】
請求項7に記載の文字列読取装置であって、
前記一部の文字を、ランダムに選択することを特徴とする、文字列読取装置。
【請求項10】
請求項7に記載の文字列読取装置であって、
前記識別部は、予め定められた文字列のフォーマットに従って、取得した前記画像中の文字列を識別し、
前記マスク用の文字は、前記フォーマットに従った文字列中に現れない文字であることを特徴とする、文字列読取装置。
【請求項11】
請求項7乃至10のいずれか一項に記載の文字列読取装置であって、
所定の入力が与えられた場合に、該入力以降は前記変換部を無効化する無効化部を備えることを特徴とする、文字列読取装置。
【請求項12】
請求項11に記載の文字列読取装置であって、
前記画像取得部により取得した読取対象物の画像中のコード記号をデコードするデコード部を備え、
前記所定の入力は、前記デコード部によるデコードで所定の文字列が得られるような読取対象物の画像を前記画像取得部に取得させること、であることを特徴とする文字列読取装置。
【請求項13】
請求項1乃至6のいずれか一項に記載の文字列読取方法を、前記画像取得部を制御するプロセッサに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、画像取得部により読取対象物の画像を取得し、その取得した画像中の文字列を読み取る文字列読取方法、このような文字列の読み取りを行う文字列読取装置及びコンピュータに上記の文字列読取方法を実行させるためのプログラムに関する。
【背景技術】
【0002】
従来から、例えばバーコードや二次元コード等のコード記号を光学的に読み取るための光学的情報読取装置において、読取対象物を撮像し、撮像で得られた画像からコード記号を切り出してデコードすることが行われている。
また、特許文献1には、このような光学的情報読取装置に、OCR(光学的文字認識:Optical Character Recognition)ソフトウェアを搭載することにより、撮像で得られた画像中の文字列を読み取る、OCRの機能を設けることも記載されている。
【0003】
また、OCRに関連して、特許文献2には、文書を読み取って得た画像に対して文字認識を行った結果の文字列に、特定の構文上の特徴が含まれる場合に、その文書の読み取りを禁止する不正読取防止装置が記載されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特許第5637995号公報(特に段落0037)
【特許文献2】特開2001-291053号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、上述のOCR機能は、光学的情報読取装置の付加価値を高めるための、オプショナルな追加機能として搭載することも考えられる。例えば、OCR機能を搭載した機種をハイエンド機種として販売したり、OCR機能を有償のオプショナルな追加機能として提供したり等である。
そして、このような製品ラインナップを設ける場合、ユーザにハイエンド機種あるいは追加機能を購入するか否かを判断してもらうために、容易に試用をさせたいという要求があった。
【0006】
しかし、例えば試用のために一定期間だけOCR機能を有効にできるようにし、その期間が過ぎたら一切OCR機能が使えないようにすると、当該期間内に機能の評価を終えられなったユーザに再度試用してもらうことが手間であるという間題があった。再度の試用を無制限に認めると、実質的にOCR機能を無償で使わせることになってしまうので、試用の期間や回数を管理する必要が生じるためである。
特許文献2に記載の、特定の条件により文書の読み取りを禁止する技術も、このような試用に着目したものではない。
【0007】
この発明は、このような間題を解決し、読取対象物の画像中の文字列を識別する機能をユーザに提供する場合において、当該機能をユーザに無期限で試用させてもよいようにしつつ、正規版の機能に近い使用感をユーザに体験してもらえるようにすることを目的とする。
なお、上記の間題は、文字列を識別する機能を追加機能でなく単体で提供する場合にも、読取対象物の画像を撮像以外の手段により取得する場合にも、程度の差はあれ同様に発生するものであり、この発明は、これらの場合にも適用可能である。
【課題を解決するための手段】
【0008】
以上の目的を達成するため、この発明の文字列読取方法は、画像取得部により読取対象物の画像を取得し、その取得した画像中の文字列を識別して、その文字列のデータを出力する識別手順と、上記識別手順で識別した文字列中から選択した一部の文字を、上記出力の前に、予め定められたマスク用の文字に変換する変換手順とを備えるものである。
【0009】
このような文字列読取方法において、上記変換手順で、上記識別した文字列中の何番目の文字を上記一部の文字として選択するかを、上記識別手順で文字列を識別する度に決め直すとよい。
あるいは、上記変換手順において、上記一部の文字を、上記識別した文字列中からランダムに選択するとよい。
あるいは、上記識別手順が、予め定められた文字列のフォーマットに従って、取得した上記画像中の文字列を識別する手順であり、上記マスク用の文字は、上記フォーマットに従った文字列中に現れない文字であるとよい。
【0010】
あるいは、上記文字列読取方法が、対象物に付された文字列を読み取る文字列読取装置により実行され、上記文字列読取装置に対して所定の入力が与えられた場合に、その入力以降は上記変換手順を行わないように上記文字列読取装置を制御する無効化手順を備えるとよい。
さらに、上記文字列読取装置は、上記取得した画像中のコード記号をデコードするデコード手順を実行可能であり、上記所定の入力は、上記デコード手順におけるデコードで所定の文字列が得られるような対象物の画像を上記画像取得部に取得させること、であるとよい。
【0011】
また、この発明は、以上説明した方法の態様で実施する他、装置、システム、プログラム、プログラムを記録した記録媒体等、任意の態様で実施することができる。
【発明の効果】
【0012】
以上のような本発明の構成によれば、読取対象物の画像中の文字列を識別する機能をユーザに提供する場合において、当該機能をユーザに無期限で試用させてもよいようにしつつ、正規版の機能に近い使用感をユーザに体験してもらうことができる。
【図面の簡単な説明】
【0013】
図1】この発明の文字列読取装置の一実施形態である読取装置100のハードウェア構成を示すブロック図である。
図2図1に示した読取装置100が備える機能の構成を示す機能ブロック図である。
図3】読取対象101の例を示す図である。
図4】読取装置100による、図3に示す読取対象の読取結果の例を示す図である。
図5】読取装置100のCPU121が実行する、文字読取モードがONにされた場合の処理のフローチャートである。
図6】読取装置100のCPU121が実行する、コード読取モードがONにされた場合の処理のフローチャートである。
【発明を実施するための形態】
【0014】
この発明の実施形態について、図面を参照しながら説明する。
まず図1を用いて、この発明の文字列読取装置の一実施形態について説明する。図1は、文字列読取装置の実施形態である読取装置のハードウェア構成を示すブロック図である。
図1に示す読取装置100は、読取対象101上の、光反射率が周囲と異なる文字列102を光学的に読み取るための装置であって、その読み取りに際して、読取対象101を撮像する撮像装置でもある。また、読取装置100は、読取対象101上の、光反射率が周囲と異なる記号により示されるコード記号103を光学的に読み取るための光学的情報読取装置としての機能を備える。
【0015】
読取対象101は、静的に文字列102やコード記号103を担持する記録担体であってもよいし、動的にコード記号を表示する表示器であってもよい。文字列の書式は、予め定められていてもよいが、後述する文字列認識の際に、文字列の位置や文字数も合わせて認識する構成であってもよい。コード記号103も、一次元のバーコードであっても、ニ次元コードであってもよく、その規格は問わない。規格が予め特定されておらず、後述するデコード処理の中で規格を判別する構成であってもよい。
【0016】
図1に示すように、この読取装置100は、光学部110、制御部120、操作部131、通知部132及び表示部133を備える。
これらのうち光学部110は、撮像センサ111、レンズ112、パルスLED(発光ダイオード)113を備え、文字列102及び/又はコード記号103を含む読取対象101の画像を光学的に撮像するための撮像装置である。
【0017】
撮像センサ111は、読取対象101等の撮像対象の画像を撮像するための撮像部であり、例えばCMOS(相補性金属酸化膜半導体)イメージセンサにより構成することができる。また、撮像センサ111は、撮像によりイメージセンサの各画素に蓄積した電荷に基づき、各画素の階調値を示す画像データを生成し、制御部120へ出力することができる。この撮像センサ111において、画素は二次元的に配置されている。
【0018】
レンズ112は、撮像センサ111上に撮像対象からの反射光を結像させるための光学系である。
パルスLED113は、撮像センサ111による撮像対象へ照明光を照射するための照明部である。
【0019】
次に、制御部120は、CPU121と、CPU121が実行するプログラムや各種テーブル等のデータを記憶したROM122と、CPU121が各種の処理を実行する際の作業領域として使用するRAM123と、外部装置と通信を行うための通信I/F124とを備えている。
【0020】
CPU121は、RAM123を作業領域としてROM122に記憶されたプログラムを実行することにより、光学部110、操作部131、通知部132及び表示部133を含む読取装置100全体の動作を制御して、図2を用いて後述するものを始めとする、種々の機能を実現する。この機能には、撮像センサ111が撮像した画像の画像データに含まれる文字列102の識別、その識別結果の部分的なマスク、表示、外部への出力あるいは蓄積、文字読取機能のアクティベーションなどの処理が含まれ得る。
通信I/F124は、文字列102の識別結果を利用するデータ処理装置など、種々の外部装置と通信するためのインタフェースである。
【0021】
操作部131は、ユーザの操作を受け付けるためのボタンやトリガ等の操作手段である。通知部132は、ユーザヘの各種通知を行うための通知手段である。具体的な通知の方法としては、ディスプレイによるメッセージやデータの表示、ランプの点灯や点滅、スピーカによる音の出力等が考えられるが、これに限られることはない。表示部133は、読取装置100が識別した文字列を表示するための表示手段であり、液晶ディスプレイ等により構成することができる。通知部132と表示部133とを共通のハードウェアとしてもよい。
【0022】
読取装置100を外部装置からの制御あるいは自律制御により自動で動作させる場合には、操作部131、通知部132及び表示部133を設けなくてもよい。
以上の読取装置100は、例えば手持ち型や据え置き型の、文字読取機能付きコード記号読取装置として構成することができるが、これらに限られることはない。ハードウェアの全部又は一部として、スマートフォンやパーソナルコンピュータのような、汎用のコンピュータを用いてもよい。
【0023】
以上の読取装置100において、特徴的な点の一つは、文字読取機能の利用を制限する方法である。次に、この点について説明する。
まず、読取装置100が備える、上記の利用制限の機能を含む、文字列102の読み取りに関連する機能について説明する。合わせて、コード記号103の読み取りに関連する機能についても説明する。
図2は、その機能の構成を示す機能ブロック図である。
【0024】
図2に示すように、読取装置100は、撮像部151、デコード部152、文字列識別部153、文字変換部154、出力部155、解除トリガ検出部156、無効化部157の機能を備える。これらの各部の機能は、ここで説明する例では、CPU121がソフトウェアを実行することにより光学部110をはじめとする読取装置100の各部を制御することにより実現するが、その一部又は全部を専用の制御回路により実現してもよい。
【0025】
図2に示す撮像部151は、光学部110を制御して撮像を行わせ、撮像で得られた画像データを取得する機能を備える。また、読取装置100の読取モードに応じて、文字列102を読み取る文字読取モードがONであれば取得した画像データを文字列識別部153に渡し、コード記号103を読み取るコード読取モードがONであれば取得した画像データをデコード部152に渡す。これらが同時にONになることがあってもよい。また、適切な撮像の条件は、適宜公知の手法に従って定めればよい。
【0026】
デコード部152は、撮像部151から渡された画像データに含まれるコード記号103のデコード処理を行い、デコードが成功した場合にその旨及びデコード結果のデータを出力部155及び解除トリガ検出部156に渡す機能を備える。このデコード処理は、適宜公知のものを採用することができる。デコード結果に対し、何等か加工を行ってから出力部155に渡してもよい。
【0027】
文字列識別部153は、撮像部151から渡された画像データが示す画像に含まれる文字列を識別して、その文字列のデータを生成し、文字変換部154及び解除トリガ検出部156に渡す機能を備える。文字列の識別方法は、適宜に公知のOCRに関する技術を採用して実現可能である。最終的に、画像に含まれる文字列のうち出力すべき文字列のデータを得られれば、具体的な認識手法は問わない。図3を用いて後述するように、画像に含まれる文字列全てのデータを出力することも必須ではない。
【0028】
文字変換部154は、文字列識別部153から渡された文字列中から選択した一部の文字を、予め定めたマスク用の文字に変換して出力部155に渡す機能を備える。選択する文字は、少なくとも1文字であるが、複数文字であってもよい。この文字変換部154による文字の変換は、文字列識別部153による識別結果の一部をマスクして出力することにより、識別結果の大半をユーザが確認できるようにしつつ、出力されたデータの利用は実質的にできないようにするために行うものである。この機能は、読取装置100の文字読取モードの機能を一部制限し、ユーザに試用させるために設けたものである。文字変換部154による文字の変換の具体例及び考え方については、図3及び図4を用いて後述する。
【0029】
出力部155は、通信I/F124や通知部132を用いて、デコード部152から渡されたデコード結果のデータ及び文字変換部154から渡された文字列のデータを、データ処理装置等の外部装置へ出力すると共に、読取成功をユーザに通知する機能を備える。ユーザヘの通知の方法は、ブザーや振動など、任意の方法で行うことができるし、通知不要の場合には行わなくてもよい。また、出力部155は、デコード部152から渡されたデコード結果や文字変換部154から渡された文字列を、表示部133に表示させる機能も備える。
【0030】
解除トリガ検出部156は、文字読取モードの機能制限を解除するためのトリガとなる具体的な入力を検出する機能を備える。この実施形態では、トリガは、デコード部152によるデコード結果に特定の文字列が含まれること(そのようなデコード結果が得られるコード記号103を読取装置100に読み取らせること)、および、文字列識別部153による識別結果の文字列に特定の文字列が含まれること(そのような識別結果が得られる文字列102を読取装置100に読み取らせること)、としている。解除トリガ検出部156は、デコード部152から渡されるデコード結果及び文字列識別部153から渡される識別結果に基づき、トリガの有無を判定し、トリガを検出した場合にその旨を無効化部157に通知する。
【0031】
無効化部157は、解除トリガ検出部156からトリガ検出の通知があった場合に、それ以降、文字変換部154の機能を無効化する機能を備える。この無効化は不可逆的であって構わないが、何らかのトリガに応じて後で再度有効化できるようにすることも考えられる。文字変換部154の機能が無効化されている状態では、文字列識別部153による識別結果の文字列のデータは、そのまま出力部155に供給され、出力、表示等される。すなわち、文字読取モードの機能を制限なしで利用できる。
以上の各部のうち、撮像部151、文字列識別部153及び出力部155が識別部に該当し、文字変換部154が変換部に該当する。
【0032】
次に、図3及び図4を用いて、文字変換部154による文字の変換の具体例及び考え方について説明する。図3は、読取対象101の一例として、日本国のパスポートのうち所持者の情報が記載されたページを模式的に示したものである。図4は、読取装置100による図3の読取対象の読取結果の例を示す図である。
読取装置100は、図3に示したような読取対象を読み取って、その中に含まれる文字列を認識することができる。このとき、全ての文字列を認識してもよいが、例えば破線で示す領域200の文字列のみを読み取ることも可能である。
【0033】
ここで、日本国のパスポートでは通常、破線で示す領域200に44文字×2行の文字列が記載されている。そこで、このフォーマットを予め読取装置100に設定しておき、文字列識別部153に、このフォーマットに合う文字列のみ識別させることにより、領域200内の文字列のみを識別させることができる。このように文字列のフォーマットを予め特定しておくことにより文字列認識の精度を向上させる手法も既に知られている。
【0034】
このようにフォーマットを特定した状態で、文字読取モードがONになっている読取装置100に図3のページを読み取らせた場合の、文字列識別部153による文字列の識別結果は、識別が正常に行われれば、図4の一番下の文字列230となる。
しかし、文字変換部154の機能が有効であれば、実際には、文字列230中から選択した一部の文字が、予め定めたマスク用の文字に変換され、例えば文字列210が出力される。文字列210においては、符号211で示す位置の文字「K」が、マスク用の文字「?」に変換されている。なお、以後、識別結果に含まれる文字をマスク用の文字に変換することを、「マスクする」ともいう。
【0035】
このような変換を行うと、実際に出力される文字列(のデータ)は、読取対象101に記載されている文字列102と異なるため、読取結果として他の処理に用いるには不適当である。しかし、表示や出力された文字列と、文字列102とを見比べれば、符号211で示す位置以外では適切に文字認識が行われていることは、容易に把握できる。また、読み取りに要する時間や操作感も、後述の正規版と実質的に同じものである。従って、文字読取モードの試用としては十分な動作であると言える。
【0036】
なお、文字変換部154がどの位置の(識別結果中の何番目の)文字を選択するかを、文字列識別部153が文字列を識別する毎に決め直すようにするとよい。このようにすれば、1回目の読み取りで文字列210が出力された場合に、再度同じページを読み取って出力される文字列220では、符号221で示す1回目と異なる位置の文字「4」が、マスク用の文字「?」に変換されるようにすることができる。
【0037】
このことにより、出力される文字列が読取結果として他の処理に用いるには不適当である状態を維持しつつ、1回目の読み取りでマスクされていた符号211で示す位置の文字も、適切に識別できることを確認できる。また、試用に際しては、何度も読み取りを行って精度や使用感を確認することが通常であるから、確認のために2回の読み取りが必要であることは、問題にならない。一方、実際の現場での運用では、毎回2回の読み取りを行わないと正しい読み取り結果が得られないのでは、操作性が著しく低下するので、実際の現場では実質的に使えない状態であると言える。
【0038】
このような効果は、文字変換部154による位置の選択のアルゴリズムが、「常に同じ位置」でなければ得られる(毎回同じ位置を選択することが決まっているような選択は、「決め直す」に該当しないと考えられる)。すなわち、ランダムな選択であっても、1文字ずつずらす等の規則性のあるアルゴリズムであっても構わない。しかし、ランダムな選択は、識別対象の文字列のフォーマットによらず使用可能であり、また、何か所の文字を選択する場合でも適用可能であるので、汎用性の観点から好ましい。また、ランダムな選択では、どこの文字がマスクされるかが予測不能であるので、出力される文字列が読取結果として他の処理に用いるには不適当である状態を維持する観点からも好ましい。
【0039】
ここでは、文字列識別部153が識別した文字列のうち1文字のみをマスクしているが、複数の文字をマスクしてもよい。特に、識別される文字列の長さが長い場合、1文字をマスクするのみでは、出力される文字列が読取結果として他の処理に用いるには不適当である状態を十分に保てない可能性がある。このような場合には、マスクする文字数を増やすとよい。ただし、あまり増やしすぎると、全体として適切に文字認識が行われていることの把握が難しくなるので、この点も踏まえて、何文字をマスクするかを決めるとよい。識別された文字数に基づき、特定の割合を乗じる等してマスクする文字数を決めてもよい。
【0040】
なお、マスク用の文字は、文字列識別部153で識別される文字列に含まれることがない文字であることが好ましいが、読取装置100の使用者から見て、識別の結果ではないことが分かれば足りる。例えば、「#」など、通常の文章にあまり現れない文字とすることが考えられる。文字を識別できなかった箇所を示す記号等が定められている場合には、マスク用の文字は、その記号等とは異なる文字とする。
【0041】
また、識別する文字列のフォーマットに関し、文字の数や配署だけでなく、文字列に含まれ得る文字の種類も予め特定しておくことにより、さらに文字列認識の精度を向上させることができることも知られている。パスポートの例では、使われる可能性がある文字列は、数字と英文字と、「<」等のいくつかの記号とに限られるので、それらの文字を予め特定しておくことが考えられる。
【0042】
この場合、特定したフォーマットに従った文字列中に現れない文字を、マスク用の文字とすれば、読取装置100の使用者から見て、識別の結果ではないことが容易に判別でき、好ましい。図4に示した「?」は、この方法で定めたものである。
マスク用の文字を複数用意し、ランダムにあるいは所定の規則に従って使い分けることも妨げられない。ある回に識別された文字列については第1のマスク用文字を用い、次の回に識別された文字列については第2のマスク用文字を用いる等である。また、特定の回に識別された文字列について、変換する文字の立置に応じて、第1のマスク用文字と第2のマスク用文字を使い分けることも考えられる。
【0043】
以上のように、文字変換部154の機能が有効な状態であれば、文字読取モードは業務には実質的に使えず、試用しかできない状態である。従って、使用者に期間や回数を定めずに文字読取モードを使わせたとしても、文字読取モードの追加機能としての販売や文字読取モードを備える上位機種の販売に悪影響はないと考えられる。
また、解除トリガ検出部156及び無効化部157の機能により文字変換部154の機能を無効化すれば、それだけで、文字読取モードの機能を正常に動作させ、読取結果として、マスクされていない文字列230を出力するようにすることができる。すなわち、試用状態を終了して、文字読取モードの機能を正規版としてアクティベートすることができる。
【0044】
この実施形態では、読取装置100に特定の文字列(アクティベーションコード)をコード記号あるいは文字列の形で読み取らせることで、アクティベートできるようにしている。このため、ユーザがコードを手入力するためのインタフェースを読取装置100に設けたり、読取装置100と接続されるコンピュータにコード入力用のアプリケーションを用意したりする必要がなく、低コストかつ簡単な操作でのアクティベートが可能である。
アクティベートの管理に、計時機能も不要である。専用のコード記号読取装置では、ハードウェアのコスト削減の観点から計時機能を設けないことがあるが、ここで説明した方法であれば、このような装置にも適用可能である。
アクティベーションコードは、読取装置100に予め設定しておく。読取装置100の個体ごとに定めるとよいが、購入者毎等、他の基準で定めてもよい。
【0045】
なお、出力される文字列が読取結果として他の処理に用いるには不適当である状態を実現するためには、以上説明した方法の他、文字変換部154が、選択した位置の文字をランダムな文字に変換することも考えられる。しかし、このようにすると、特に出力される文字列が長い場合に、使用者から見て、変換が行われているか否か分かりにくいという間題がある。使用者が、変換が行われているにことに気づかずに業務に使用し、変換箇所が誤読み取りであると理解してしまうと、文字読取モードヘの信頼低下につながるため、好ましくない。このような間題を避けるためには、上述のようなマスク用文字列への置き換えが好ましい。
【0046】
また、文字列識別部153が識別した文字列のうち特定の文字(例えば「A」や「1」)を、マスク用の文字へ置き換えることも一応考えられる。しかし、この場合にはマスク用の文字を当該特定の文字に逆変換することにより、文字変換部154が有効な状態で出力される文字列であっても、他の処理に使える文字列に容易に変換できてしまうことになる。そうすると、アクティベーションせずとも文字読取モードが実質的に使えてしまう可能性があるため、好ましくない。
【0047】
しかし、例えば文字列識別部153が識別した文字列のうちランダムに選択した文字をマスク用文字列へ置き換えるのであれば、逆変換は容易でないので、選択した立置の文字を置き換える場合と似た効果を期待できる。ただし、識別した文字列中にランダムに選択した文字が表れない場合には、変換が行われていることがわからないため、この点では、必ず変換が行われるような、選択した立置の文字を置き換える処理の方が好ましい。
【0048】
次に、図5及び図6を用いて、以上説明してきた機能を実現するための処理について説明する。ここで説明する処理は、この発明の文字列読取方法の実施形態である。
まず図5に、CPU121が、文字読取モードがONになった場合に実行する処理のフローチャートを示す。
【0049】
この処理において、CPU121はまず、読取開始のトリガを検出するまで待機する(S11)。このトリガとしては例えば、ユーザによる操作部131の操作や、通信I/F124に接続された外部装置から送信される信号を用いることができる。
トリガを検出すると、CPU121は光学部110を制御して撮像を行い、画像データを得る(S12)と共に、画像データ中の文字列を識別する(S13)。ステップS12の処理は、撮像部151の機能と対応し、ステップS13の処理は、文字列識別部153の機能と対応する。
【0050】
ステップS12で、適切な明るさやフォーカスで、識別対象として適切な文字列102を含む読取対象101の画像が撮像されていれば、識別は成功すると考えられる。そして、CPU121が識別成功と判断すると(S14のYes)、処理はステップS15以下に進む。識別失敗であると(S14のNo)、CPU121はステップS12に戻って処理を繰り返す。このとき、照明量や露出、ゲイン等の撮像条件を適宜に調整してもよい。
【0051】
ステップS15では、CPU121は、文字読取モードがアクティベート済みであるか否か判断する。ここでYesであると、文字変換部154の機能が無効化されていることを意味するので、CPU121は、ステップS13で識別した文字列をそのまま表示及び出力して(S16,S17)、1回の読み取りに係る処理を終了し、ステップS11に戻る。
【0052】
一方、ステップS15でNoであると、CPU121は、ステップS13で識別した文字列に、予め定められたアクティベーションコードが含まれるか否か判断する(S18)。ここでもNoであれば、CPU121は、図3及び図4を用いて説明したように、ステップS13で識別した文字列中で何番目の文字をマスクするかを選択し(S19)、その選択した文字をマスク用の文字に変換する(S20)。ステップS19及びS20の処理は、文字変換部154の機能と対応する。
その後、CPU121は、変換後の文字列を表示及び出力して(S21,S22)、1回の読み取りに係る処理を終了し、ステップS11に戻る。
【0053】
また、ステップS18でYesであると、CPU121は、文字変換部154の機能を無効化して文字読取モードをアクティベートし(S23)、その旨を通知部132等によりユーザに通知して(S24)、ステップS11に戻る。この場合には、文字列を表示や出力する必要はない。
以上の図5の処理において、ステップS12,S13,S16及びS17の処理が、識別手順の処理に該当する。ステップS19,S20の処理が、変換手順の処理に該当する。ステップS23の処理が、無効化手順の処理に該当する。
【0054】
次に図6に、CPU121が、コード読取モードがONになった場合に実行する処理のフローチャートを示す。
この処理において、CPU121はまず、ステップS11乃至S14の場合と同様、読取開始のトリガを検出すると(S31のYes)、光学部110を制御して撮像を行い(S32)、得られた画像データをデコードする(S33)ことを、デコードが成功するまで繰り返す(S34)。ステップS33の処理は、図5のステップS13と異なり、デコード部152の機能と対応する。
【0055】
デコードが成功すると、CPU121は、文字読取モードがアクティベート済みであるか否か判断する(S35)。ここでYesであると、アクティベートに関する判断は不要であるので、CPU121は、ステップS33でデコードされた文字列を表示及び出力して(S36,S37)、1回の読み取りに係る処理を終了し、ステップS31に戻る。
ステップS35でNoであると、CPU121は、ステップS33でデコードした文字列に、予め定められたアクティベーションコードが含まれるか否か判断する(S38)。ここでもNoであれば、CPU121は、アクティベーションを行わずにステップS36に進む。
【0056】
ステップS38でYesであると、CPU121は、文字変換部154の機能を無効化して文字読取モードをアクティベートし(S39)、その旨を通知部132等によりユーザに通知して(S40)、ステップS31に戻る。この場合には、文字列を表示や出力する必要はない。
以上の図6の処理において、ステップS39の処理が、無効化手順の処理に該当する。
読取装置100においては、CPU121が以上の図5及び図6の処理を実行することにより、図2を用いて説明した各機能を実現し、図3及び図4を用いて説明した動作を実行することができる。
【0057】
〔変形例〕
以上で実施形態の説明を終了するが、この発明において、装置の具体的な構成、具体的な処理の手順、データの形式、具体的なデータの内容、読み取る文字列のフォーマット等は、実施形態で説明したものに限るものではない。
例えば、アクティベーションの方式として、コード記号の読み取りによる入力と文字列の読み取りによる入力とを併用する必要はなく、いずれか一方で構わない。また、これら以外の任意の方式を用いてもよい。
【0058】
また、読取装置100にアクティベーションの機能を設けること自体、必須ではない。文字変換部154の機能を備える装置やプログラムは試用専用とし、文字読取機能を購入した顧客には、文字変換部154を備えない装置を別途提供したり、文字変換部154の機能を取り除いたプログラムを提供して読取装置100にインストールさせ、文字変換部154の機能を含む試用プログラムを置き換えさせたりすることも考えられる。
なお、文字変換部154を備えない正規品のプログラムが先にある場合には、これに文字変換部154の機能を追加することにより、容易に試用用途のプログラムを作成することができる。
【0059】
また、読取対象101の画像の取得を、撮像により行うことは必須ではない。フラットベッド式のスキャナや、手で読み取り対象の上を滑らせるハンディスキャナ等を用いて、スキャンにより画像を取得する場合であっても、その他の任意の方法で画像を取得する場合であっても、上述した実施形態を適用可能である。
【0060】
また、上述した実施形態では、取得した画像から識別した文字列中から選択した一部の文字をマスクしたが、同じことを、画像中のコード記号をデコードして得られた文字列に適用することも考えられる。このようにすると、コード読取モードについても、図3及び図4を用いて説明したような試用が可能となる。コード記号の場合、コード記号そのものと出力文字列の見比べでは、マスクした箇所以外ではデコードが正しく行われているのかを判別しにくい。しかし例えば、読取対象101において、コード記号103と並べて当該コード記号103がコードする文字列を記載しておけば、デコードが正しく行われているか否かの判別は容易である。
【0061】
また、同じ考え方は、文字列以外を出力する場合においても適用可能である。画像から識別される文字列は、特にフォーマットにより文字列の文字数が規定される場合、当該文字数分の要素を持つベクトルデータであると捉えることができる。そして、上述した実施形態で説明した、文字列の何番目の文字をマスクするかの選択は、ベクトルデータ中の何番目の要素をマスクするかの選択と捉えることができる。
そうすると、任意の処理結果をベクトルデータとして出力する機能を試用させる場合に、当該ベクトルデータから選択した一部の要素を、該出力の前に、予め定められたマスク用のデータに変換するように、上述した実施形態を拡張可能である。
【0062】
このベクトルデータとしては、例えば、計測あるいは推定された略直方体形状の物体のサイズである縦、横、高さや、計測された三次元空間内での物体の位置及び加速度等が考えられる。1回の計測(結果出力)ごとに、何番目の要素をマスクするかを決め直すようにすれば、各回において一部のデータがマスクされていても、使用者は、経時的に複数回の出力を参照することにより、全項目について概ね正しいデータが出力されているかを確認することができる。
【0063】
また、画像データも、各ピクセルの画素値を要素として画素数分の要素を持つベクトルデータであると捉えることができる。この場合、例えば撮影等で得た画像データを出力する前に、該画像データから選択した一部の要素(画素)を、特定のマスク用の画素値に置き換えるように、上述した実施形態を変形可能である。この置き換えは、例えば高解像度での画像出力機能をオプションとして用意して試用させる場合に用いることが考えられる。一部の画素をマスクしても、マスクされなかった部分は使用者が目視して高解像化の効果を確認できるが、色が置き換えられた画素が(例えばランダムに)分布している画像は、通常の鑑賞に耐えられるものではない。
【0064】
なお、上述した実施形態おいて、識別される文字列の長さが1回の識別毎に変わってもよい(特定のフォーマットの文字列を識別することは必須ではない)ように、上記ベクトルデータの場合も、1回の結果出力毎に出力されるベクトルデータの要素の数が変わってもよい。
【0065】
また、この発明のプログラムの実施形態は、1のコンピュータに、あるいは複数のコンピュータを協働させて、所要のハードウェアを制御させ、上述した実施形態における読取装置100の機能を実現させ、あるいは上述した実施形態にて説明した処理を実行させるためのプログラムである。
【0066】
このようなプログラムは、はじめからコンピュータに備えるROMや他の不揮発性記憶媒体(フラッシュメモリ,EEPROM等)などに格納しておいてもよい。メモリカード、CD、DVD、ブルーレイディスク等の任意の不揮発性記録媒体に記録して提供することもできる。さらに、ネットワークに接続された外部装置からダウンロードし、コンピュータにインストールしで実行させることも可能である。
【0067】
また、以上説明してきた実施形態及び変形例の構成が、相互に矛盾しない限り任意に組み合わせて実施可能であり、また、一部のみを取り出して実施することができることは、勿論である。
【符号の説明】
【0068】
100…読取装置、101…読取対象、102…文字列、103…コード記号、110…光学部、111…撮像センサ、112…レンズ、113…パルスLED、120…制御部、151…撮像部、152…デコード部、153…文字列識別部、154…文字変換部、155…出力部、156…解除トリガ検出部、157…無効化部
図1
図2
図3
図4
図5
図6