(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0007】
以下に、本発明の各実施形態について図面を参照しつつ説明する。
本願明細書と各図において、既に説明したものと同様の要素には同一の符号を付して詳細な説明は適宜省略する。
【0008】
図1は、実施形態に係る読取システムの構成を表すブロック図である。
実施形態に係る読取システムは、セグメントディスプレイが撮影された画像から、セグメントディスプレイに表示された文字を読み取るために用いられる。セグメントディスプレイでは、複数のセグメントにより1つの文字が表示される。複数のセグメントの少なくとも一部が点灯し、残りのセグメントが消灯することで、文字が表示される。実施形態に係る読取システムは、この文字を画像から読み取る。セグメントディスプレイには、複数の文字が表示されても良い。この場合、複数の文字のそれぞれが、複数のセグメントの少なくとも一部の点灯により表示される。
【0009】
読み取り対象のセグメントディスプレイに含まれるセグメントの数は、任意である。例えば、読み取り対象のセグメントディスプレイは、7つのセグメントにより1つの文字が表示される、いわゆる7セグメントディスプレイである。7セグメントディスプレイは、数を示す文字(数字)を表示する。アルファベットを表示する14セグメントディスプレイ又は16セグメントディスプレイが読み取り対象であっても良い。ここでは、主として、実施形態に係る読取システムにより、7セグメントディスプレイに表示された数字を読み取る場合について説明する。
【0010】
図1に表したように、実施形態に係る読取システム1は、処理装置10を備える。処理装置10は、受付部11、前処理部12、抽出部13、細線化部14、読取部15、算出部16、及び出力部17を含む。
【0011】
図2(a)〜
図2(d)は、実施形態に係る読取システムによる処理を例示する図である。
処理装置10には、セグメントディスプレイが撮影された画像が入力される。受付部11は、入力された画像を受け付ける。例えば、外部の撮像装置がセグメントディスプレイを撮影し、画像を生成する。撮像装置は、処理装置10へ画像を送信する。又は、画像は、外部の記憶装置から処理装置10へ送信されても良い。受付部11は、処理装置10へ送信された画像を受け付ける。画像には、セグメントディスプレイ以外のものが写っていても良い。ここでは、受付部11が受け付けた画像を、入力画像と呼ぶ。
【0012】
図2(a)は、処理装置10に送信された入力画像Aの一例である。
図2(a)の例では、複数の数字がセグメントディスプレイに表示されている。それぞれの数字は、複数のセグメントにより表示されている。
【0013】
前処理部12は、セグメントディスプレイに表示された数字を読み取る前に、入力画像に前処理を加える。前処理により、数字の読み取りの精度を向上させることができる。例えば、前処理部12は、二値化部12a、膨張処理部12b、及び収縮処理部12cを含む。
【0014】
二値化部12aは、入力画像を二値化する。二値化された入力画像は、互いに異なる2つの色(第1色と第2色)で表される。ここでは、第1色が白であり、第2色が黒である場合を説明する。
【0015】
例えば、セグメントディスプレイの背景は、暗い色である。点灯しているセグメントは、背景よりも明るい。このため、二値化された入力画像において、点灯しているセグメントは、白色で表される。消灯しているセグメント及び背景は、黒色で表される。すなわち、二値化された入力画像では、白色の画素により数字が示される。
【0016】
又は、液晶ディスプレイを用いたセグメントディスプレイでは、文字が背景よりも暗い色で表される。この場合、二値化された入力画像において、各画素の色を反転させる。反転させることで、上述した場合と同様に、白色の画素により数字が示される。以降では、点灯しているセグメントが白色で表され、消灯しているセグメント及び背景が黒色で表される場合について説明する。
【0017】
例えば、入力画像は、赤(Red)と緑(Green)と青(Blue)との3つの原色を用いて示されるRGBカラーモデルとしてデータ化されている。二値化処理では、まず、この入力画像を、色相(Hue)と彩度(Saturation)と輝度(Value)との三つの成分からなるHSV色空間で示すデータに変換する。次に、HSV色空間のデータのヒストグラム解析を行う。続いて、各画素のヒストグラムに基づいて閾値を算出する。この閾値と各画素のヒストグラムに基づき、各画素を白色と黒色に二値化する。
【0018】
膨張処理部12bは、二値画像において、白色の画素を膨張させる。例えば、膨張処理部12bは、白色画素に隣接する画素を白色に変更する。隣接する画素が元から白色の場合は、変更されない。例えば、ノイズ等の影響により、白色画素が集まった部分に黒色の画素が点在することがある。膨張処理により、点在する黒色画素が白色画素に変更される。これにより、ノイズ等の影響を低減し、数字の読み取り精度を向上させることができる。また、膨張処理により、近接する白色画素の集合同士を繋げることができる。近接する白色画素の集合同士が繋がることで、1つの数字に対応して1つの画素の集合が生成される。これにより、後述する文字画像の抽出が容易となる。
【0019】
収縮処理部12cは、二値画像において、白色画素を収縮させる。例えば、収縮処理部12cは、黒色の画素に隣接する画素を黒色に変更する。隣接する画素が元から黒色の場合は、変更されない。収縮処理により、膨張した白色画素の数が減少する。
【0020】
図2(b)は、前処理(二値化、膨張処理、及び収縮処理)が行われた入力画像Aの一例である。
図2(b)に表すように、これらの前処理により、各数字に対応した白色画素の集合が生成される。
【0021】
前処理部12は、上述した膨張処理及び収縮処理を、複数回実行しても良い。例えば、前処理部12は、膨張処理を2回以上実行した後に、収縮処理を2回以上実行する。前処理部12は、収縮処理を2回以上実行した後に、膨張処理を2回以上実行しても良い。例えば、膨張処理の実行回数と、収縮処理の実行回数は、同じに設定される。又は、膨張処理の実行回数が、収縮処理の実行回数と異なっていても良い。例えば、膨張処理の実行回数は、収縮処理の実行回数よりも多く設定される。
【0022】
前処理部12は、1回の膨張処理及び1回の収縮処理を含む処理セットを、複数回実行しても良い。1つの処理セットでは、膨張処理及び収縮処理の一方が実行された後、他方が実行される。1つの処理セットにおける膨張処理と収縮処理の順序が、別の処理セットにおける膨張処理と収縮処理の順序と異なっていても良い。
【0023】
前処理部12は、別の処理をさらに実行しても良い。例えば、入力画像にセグメントディスプレイ以外の物体が含まれる場合、前処理部12は、入力画像からセグメントディスプレイが撮影された部分を切り出しても良い。入力画像が歪んでいる場合、前処理部12は、歪みの補正を行っても良い。
【0024】
前処理部12は、処理された入力画像を抽出部13へ出力する。抽出部13は、入力画像から文字画像を抽出する。文字画像は、入力画像の一部であり、セグメントディスプレイにより表示された1つの数字が写されている。
【0025】
例えば、抽出部13は、ラベリング処理部13a及び切出部13bを含む。前処理部12から抽出部13には、二値化された入力画像が出力される。ラベリング処理部13aは、白色画素の集合に、ラベル(値)を付与する。「白色画素の集合」とは、白色画素同士が互いに隣接し、1つの白色の塊となっている部分を言う。白色画素の集合において、ある白色画素は、少なくとも1つの白色画素に隣接している。1つの白色画素の集合は、セグメントディスプレイに表示された1つの数字に対応する。白色画素の集合が複数存在する場合、ラベリング処理部13aにより、それぞれの白色画素の集合にラベルが付与される。
【0026】
切出部13bは、入力画像から、ラベリングされた集合を含む部分を切り出す。切り出された部分が、文字画像となる。ラベリングされた集合が複数存在する場合、切出部13bは、複数の文字画像を切り出す。複数の文字画像は、それぞれ複数のラベリングされた集合を含む。例えば、文字画像の形状は、四角形である。文字画像は、第1方向と、第1方向と交差する第2方向と、に配列された複数の画素を含む。例えば、文字画像は、そのサイズが予め設定された値となるように切り出される。切り出される文字画像のサイズは、後述するマスクのサイズに対応する。
図2(c)は、入力画像Aと、文字画像B1〜B4と、を表す。
【0027】
抽出部13は、抽出した(切り出した)文字画像を、細線化部14へ出力する。細線化部14は、文字画像に細線化処理を行う。すなわち、細線化部14は、文字画像に含まれる白色画素の集合に対して、線幅が1画素となるように処理する。
図2(d)は、
図2(c)で表した文字画像B1〜B4を細線化した結果を表す。
【0028】
細線化部14は、前処理部12から出力された二値画像を細線化しても良い。例えば、切出部13bは、文字画像を切り出すと、その切り出した位置を保存する。細線化部14は、細線化した二値画像を、抽出部13へ出力する。切出部13bは、細線化された二値画像の一部を、保存した切り出し位置で切り出す。これにより、
図2(d)に表した、細線化された文字画像が得られる。
【0029】
読取部15は、例えば、細線化された文字画像から、文字を読み取る。読取部15は、細線化する前の文字画像から文字を読み取っても良い。算出部16は、抽出された文字画像を用いてスコアを算出する。具体的には、算出部16は、以下の第1処理〜第7処理を実行する。また、算出部16は、第1処理〜第7処理を実行して得られた第1スコア〜第7スコアを用いて、読み取りの確度を算出する。
【0030】
以下では、文字画像が良好であり、数字が正しく読み取られる可能性が高いほど、各スコア及び確度が高く算出される例を説明する。スコア及び確度が高いほど、読み取りの信頼性が高いことを示す。文字画像が良好とは、例えば、文字画像に文字以外のものが含まれていない、解像度が十分に高い、歪みが小さいなどの状態を指す。この例に限らず、文字画像が良好であるほど、各スコア及び確度は低く算出されても良い。この場合、スコア及び確度が低いほど、読み取りの信頼性が高いことを示す。
【0032】
第1処理において、算出部16は、細線化された文字画像に、複数の判定領域を設定する。設定される判定領域の数は、1つの文字の表示に用いられるセグメントの数以上であれば良い。例えば、設定される判定領域の数は、1つの数字を表示するために用いられるセグメントの数と同じである。例えば、7セグメントディスプレイに表示された数字を読み取る場合、7つの判定領域が1つの文字画像に設定される。各判定領域の位置は、抽出された文字画像のサイズに基づいて決定される。例えば、記憶装置20は、判定領域の設定位置に関する情報を記憶している。算出部16は、記憶装置20に記憶された情報と、文字画像のサイズと、に基づいて判定領域の位置及びサイズを決定する。又は、切り出される文字画像のサイズが予め定められているときには、各判定領域の位置及びサイズが予め定められていても良い。
【0033】
ここでは、文字画像のサイズに基づいて判定領域の位置及びサイズが決定される例について説明する。
図3(a)は、判定領域の設定方法を説明するための模式図である。
図3(a)に表した文字画像Bは、複数の画素Pから構成される。文字画像Bには、判定領域DR1〜DR7が設定される。判定領域DR1及びDR2は、第1方向D1(横方向)に沿って並んでいる。判定領域DR3及びDR4は、第1方向D1に沿って並んでいる。判定領域DR1及びDR2は、判定領域DR3及びDR4と第2方向D2(縦方向)において離れている。判定領域DR5〜DR7は、第2方向D2に沿って並んでいる。
【0034】
図3(a)に表した判定領域DR5〜DR7のように、一部の判定領域の配列方向は、第2方向D2に平行ではなく、第2方向D2に対して傾いていても良い。例えば、一部の判定領域の配列方向と第2方向D2との間の角度は、0度よりも大きく20度以下に設定される。同様に、別の一部の判定領域の配列方向が、第1方向D1に対して傾いていても良い。例えば、別の一部の判定領域の配列方向と第1方向D1との間の角度は、0度よりも大きく20度以下に設定される。このような配列も、複数の判定領域が第1方向D1又は第2方向D2に沿って並ぶ場合に含まれる。
【0035】
図3(a)に表した文字画像Bの第1方向D1における長さ(画素数)をL1とする。文字画像Bの第2方向D2における長さをL2とする。また、文字画像Bは、第1辺S1〜第4辺S4を有する。第1辺S1及び第2辺S2は、第1方向D1に平行である。第3辺S3及び第4辺S4は、第2方向D2に平行である。
【0036】
例えば、判定領域DR1及びDR2は、第1辺S1からL2/4離れた位置を基準に設定される。例えば、判定領域DR3及びDR4は、第2辺S2からL2/4離れた位置を基準に設定される。例えば、判定領域DR5〜DR7は、第3辺S3と第4辺S4の中間位置を基準に設定される。例えば、判定領域DR5及びDR7は、中間位置から第1方向D1にずれた位置に設定される。例えば、判定領域DR5〜DR7のそれぞれの第2方向D2における長さは、L2/3に設定される。これらの基準となる位置に関する情報は、例えば記憶装置20に記憶される。また、判定領域は、別の判定領域と重ならないように設定される。各判定領域には、基準となる位置の画素Pと、その周囲の画素Pと、が含まれる。各判定領域のサイズは、例えば、文字画像Bのサイズに応じて設定される。
【0037】
文字画像のサイズに対して判定領域を設定する基準となる位置、文字画像のサイズに対する判定領域のサイズは、読み取り対象のセグメントディスプレイ、入力画像の特性などに応じて適宜変更可能である。複数の判定領域の位置は、文字画像のサイズ(第1方向における長さ及び第2方向における長さ)に基づいて決定されて良い。
【0038】
算出部16は、それぞれの判定領域において、細線化された画素の状態を判定する。画素の状態としては、判定領域と重なる線の数が用いられる。線とは、数字を示す複数の画素の一部であり、画素が連なったものを指す。例えば、
図3(a)及び
図3(b)に表した例では、文字画像が鮮明であると、各判定領域において検出される線の数は、多くて1本である。1つの判定領域において2本以上の線が検出されると、文字画像が不鮮明であったり、文字が歪んでいる、又は文字が正しく写されていない可能性がある。
【0039】
算出部16は、それぞれの判定領域における画素の状態に基づいて、第1スコアを算出する。例えば、算出部16は、1つの判定領域において、多くの線が検出されるほど、第1スコアをより低く算出する。また、算出部16は、2本以上の線が検出された判定領域の数が多いほど、第1スコアをより低く算出する。算出部16は、線が判定領域内において途切れているときに、第1スコアを低下させても良い。算出部16は、1つの線の近くに、離散した別の線があるとき、第1スコアを低下させても良い。
【0040】
算出部16は、画素の状態として、線の角度を用いても良い。例えば、
図3(a)及び
図3(b)に表した例では、文字画像が鮮明であると、判定領域DR1〜DR4では、第2方向D2に沿った線が検出される。判定領域DR5〜DR7では、第1方向D1に沿った線が検出される。算出部16は、各判定領域において検出された線が、予め設定された方向に対して傾いているほど、第1スコアをより低く算出する。
【0041】
又は、算出部16は、各判定領域における線の数と線の角度の両方に基づいて第1スコアを算出しても良い。これにより、第1スコアを用いて算出される確度の信頼性を高めることができる。
【0042】
図4(a)、
図4(c)、及び
図5(a)は、文字画像の一例である。
図4(b)は、
図4(a)の文字画像の一部である。
図4(b)は、
図4(a)の文字画像に対して設定された判定領域DR5を拡大して表している。
図4(d)及び
図4(e)は、
図4(c)の文字画像の一部である。
図4(d)は、
図4(c)の文字画像に対して設定された判定領域DR5を拡大して表している。
図4(e)は、
図4(c)の文字画像に対して設定された判定領域DR6を拡大して表している。
図5(b)及び
図5(c)は、
図5(a)の文字画像の一部である。
図5(b)は、
図5(a)の文字画像に対して設定された判定領域DR6を拡大して表している。
図5(c)は、
図5(a)の文字画像に対して設定された判定領域DR7を拡大して表している。
【0043】
算出部16は、各判定領域において、所定方向に延びる線を探索する。具体的には、算出部16は、第1方向D1に延びる判定領域DR1〜DR4においては、第2方向D2に延びる線を探索する。算出部16は、第2方向D2に延びる判定領域DR5〜DR7においては、第1方向D1に延びる線を探索する。
【0044】
図4(b)の例では、画素が連なる線Li1が、第1方向D1に沿っている。また、判定領域DR5に存在する線の数は、1本である。このため、判定領域DR5に関して、第1スコアは高く算出される。
【0045】
図4(d)の例では、判定領域DR5に第1方向D1に沿う複数の線Li2及びLi3が存在する。このため、判定領域DR5に関して、第1スコアは低く算出される。
図4(e)の例では、判定領域DR6に複数の線Li4及びLi5が存在する。線Li4の端部の第1方向D1における位置は、線Li5の端部の第1方向D1における位置と一致している。線Li4とLi5の第2方向D2における距離が短いとき、これらの線は、一本の線で表されるべきものであると考えられる。例えば、算出部16は、線Li4とLi5の第2方向D2における距離が予め設定された値以下のとき、一本で表示されるべき線が離散していると判定し、第1スコアを低く算出する。
【0046】
図5(b)の例では、線Li6が判定領域内で途切れている。
図5(c)の例では、線Li7の角度が第1方向D1に対して傾いている。
図5(b)又は
図5(c)に表した例では、それぞれ、判定領域DR6及びDR7に関して、第1スコアは低く算出される。
【0047】
第2処理において、算出部16は、記憶装置20を参照し、1つの文字画像とマスクとを用いて適合率を算出する。適合率は、複数のセグメントに基づく文字が、文字画像にどの程度明確に現れているかを示す。
【0048】
まず、算出部16は、文字画像とマスクとの論理積を計算する。マスクは、1つの数字を表示するための複数のセグメントの全てが点灯した状態に対応する。論理積により得られた処理画像では、マスクにおいて白色で表され、且つ文字画像において白色で表されている領域のみが、白色で表される。
【0049】
算出部16は、処理画像に対する文字画像の一致率を適合率として算出する。すなわち、文字画像において白色で表された領域の面積a2に対する、処理画像において白色で表された領域の面積a1の割合(a1/a2)が、適合率として算出される。各画像における面積は、白色で表されたピクセル数に対応する。この計算に代えて、算出部16は、処理画像において黒色で表された領域の面積に対する、文字画像において黒色で表された領域の面積の割合を、適合率として算出しても良い。
【0050】
図6(a)及び
図6(d)は、文字画像の一例である。
図6(b)及び
図6(e)は、マスクの一例である。
図6(c)及び
図6(f)は、論理積の結果を表す画像である。
一例として、
図6(a)に表した文字画像と、
図6(b)に表したマスクと、の論理積により、
図6(c)に表した処理画像が得られる。算出部16は、
図6(a)に表した画像と
図6(c)に表した画像とを用いて、適合率を算出する。別の一例として、
図6(d)に表した文字画像と、
図6(e)に表したマスクと、の論理積により、
図6(f)に表した処理画像が得られる。算出部16は、
図6(d)に表した画像と
図6(f)に表した画像とを用いて、適合率を算出する。
【0051】
図6(d)の画像から
図6(f)の画像への変化に比べて、
図6(a)の画像から
図6(c)の画像への変化は小さい。このため、
図6(a)の画像は、
図6(d)の画像に比べて、適合率は高く算出される。例えば、算出部16は、算出された適合率を第2スコアとして出力する。すなわち、適合率が高いほど、より高い第2スコアが出力される。算出部16は、適合率に基づいて算出された別の値を第2スコアとして出力しても良い。
【0052】
第3処理において、算出部16は、文字画像の長さの比を算出する。算出部16は、比が予め設定された値と近いほど、第3スコアをより高く算出する。値は、1つの数字を表示するためのセグメントの集合の長さの比に対応する。
【0053】
例えば
図7(a)に表した文字画像について、算出部16は、第1方向D1における長さL3と、第2方向D2における長さL4と、の比を算出する。
図7(a)の文字画像は鮮明であり、且つ写された文字の歪みが小さい。このため、長さL3と長さL4の比と、予め設定された値と、の差は小さい。算出部16は、
図7(a)に表した文字画像について、第3スコアを高く算出する。
【0054】
一方、
図7(b)に表した文字画像では、セグメントディスプレイにおける光の反射の影響で、第1方向D1の長さが長い。このため、長さL5と長さL6の比と、予め設定された値と、の差は大きい。算出部16は、
図7(b)に表した文字画像について、第3スコアを低く算出する。光の反射の他には、セグメントディスプレイへの付着物、画像におけるノイズなどの影響によっても、第1方向D1における長さと第2方向D2における長さの比が、予め設定された値から変化しうる。
【0055】
第4処理において、算出部16は、第1処理と同様に、1つの文字画像に複数の判定領域を設定する。判定領域の設定方法は、第1処理と同様である。算出部16は、各判定領域において、文字の一部の有無を検出する。具体的な一例として、算出部16は、各判定領域において、文字を示す画素の数を検出する。点灯するセグメントが白色で表されるときには、算出部16は、各判定領域における白色画素の数を検出する。算出部16は、検出された画素数を予め設定された閾値と比較し、各判定領域において、数字の一部が存在するか判定する。具体的には、算出部16は、検出された画素数が閾値以上であれば、その判定領域に数字の一部が存在すると判定する。
【0056】
例えば、細線化された文字画像に対して複数の判定領域を設定するときには、閾値は、1に設定される。細線化されていない文字画像に対して複数の判定領域を設定するときには、閾値は、1より大きな値であっても良い。
【0057】
算出部16は、例えば、各判定領域における判定結果を“0”又は“1”で示す。“0”は、その判定領域に数字の一部が存在しないことを示す。“1”は、その判定領域に数字の一部が存在することを示す。
図3(b)の例では、判定領域DR2、DR3、及びDR5〜DR7で、数字の一部が存在すると判定される。この結果は、例えば、0と1を用いて、“0110111”と表される。
【0058】
図8(a)〜
図8(e)は、その他の数字が写された文字画像と、各文字画像における判定領域の設定例と、を表す。
図8(a)〜
図8(e)に表した文字画像に対しても、
図3(b)と同様に複数の判定領域が設定され、各判定領域において数字の一部の有無が判定される。
【0059】
算出部16は、記憶装置20を参照する。記憶装置20には、セグメントディスプレイに表示されうる各数字の型が記憶されている。型は、算出部16による判定結果の組み合わせと同様に、0と1を用いて表される。
図9は、記憶装置20に記憶された型を例示している。算出部16は、判定結果の組み合わせと一致する型を検索する。
【0060】
例えば、
図3(b)の例では、判定結果の組み合わせは、“0110111”と表される。算出部16は、この組み合わせと一致する型を検索する。検索の結果、算出部16による判定結果の組み合わせは、数字の“2”に対応する型と一致する。一致する型があるとき、算出部16は、第4スコアを高く算出する。一致する型がないとき、算出部16は、第4スコアを低く算出する。
【0061】
第5処理において、算出部16は、複数の文字の位置のばらつきと、複数の文字の配列方向と、に基づいて、第5スコアを算出する。
【0062】
まず、算出部16は、入力画像における、複数の文字画像のそれぞれの重心位置を算出する。算出部16は、複数の重心位置に基づいて、直線を生成する。直線は、例えば、複数の重心位置の回帰直線である。算出部16は、回帰直線を用いて、複数の重心位置のばらつきを求める。ばらつきは、例えば、標準偏差又は平均二乗誤差で表される。算出部16は、ばらつきが大きいほど、第5スコアを低く算出する。
【0063】
また、算出部16は、複数の文字の配列方向と、予め設定された基準方向と、の差を算出する。算出部16は、その差が大きいほど、第5スコアを低く算出する。文字の配列方向は、例えば、回帰直線で表される。算出部16は、基準方向に沿う線と回帰直線との間の角度を、配列方向と基準方向との差として用いる。算出部16は、その角度を予め設定された閾値と比較しても良い。算出部16は、角度が閾値を超えるときに第5スコアを低く算出する。
【0064】
例えば、算出部16は、
図10(a)に表した複数の文字画像B5〜B7のそれぞれについて、重心位置を算出する。この結果、例えば、重心位置C5〜C7が算出される。算出部16は、重心位置C5〜C7に基づいて、直線CLを生成する。例えば、基準方向は、第1方向D1と平行に設定される。
図10(a)に表した例では、重心位置C5〜C7のばらつきは、小さい。また、直線CLは、第1方向D1に沿っている。このため、
図10(a)に表した複数の文字画像について、第5スコアは高く算出される。
【0065】
図10(b)に表した例では、直線CLは第1方向D1に沿うが、重心位置C5〜C7のばらつきが大きい。このため、
図10(b)に表した複数の文字画像に基づく第5スコアは、
図10(a)に表した複数の文字画像に基づく第5スコアよりも低く算出される。さらに、
図10(c)に表した例では、直線CLが第1方向D1に対して傾いている。このため、
図10(b)に表した複数の文字画像に基づく第5スコア、及び
図10(c)に表した複数の文字画像に基づく第5スコアは、
図10(a)に表した複数の文字画像に基づく第5スコアよりも低く算出される。
【0066】
第6処理において、算出部16は、画像に写された文字の数を、予め設定された最小文字数及び最大文字数と比較する。例えば、算出部16は、文字画像の数(ラベリングされた集合の数)を、最小文字数及び最大文字数と比較する。算出部16は、文字の数が、最小文字数以上、最大文字数以下のとき、第6スコアを高く算出する。算出部16は、文字の数が、最小文字数未満又は最大文字数を超えるとき、第6スコアを低く算出する。
【0067】
第7処理において、算出部16は、入力画像において小数点が認識されたか判定する。記憶装置20には、入力画像に写るセグメントディスプレイが小数点を含むか予め登録されている。算出部16は、認識結果を、記憶装置20に登録された情報と比較する。算出部16は、認識結果が記憶装置20に登録された情報と一致するとき、第7スコアを高く算出する。算出部16は、認識結果が記憶装置20に登録された情報と一致しないとき、第7スコアを低く算出する。例えば、セグメントディスプレイが小数点を表示する構成であるにも拘わらず、小数点が認識されないとき、算出部16は、第7スコアを低く算出する。
【0068】
図11(a)は、小数点が認識される画像の一例である。
図11(b)は、小数点が認識されない画像の一例である。例えば、セグメントディスプレイの表示が小数点を含むと予め登録されているとき、
図11(a)の画像に基づく第7スコアは高く算出され、
図11(b)の画像に基づく第7スコアは低く算出される。
【0069】
算出部16は、以上で説明した第1スコア〜第7スコアを用いて、読取部15による数字の読み取りの確度を算出する。例えば、算出部16は、第1スコア〜第7スコアの合計を確度とする。算出部16は、第1スコア〜第7スコアの少なくとも一部にそれぞれ重みを掛け合わせ、それらの合計を確度としても良い。又は、算出部16は、第1スコア〜第7スコアの一部を用いて算出された値と、第1スコア〜第7スコアの他部のそれぞれと、のうち最も低いスコアを確度としても良い。
【0070】
入力画像から複数の文字画像が切り出される場合、各文字画像について、第1スコア〜第4スコアが算出される。
例えば、算出部16は、複数の第1スコアを比較し、最も低い第1スコアを確度の算出に用いる。同様に、算出部16は、複数の第2スコアのうち最も低い第2スコア、複数の第3スコアのうち最も低い第3スコア、及び複数の第4スコアのうち最も低い第4スコアを、確度の算出に用いる。
又は、算出部16は、文字画像ごとに、第1スコア〜第4スコアの合計を算出しても良い。算出部16は、複数の合計値から最も低いものを選定し、選定された合計値を確度の算出に用いる。合計値を算出する際、算出部16は、スコアごとに重み付けをしても良い。
【0071】
出力部17は、例えば、読み取った数字に基づく情報と、確度と、を外部の出力装置へ出力する。例えば、情報は、読み取った数字を含む。情報は、読み取った数字に基づいて算出された結果を含んでも良い。情報は、複数の読み取った数字を基に算出された値を含んでも良い。出力部17は、読取部15が数字を読み取った画像、数字を読み取ったときの時刻などをさらに出力しても良い。出力部17は、これらのデータを含むファイルを、CSVなどの所定の形式で出力しても良い。出力部17は、FTP(File Transfer Protocol)などを用いて外部のサーバへデータを送信しても良い。又は、出力部17は、データベース通信を行い、ODBC(Open Database Connectivity)などを用いて外部のデータベースサーバへデータを挿入してもよい。
【0072】
処理装置10は、例えば、中央演算処理装置からなる処理回路を含む。複数の処理装置10により、受付部11、前処理部12、抽出部13、細線化部14、読取部15、算出部16、及び出力部17の各機能が実現されても良い。記憶装置20は、例えば、ハードディスクドライブ(HDD)、ネットワーク接続ハードディスク(NAS)、組み込み用マルチメディアカード(eMMC)、ソリッドステートドライブ(SSD)、及びソリッドステートハイブリッドドライブ(SSHD)の少なくともいずれかを含む。処理装置10と記憶装置20は、有線又は無線で接続される。又は、処理装置10と記憶装置20は、ネットワークを介して相互に接続されていても良い。
【0073】
図12は、実施形態に係る読取システムによる処理を例示するフローチャートである。
受付部11は、処理装置10へ送信された入力画像を受け付ける(ステップSt11)。二値化部12aは、入力画像を二値化する(ステップSt12a)。膨張処理部12bは、二値化された入力画像を膨張処理する(ステップSt12b)。収縮処理部12cは、二値化及び膨張処理された入力画像を収縮処理する(ステップSt12c)。ラベリング処理部13aは、入力画像に含まれる白色画素の集合にラベルを付与する(ステップSt13a)。切出部13bは、入力画像から、文字画像を切り出す(ステップSt13b)。細線化部14は、入力画像又は文字画像における白色画素の集合を細線化する(ステップSt14)。読取部15は、1つの文字画像に示される数字を読み取る(ステップSt15)。算出部16は、1つの文字画像に対して第1処理〜第4処理を実行し、第1スコア〜第4スコアを算出する(ステップSt16a)。
【0074】
ステップSt15及びSt16aは、iがラベル数と同じになるまで繰り返される。すなわち、最初に、iは0に設定される。1つの白色画素の集合について、数字の読取及び第1処理〜第4処理が完了すると、iに1が加えられる。ステップSt15及びSt16aは、iがラベル数未満である間、繰り返される。すなわち、切り出された文字画像が複数存在するときには、各文字画像について、ステップSt15及びSt16aが実行される。
【0075】
算出部16は、第5処理〜第7処理を実行し、第5スコア〜第7スコアを算出する(ステップS16b)、算出部16は、第1スコア〜第7スコアを用いて確度を算出する(ステップSt16c)。
【0076】
図12のフローチャートに表したステップの順番は、適宜変更可能である。第1処理〜第4処理の前に第5処理〜第7処理が実行されても良い。例えば、第1処理〜第7処理と並行して、ステップSt15の読取が実行されても良い。第1処理〜第4処理と並行して第5処理〜第7処理が実行されても良い。又は、ステップSt14における細線化の前に、細線化されていない文字画像を用いた処理(例えば、第2処理、第3処理、第5処理〜第7処理など)が実行されても良い。
【0077】
実施形態の効果を説明する。
実施形態に係る読取システム1によれば、数字が読み取られるとともに、その読み取りの確度が算出される。例えば、ユーザは、確度から、読み取られた数字がどの程度信頼できるか確認できる。ユーザは、異常な数字が出力されたときでも、その確度に基づき、実際にその数字がセグメントディスプレイに表示されていそうかを確認できる。
読取システム1は、数字及び確度に加えて、数字を読み取った画像が出力されても良い。これにより、確度が低いときでも、ユーザが実際に表示された数字を画像から容易に確認できるようになる。
実施形態によれば、読取システム1の信頼性を向上できる。
【0078】
上述した実施形態では、第1処理〜第7処理の全てを実行し、第1スコア〜第7スコアを用いて確度を算出する例を示した。読取システム1は、第1処理〜第7処理の少なくともいずれかを実行し、算出された第1スコア〜第7スコアの少なくともいずれかを用いて確度を算出しても良い。
【0079】
例えば、読取システム1は、第1処理〜第4処理の少なくともいずれかを実行する。第1処理〜第4処理は、セグメントディスプレイの特徴に対応した処理であり、これらの処理の少なくともいずれかを実行することで確度の信頼性を高めることができる。好ましくは、読取システム1は、第1処理及び第2処理の少なくともいずれかを実行する。第1処理及び第2処理は、セグメントディスプレイの表示態様に対応した処理であり、これらの処理の少なくともいずれかを実行することで確度の信頼性をさらに高めることができる。
【0080】
例えば、読取システム1は、第1処理及び第2処理の少なくともいずれかと、第3処理及び第4処理の少なくともいずれかと、を実行する。好ましくは、読取システム1は、第5処理〜第7処理の少なくともいずれかをさらに実行する。より多くの処理を実行し、それらの処理によって算出されたスコアを用いて確度を算出することで、確度の信頼性を高めることができる。
【0081】
読取システム1では、セグメントディスプレイに表示された文字を読み取る際、細線化処理が行われる。細線化処理では、文字を示す画素の集合が細線化される。これにより、入力画像におけるセグメントディスプレイの文字の太さに拘わらず、文字を示す画素の集合の幅を均一にできる。このため、セグメントディスプレイの文字の太さに拘わらず、文字を高精度に読み取ることができる。
【0082】
また、第1処理及び第4処理では、文字画像に複数の判定領域が設定される。そして、複数の判定領域のそれぞれにおいて、画素の数の検出結果に基づいてスコアが算出される。画素の数の検出結果を用いることで、文字の書体に拘わらず、スコアを算出することができる。
【0083】
(実施例)
第1処理〜第7処理における第1スコア〜第7スコアの算出方法の一例を説明する。
第1処理において、算出部16は、それぞれの判定領域において、所定の方向に沿う直線を探索する。第1スコアは、初期値が0である。判定領域において、複数の直線が見つかったときには、第1スコアを5追加する。複数の直線が所定距離内で離散しているときには、第1スコアを5追加する。角度が予め設定された閾値を超えているときには、第1スコアを2追加する。直線が見つからないときは、第1スコアを5追加する。この合計値を所定の方向に並ぶピクセル×5で割った値を判定領域のスコアとする。この処理を判定領域ごとに実行する。このスコアの総和を用いて、(7−総和)/7で得られる値を第1スコアとする。
第2処理において、算出部16は、算出された適合率を第2スコアとして決定する。
第3処理において、算出部16は、文字画像の第1方向D1における長さと文字画像の第2方向D2における長さとの比R1を算出する。算出部16は、予め設定された比R2を参照する。算出部16は、比R2が比R1よりも大きいとき、V=R1/R2を算出する。算出部16は、比R1が比R2よりも大きいとき、V=R2/R1を算出する。
算出部16は、1.0から値Vの絶対値を減じて得られた値を、第3スコアとする。
【0084】
第4処理において、算出部16は、判定結果の組み合わせが、登録された型のいずれかと一致すれば、第4スコアを「1」とする。算出部16は、判定結果の組み合わせが登録された型のいずれとも一致しなければ、第4スコアを「0」とする。
第5処理において、第5スコアは、最初に1.0に設定される。算出部16は、複数の文字の重心位置に基づく直線を生成する。算出部16は、所定方向に対する直線の傾きが、予め設定された閾値を超えるとき、第5スコアを0.4減点する。直線と文字の重心位置との間の距離が予め設定された閾値を超えるとき、第5スコアを0.2減点する。直線と文字の重心位置との間の距離は、文字ごとに判定される。
第6処理において、算出部16は、文字の数が、最小文字数以上、最大文字数以下のとき、第6スコアを「1」とする。算出部16は、文字の数が、最小文字数未満又は最大文字数を超えるとき、第6スコアを「0」とする。
第7処理において、算出部16は、画像に基づいて小数点が在るか認識した結果が、予め登録された情報と一致すれば、第7スコアを「1」とする。算出部16は、小数点の認識結果が予め登録された情報と一致しないとき、第7スコアを「0」とする。
【0085】
算出部16は、以下の計算を実行する。
S
0=W
1×S
1+W
2×S
2+W
3×S
3+W
4×S
4
S
1は、第1スコアである。W
1は、第1スコアに対する重みである。S
2は、第2スコアである。W
2は、第2スコアに対する重みである。S
3は、第3スコアである。W
3は、第3スコアに対する重みである。S
5は、第5スコアである。W
5は、第5スコアに対する重みである。
【0086】
算出部16は、算出されたスコアS
0、第4スコア、第6スコア、及び第7スコアから、最も低いスコアを抽出し、そのスコアを確度とする。従って、第4スコア、第6スコア、又は第7スコアが0であると、確度は0となる。
【0087】
図13は、実施例における読取結果と確度を表すグラフである。
図13において、色が濃いプロットは、読取システム1による読み取り結果が正しいかを示す。読み取り結果が実際の画像に示された数字と一致しているときに、縦軸の値が「1」となっている。色が薄いプロットは、算出された確度を表す。直線SLは、確度の平均値を表す。
図13では、約140回の読み取りを実行したときの結果を表している。
【0088】
図13の例では、8回目、38回目、及び52回目の読み取りで、誤った数字を読み取っている。これらの読み取り時には、いずれも、平均値よりもかなり低い確度が算出された。例えば、ユーザは、確度から、これらの読み取り時における読取結果に注意した方が良いことがわかる。また、その他の読取結果について、確度が高いことから、異常な数字が読み取られていたとしても、実際にその数字が表示されている可能性が高いことが分かる。
【0089】
また、算出部16は、確度を第1閾値と比較しても良い。例えば、確度が第1閾値よりも低いとき、読取システム1は、数字を読み取る際に実行する画像処理を、それまでと異なる条件で再度実行する。例えば、画像の切り出し、歪みの補正、膨張処理、又は収縮処理などが、それまでと異なる条件で実行されることで、数字を正確に読み取れるようになる可能性がある。
【0090】
読取システム1は、確度が第1閾値を超えるとき、読み取った数字を出力し、確度が第1閾値以下のとき、読み取った数字、確度、及び文字画像を出力しても良い。読取システム1は、確度が第1閾値を超えるとき、確度をさらに出力しても良い。この方法によれば、ユーザは、確度が低いときのみ文字画像を確認すれば良い。ユーザによる確認の手間を削減できる。
【0091】
第1閾値は、例えば、ユーザにより予め設定される。又は、第1閾値は、過去の規定回数又は規定期間における確度の算出結果に基づいて計算されても良い。
【0092】
以上では、読取システム1により、入力画像が処理される例を説明した。この例に限らず、実施形態に係る読取システム1に、処理された画像が入力されても良い。例えば、撮像装置で画像が取得されると、別の処理装置により文字画像が抽出される。別の処理装置は、読取システム1に、抽出した文字画像を送信する。読取システム1は、受信した文字画像から数字の読み取り及び確度の算出を実行しても良い。
【0093】
また、以上で説明した実施形態では、読取システム1により、7セグメントディスプレイに表示された数字を読み取る例を説明した。読取システム1は、7セグメントディスプレイ以外にも適用可能である。例えば、14セグメントディスプレイ又は16セグメントディスプレイについても、上述した処理と同様の処理により、文字を読み取ることができる。
【0094】
図14(a)及び
図14(c)は、セグメントディスプレイを例示する模式図である。
図14(b)及び
図14(d)は、判定領域の設定を例示する模式図である。
図14(a)は、14セグメントディスプレイの一例を表す。14セグメントディスプレイでは、14のセグメントにより1つの文字が表示される。この場合、算出部16は、文字画像に対して、14以上の判定領域を設定する。算出部16は、例えば
図14(b)に表したように、文字画像Bに対して、14の判定領域DRを設定する。算出部16は、設定した判定領域DRに基づき、第1処理及び第4処理を実行する。また、算出部16は、14の全てのセグメントが点灯した状態に対応するマスクを用いて、第2処理を実行する。
【0095】
図14(c)は、16セグメントディスプレイの一例を表す。16セグメントディスプレイでは、16のセグメントにより1つの文字が表示される。この場合、算出部16は、文字画像に対して、16以上の判定領域を設定する。算出部16は、例えば
図14(d)に表したように、文字画像Bに対して、16の判定領域DRを設定する。算出部16は、設定した判定領域DRに基づき、第1処理及び第4処理を実行する。また、算出部16は、16の全てのセグメントが点灯した状態に対応するマスクを用いて、第2処理を実行する。
【0096】
図15は、実施形態に係る読取システムの構成を表すブロック図である。
実施形態に係る読取システム1は、処理装置10及び撮像装置30を備える。
図15の例では、読取システム1は、記憶装置20及び出力装置40をさらに備える。
【0097】
撮像装置30は、セグメントディスプレイを撮影し、画像を生成する。撮像装置30は、生成した画像を処理装置10へ送信する。又は、撮像装置30は、画像を記憶装置20に記憶しても良い。処理装置10は、記憶装置20にアクセスし、記憶された画像を参照する。撮像装置30が動画を取得する場合、撮像装置30は、その動画から静止画像を取り出して処理装置10に送信する。撮像装置30は、例えばカメラを含む。
【0098】
処理装置10は、読み取った文字に基づく情報を出力装置40へ送信する。出力装置40は、処理装置10から受信した情報を、ユーザが認識できるように出力する。出力装置40は、例えば、モニタ、プリンタ、プロジェクタ、及びスピーカの少なくともいずれかを含む。
【0099】
処理装置10、記憶装置20、撮像装置30、及び出力装置40は、例えば、有線又は無線で相互に接続される。又は、これらはネットワークを介して相互に接続されていても良い。又は、処理装置10、記憶装置20、撮像装置30、及び出力装置40の少なくとも2つ以上が、1つの装置に組み込まれていても良い。例えば、処理装置10が、撮像装置30の画像処理部などに組み込まれていても良い。
【0100】
図16は、実施形態に係る別の読取システムの構成を表すブロック図である。
図16に表した読取システム2は、移動体50をさらに備える。移動体50は、所定の領域内を移動する。移動体50が移動する領域内には、セグメントディスプレイが設けられている。移動体50は、例えば、無人搬送車(AGV)である。移動体50は、ドローンなどの飛翔体であっても良い。移動体50は、自立歩行するロボットであっても良い。移動体50は、無人で所定の作業を行うフォークリフトやクレーンなどであっても良い。
【0101】
例えば、処理装置10及び撮像装置30は、移動体50に搭載される。処理装置10は、移動体50とは別に設けられ、移動体50とネットワークを介して接続されても良い。移動体50がセグメントディスプレイを撮影可能な位置に移動したとき、撮像装置30は、セグメントディスプレイを撮影し、画像を生成する。
【0102】
図16に表したように、読取システム2は、取得装置60をさらに備えても良い。取得装置60は、移動体50に搭載される。例えば、セグメントディスプレイに対応して、固有の識別情報を有する識別体が設けられる。取得装置60は、識別体が有する識別情報を取得する。
【0103】
図16に表したように、読取システム2は、制御装置70をさらに備えても良い。制御装置70は、移動体50を制御する。移動体50は、制御装置70から送信される指令に基づいて、所定の領域内を移動する。制御装置70は、移動体50に搭載されても良いし、移動体50とは別に設けられても良い。制御装置70は、例えば、中央演算処理装置からなる処理回路を含む。1つの処理回路が、処理装置10及び制御装置70の両方として機能しても良い。
【0104】
例えば、識別体は、ID情報を有するradio frequency(RF)タグである。識別体は、ID情報を含む電磁界又は電波を発する。取得装置60は、識別体から発せられた電磁界又は電波を受信し、ID情報を取得する。
【0105】
又は、識別体は、1次元又は2次元のバーコードであっても良い。取得装置60は、バーコードリーダである。取得装置60は、バーコードを読み取ることで、そのバーコードが有する識別情報を取得する。
【0106】
図16に表したように、処理装置10は、紐付部18をさらに含んでも良い。例えば、取得装置60は、識別情報を取得すると、処理装置10に送信する。紐付部18は、送信された識別情報と、読み取った文字と、を紐付け、記憶装置20に記憶する。
【0107】
図17は、実施形態に係る別の読取システムの動作を説明する模式図である。
例えば、移動体50は、所定の軌道Tに沿って移動する移動体である。移動体50には、撮像装置30及び取得装置60が搭載されている。処理装置10は、移動体50に搭載されても良いし、移動体50とは別に設けられても良い。軌道Tは、移動体50が、セグメントディスプレイSD1及びSD2の前を通過するように設けられている。
【0108】
例えば、移動体50は、軌道Tに沿って移動し、撮像装置30によりセグメントディスプレイSD1又はSD2を撮影可能な位置に着くと、減速又は停止する。例えば、移動体50は、減速又は停止すると、撮像装置30に撮像の指令を送信する。又は、制御装置70から撮像装置30へ撮像の指令が送信されても良い。撮像装置30は、指令を受信すると、移動体50が減速又は停止している間に、セグメントディスプレイSD1又はSD2を撮影する。
【0109】
又は、移動体50は、撮像装置30がセグメントディスプレイSD1又はSD2をぶれずに撮影できる程度の速度で軌道Tに沿って移動する。撮像装置30によりセグメントディスプレイSD1又はSD2を撮影可能な位置に着くと、移動体50又は上記制御装置から撮像の指令が送信される。撮像装置30は、指令を受信すると、セグメントディスプレイSD1又はSD2を撮影する。撮像装置30は、撮影して画像を生成すると、移動体50に搭載された又は移動体50とは別に設けられた処理装置10へ、画像を送信する。
【0110】
セグメントディスプレイSD1近傍には、識別体ID1が設けられている。セグメントディスプレイSD2近傍には、識別体ID2が設けられている。例えば、取得装置60は、移動体50が減速又は停止している間に、識別体ID1又はID2の識別情報を取得する。
【0111】
例えば、移動体50がセグメントディスプレイSD1の前に移動する。撮像装置30は、セグメントディスプレイSD1を撮影し、画像を生成する。処理装置10は、この画像から、セグメントディスプレイSD1に表示された文字を識別する。また、取得装置60は、セグメントディスプレイSD1に対応する識別体ID1の識別情報を取得する。処理装置10は、識別された文字と、識別情報と、を紐付ける。
【0112】
又は、移動体50がセグメントディスプレイの前に移動した際、最初に、取得装置60が識別体の識別情報を取得しても良い。例えば、移動体50には、特定のセグメントディスプレイの文字を読み取るよう指令が送信される。この指令には、そのセグメントディスプレイの位置を示す情報が含まれる。記憶装置20には、各識別情報と各識別体の位置とが紐付けられて記憶されている。取得装置60が識別情報を取得すると、移動体50は、記憶装置20にアクセスする。移動体50は、その識別情報に紐付けられた識別体の位置を参照する。移動体50は、参照した識別体の位置が、文字を読み取るよう指令されたセグメントディスプレイの位置と合致しているか判定する。合致している場合、移動体50は、撮像装置30によりセグメントディスプレイSD1を撮影する。すなわち、この方法では、識別情報の読み取りが、セグメントディスプレイの文字を読み取る際のインターロックとして機能する。
【0113】
図18及び
図19は、実施形態に係る読取システムによる処理を例示するフローチャートである。
図18及び
図19を参照して、実施形態に係る読取システムによる処理の一例について説明する。
図18に表したように、撮像装置30が、セグメントディスプレイを撮影し、画像(第1画像)を取得する(ステップSt21)。処理装置10に取得された画像が入力される。処理装置10は、画像に写されたセグメントディスプレイの数字を読み取るとともに、読み取りの確度を算出する(ステップSt22)。処理装置10は、確度が第1閾値を超えるか判定する(ステップSt23)。確度が第1閾値以下のとき、撮影条件を変更する(ステップSt24)。その後、ステップSt21において、変更した撮影条件でセグメントディスプレイが再度撮影され、別の画像(第2画像)が取得される。確度が第1閾値を超えるとき、処理装置10は、その読取結果を採用する(ステップS25)。
【0114】
ステップSt24では、例えば、撮像装置30の露光時間、焦点距離、絞り、及び感度の少なくともいずれかの撮影条件を、直前のステップSt21が実行されたときの撮影条件から変更する。又は、読取システムが移動体50を備えるとき、ステップSt24において、移動体50が移動しても良い。すなわち、撮影条件として、移動体50の位置が含まれても良い。
【0115】
又は、確度が第1閾値以下のとき、撮像装置30は、撮影条件を変更せずにセグメントディスプレイを再度撮影しても良い。すなわち、ステップSt24を省略しても良い。セグメントディスプレイは、一般的に、所定の周期で点灯している。点灯の周期、撮影したタイミング、露光時間の関係により、数字が不鮮明に撮影されうる。同じ撮影条件でセグメントディスプレイを再度撮影することで、より鮮明な画像が得られる可能性がある。また、撮影条件を変更しないことで、再度撮影した画像が明るすぎ又は暗すぎとなる可能性を低減できる。
【0116】
又は、撮像装置30は、第1処理〜第7処理における処理の結果に応じて撮影条件を変更しても良い。例えば、第1スコア又は第5スコアが低いとき、画像が明るすぎる又は暗すぎる可能性がある。このため、第1スコア又は第5スコアが低いとき、撮像装置30は、露光時間、絞り、及び感度の少なくともいずれかを変更する。第2スコアが低いとき、画像が明るすぎる可能性がある。第2スコアが低いとき、撮像装置30は、露光時間の短縮、絞り値の増大、及び感度の低下の少なくともいずれかを実行する。例えば、第3処理において、算出部16は、第2方向D2における文字画像の長さに対する、第1方向D1における文字画像の長さの割合を算出する。さらに、算出部16は、文字画像の面積を計算する。割合が予め設定された比(割合)よりも大きく、且つ面積が予め設定された閾値よりも大きいとき、画像が明るすぎる可能性がある。このため、撮像装置30は、露光時間の短縮、絞り値の増大、及び感度の低下の少なくともいずれかを実行する。割合が予め設定された割合よりも小さく、且つ面積が閾値よりも小さいとき、画像が暗すぎる可能性がある。このため、撮像装置30は、露光時間の延長、絞り値の低減、及び感度の増大の少なくともいずれかを実行する。第1処理〜第7処理における処理結果に応じて撮影条件を変更することで、より適切な画像を取得できる可能性が高まる。
【0117】
図19に表したフローチャートでは、ステップSt23において確度が第1閾値以下と判定されると、処理装置10は、それまでに実行した読取の回数が規定値を超えるか判定する(ステップSt26)。読取の回数は、換言すると、ステップSt22の実行回数である。読取回数が規定値以下のとき、ステップSt24が実行される。読取回数が規定値を超えるとき、読取システムは、さらなる画像の取得は行わずに、結果を出力する(ステップSt27)。例えば、処理装置10は、読み取った数字、確度、及び画像を出力する。これにより、画像の取得が不必要に繰り返されることを防止できる。
【0118】
以上で説明した実施形態によれば、読取システム、読取方法、又は移動体の信頼性を向上できる。コンピュータ(処理装置)を受付部11、前処理部12、抽出部13、細線化部14、読取部15、算出部16、及び出力部17として動作させるための実施形態に係るプログラムを用いることで、読み取りの信頼性を向上できる。
【0119】
上記の種々のデータの処理は、例えば、プログラム(ソフトウェア)に基づいて実行される。例えば、コンピュータが、このプログラムを記憶し、このプログラムを読み出すことにより、上記の種々の情報の処理が行われる。
【0120】
上記の種々の情報の処理は、コンピュータに実行させることのできるプログラムとして、磁気ディスク(フレキシブルディスク及びハードディスクなど)、光ディスク(CD−ROM、CD−R、CD−RW、DVD−ROM、DVD±R、DVD±RWなど)、半導体メモリ、または、他の記録媒体に記録されても良い。
【0121】
例えば、記録媒体に記録された情報は、コンピュータ(または組み込みシステム)により読み出されることが可能である。記録媒体において、記録形式(記憶形式)は任意である。例えば、コンピュータは、記録媒体からプログラムを読み出し、このプログラムに基づいてプログラムに記述されている指示をCPUで実行させる。コンピュータにおいて、プログラムの取得(または読み出し)は、ネットワークを通じて行われても良い。
【0122】
実施形態に係る処理装置及び制御装置は、1つまたは複数の装置(例えばパーソナルコンピュータなど)を含む。実施形態に係る処理装置及び制御装置は、ネットワークにより接続された複数の装置を含んでも良い。
【0123】
以上、本発明のいくつかの実施形態を例示したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更などを行うことができる。これら実施形態やその変形例は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。また、前述の各実施形態は、相互に組み合わせて実施することができる。