(57)【要約】【課題】シンボルの境界の特定において、外乱ノイズによる影響を受けにくくし、処理時間を短縮する。【解決手段】シンボルのデコード結果からシンボルを構成するエレメントの基準位置を特定し、基準位置に基づく領域に対するプロファイル情報に基づいて前記領域がシンボル内にあるかを判定し、前記判定結果に応じて特定した境界要素候補に基づいてシンボルの境界を特定するシンボル境界特定装置（５）。【選択図】図１
2020140672.tif 000002
【特許請求の範囲】
【請求項１】
画像に含まれるシンボルをデコードすることにより、前記シンボルを構成する複数のエレメントの基準位置を特定するデコード部と、
前記基準位置を基にして設定される複数の領域に対してプロファイル情報を求めるプロファイル情報特定部と、
前記プロファイル情報に基づいて、前記領域が前記シンボル内にあるか否かを判定する判定部と、
前記シンボル内にあると判定された前記領域の位置情報を用いて、少なくとも１つの境界要素候補を特定する境界要素特定部と、
前記境界要素候補に基づいて、前記シンボルの少なくとも１つの境界を特定する境界特定部と、を備えるシンボル境界特定装置。
【請求項２】
前記デコード部は、さらに、デコード結果から得られる前記複数のエレメントに関する基準プロファイル情報を特定し、
前記判定部は、前記領域の前記プロファイル情報を、前記基準プロファイル情報と照合することにより、前記領域が前記シンボル内にあるか否かを判定する、請求項１に記載のシンボル境界特定装置。
【請求項３】
前記プロファイル情報特定部は、前記デコード部によって特定される前記複数のエレメントの前記基準位置の並びによって決定される基準方向に基づいて、前記領域の形状および位置の少なくとも１つを設定する、請求項１または２に記載のシンボル境界特定装置。
【請求項４】
前記プロファイル情報特定部は、１つの前記領域が前記複数のエレメントにまたがらないように前記領域を設定し、
前記判定部は、各領域が前記シンボル内にあるか否かを個別に判定する、請求項１から３のいずれか一項に記載のシンボル境界特定装置。
【請求項５】
前記プロファイル情報特定部は、１つの前記領域が前記複数のエレメントにまたがるように前記領域を設定する、請求項２に記載のシンボル境界特定装置。
【請求項６】
前記プロファイル情報は、画素値、画素値の変化、２値化データ、および、前記エレメントの幅のうち、少なくとも１つを含む、請求項１から５のいずれか一項に記載のシンボル境界特定装置。
【請求項７】
前記プロファイル情報は、前記エレメントの幅の正規化値を含む、請求項５に記載のシンボル境界特定装置。
【請求項８】
前記基準プロファイル情報は、２値化データ、エレメントの幅、および、前記エレメントの幅の正規化値のうち、少なくとも１つを含む、請求項２または５に記載のシンボル境界特定装置。
【請求項９】
前記プロファイル情報特定部は、
前記領域を含む画像に対して、前記エレメントを構成するモジュールのモジュール幅に収まるカーネルサイズを有する空間フィルタを用いたフィルタ処理を行い、
前記フィルタ処理を施した画像から抽出した画素値を用いて、前記プロファイル情報を求める請求項６または７に記載のシンボル境界特定装置。
【請求項１０】
前記シンボルは、前記複数のエレメントが２次元に配列した二次元シンボルであり、
前記プロファイル情報特定部は、前記シンボルのうち最も外側に並んでいる前記複数のエレメントの前記基準位置を基にして設定される前記複数の領域に対して前記プロファイル情報を求める、請求項１から９のいずれか一項に記載のシンボル境界特定装置。
【請求項１１】
前記画像には前記シンボルとは別に光学的読取媒体が含まれており、
特定された前記シンボルの前記境界を基準にして、前記光学的読取媒体の認識を行う領域を特定する領域特定部を備える請求項１から１０のいずれか一項に記載のシンボル境界特定装置。
【請求項１２】
画像に含まれるシンボルをデコードすることにより、前記シンボルを構成する複数のエレメントの基準位置を特定するデコードステップと、
前記基準位置を基にして設定される複数の領域に対してプロファイル情報を求めるプロファイル情報特定ステップと、
前記プロファイル情報に基づいて、前記領域が前記シンボル内にあるか否かを判定する判定ステップと、
前記シンボル内にあると判定された前記領域の位置情報を用いて、少なくとも１つの境界要素候補を特定する境界要素特定ステップと、
前記境界要素候補に基づいて、前記シンボルの少なくとも１つの境界を特定する境界特定ステップと、を含むシンボル境界特定方法。
【請求項１３】
請求項１に記載のシンボル境界特定装置としてコンピュータを機能させるための画像処理プログラムであって、前記デコード部、前記プロファイル情報特定部、前記判定部、前記境界要素特定部、および前記境界特定部としてコンピュータを機能させるための画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像に含まれるシンボルの境界を特定するシンボル境界特定装置に関する。
【背景技術】
【０００２】
物品の識別、管理等のために、一次元シンボル、二次元シンボル等の情報を有するシンボルを用いられている。
【０００３】
シンボルを用いた技術として、例えば、特許文献１には、二次元コード読み取り装置が開示されている。詳細には、当該読み取り装置は、ガイドセル頂点を検出して二次元コード概略存在領域を定める二次元コード概略存在領域決定部を備えている。また、当該読み取り装置は、ガイドセル外接線を検出するガイドセル外接線検出部と、タイミングセル外接線を検出するタイミングセル外接線検出部と、タイミングセルを検出するタイミングセル検出部等を備えて構成されている。ガイドセルとタイミングセルとは二次元コードの外縁を形成する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００２−３２９１６３号公報（２００２年１１月１５日公開）
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、上述のような従来技術は、シンボルの境界の特定に対し、外乱ノイズの影響を受け易い。外乱ノイズとは、例えば、シンボルの外側に設けられたクワイエットゾーンの汚れ、印字ムラおよび鋳肌に印字されることによって生じるシンボルのエッジにおけるノイズ等である。
【０００６】
上述のような情報を有するシンボルには、当該シンボルに隣り合うように文字列を備えているものがある。シンボル読み取り装置等では、文字列が存在する領域を文字認識領域として設定する。その後、シンボル読み取り装置等では文字認識領域における文字列の認識処理が行われる。このようなシンボル読み取り装置において、シンボルの境界の特定が適切に行われないと、文字認識領域を適切に設定することができない。文字認識領域を適切に設定することができないことは、文字認識の失敗、文字認識の処理時間の遅延等の原因となり得る。
【０００７】
本発明の一態様は、シンボルの境界の特定において、外乱ノイズによる影響を受けにくく、処理時間を短縮できるシンボル読み取り装置等を実現することを目的とする。
【課題を解決するための手段】
【０００８】
前記の課題を解決するために、本発明の一態様に係るシンボル境界特定装置は、画像に含まれるシンボルをデコードすることにより、前記シンボルを構成する複数のエレメントの基準位置を特定するデコード部と、前記基準位置を基にして設定される複数の領域に対してプロファイル情報を求めるプロファイル情報特定部と、前記プロファイル情報に基づいて、前記領域が前記シンボル内にあるか否かを判定する判定部と、前記シンボル内にあると判定された前記領域の位置情報を用いて、少なくとも１つの境界要素候補を特定する境界要素特定部と、前記境界要素候補に基づいて、前記シンボルの少なくとも１つの境界を特定する境界特定部と、を備える。
【０００９】
また、本発明の一態様に係るシンボル境界特定方法は、画像に含まれるシンボルをデコードすることにより、前記シンボルを構成する複数のエレメントの基準位置を特定するデコードステップと、前記基準位置を基にして設定される複数の領域に対してプロファイル情報を求めるプロファイル情報特定ステップと、前記プロファイル情報に基づいて、前記領域が前記シンボル内にあるか否かを判定する判定ステップと、前記シンボル内にあると判定された前記領域の位置情報を用いて、少なくとも１つの境界要素候補を特定する境界要素特定ステップと、前記境界要素候補に基づいて、前記シンボルの少なくとも１つの境界を特定する境界特定ステップと、を含む。
【００１０】
前記の構成によれば、シンボルをデコードすることにより特定された複数のエレメントの基準位置を基にした領域のうち、シンボル内にあると判定された領域の位置情報を用いて、シンボルの少なくとも１つの境界を特定する。すなわち、シンボル内にあると判定された領域の位置情報を用いるため、シンボルの境界の特定において、外乱ノイズによる影響を受けにくくすることができる。
【００１１】
また、前記の構成によれば、シンボルをデコードすることにより特定された複数のエレメントを用いる。すなわち、デコード処理により得られた情報を利用してシンボルの境界の特定を行うことができる。そのため、シンボル境界特定の処理時間を短縮することができる。
【００１２】
本発明の一態様に係るシンボル境界特定装置は、前記デコード部は、さらに、デコード結果から得られる前記複数のエレメントに関する基準プロファイル情報を特定し、前記判定部は、前記領域の前記プロファイル情報を、前記基準プロファイル情報と照合することにより、前記領域が前記シンボル内にあるか否かを判定してもよい。
【００１３】
前記の構成によれば、デコード処理により得られた情報をシンボルの境界の特定に利用することができる。
【００１４】
本発明の一態様に係るシンボル境界特定装置は、前記プロファイル情報特定部は、前記デコード部によって特定される前記複数のエレメントの前記基準位置の並びによって決定される基準方向に基づいて、前記領域の形状および位置の少なくとも１つを設定してもよい。
【００１５】
例えば、前記基準方向とは、シンボルのデコードにおけるスキャン方向であってもよい。前記の構成によれば、シンボルのデコードにおけるスキャン方向に基づいて、シンボル内にあるか否かが判定される領域の形状および位置を設定することができる。
【００１６】
本発明の一態様に係るシンボル境界特定装置は、前記プロファイル情報特定部は、１つの前記領域が前記複数のエレメントにまたがらないように前記領域を設定し、前記判定部は、各領域が前記シンボル内にあるか否かを個別に判定してもよい。
【００１７】
前記の構成によれば、複数のエレメントにまたがらない領域、例えば、個別のエレメントを対象とした領域を設定し、当該領域を用いてシンボル境界を特定するシンボル境界特定装置を実現することができる。
【００１８】
本発明の一態様に係るシンボル境界特定装置は、前記プロファイル情報特定部は、１つの前記領域が前記複数のエレメントにまたがるように前記領域を設定してもよい。
【００１９】
前記の構成によれば、複数のエレメントにまたがる領域、例えば、複数のエレメントを対象とする領域を設定し、当該領域を用いてシンボル境界を特定するシンボル境界特定装置を実現することができる。例えば、複数のエレメントを対象とする領域を設定し、当該領域を用いて個別のエレメントのシンボル境界を特定してもよい。
【００２０】
本発明の一態様に係るシンボル境界特定装置は、前記プロファイル情報は、画素値、画素値の変化、２値化データ、および、前記エレメントの幅のうち、少なくとも１つを含んでもよい。
【００２１】
前記の構成によれば、画素値、画素値の変化、２値化データ、および、前記エレメントの幅のうち、少なくとも１つを利用してシンボル境界を特定するシンボル境界特定装置を実現することができる。
【００２２】
本発明の一態様に係るシンボル境界特定装置は、前記プロファイル情報は、前記エレメントの幅の正規化値を含んでもよい。
【００２３】
前記の構成によれば、エレメントの幅の正規化値を利用してシンボル境界を特定するシンボル境界特定装置を実現することができる。エレメントの幅の正規化値は、例えば、シンボル全体の幅、または、シンボルの一部の構成の幅に対するエレメントの幅の比率としてもよい。
【００２４】
本発明の一態様に係るシンボル境界特定装置は、前記基準プロファイル情報は、２値化データ、エレメントの幅、および、前記エレメントの幅の正規化値のうち、少なくとも１つを含んでもよい。
【００２５】
前記の構成によれば、基準プロファイル情報として、デコード処理により得られた２値化データ、エレメントの幅、および、前記エレメントの幅の正規化値のうち、少なくとも１つを利用してシンボル境界を特定するシンボル境界特定装置を実現することができる。
【００２６】
本発明の一態様に係るシンボル境界特定装置は、前記プロファイル情報特定部は、前記領域を含む画像に対して、前記エレメントを構成するモジュールのモジュール幅に収まるカーネルサイズを有する空間フィルタを用いたフィルタ処理を行い、前記フィルタ処理を施した画像から抽出した画素値を用いて、前記プロファイル情報を求めてもよい。
【００２７】
前記の構成によれば、フィルタ処理された画像から求められるプロファイル情報を利用してシンボル境界を特定するシンボル境界特定装置を実現することができる。
【００２８】
本発明の一態様に係るシンボル境界特定装置は、前記シンボルは、前記複数のエレメントが２次元に配列した二次元シンボルであり、前記プロファイル情報特定部は、前記シンボルのうち最も外側に並んでいる前記複数のエレメントの前記基準位置を基にして設定される前記複数の領域に対して前記プロファイル情報を求めてもよい。
【００２９】
前記の構成によれば、二次元シンボルにおけるシンボルの境界を特定することができる。
【００３０】
本発明の一態様に係るシンボル境界特定装置は、前記画像には前記シンボルとは別に光学的読取媒体が含まれており、特定された前記シンボルの前記境界を基準にして、前記光学的読取媒体の認識を行う領域を特定する領域特定部を備えてもよい。
【００３１】
前記の構成によれば、シンボル境界の特定において外乱ノイズの影響を抑制し、光学的読取媒体の認識を行う領域を特定することができる。ここで、光学的読取媒体とは、例えば、数字を含む文字列等であってもよい。
【００３２】
本発明の一態様に係る画像処理プログラムは、前記シンボル境界特定装置としてコンピュータを機能させるための画像処理プログラムであって、前記デコード部、前記プロファイル情報特定部、前記判定部、前記境界要素特定部、および前記境界特定部としてコンピュータを機能させてもよい。
【発明の効果】
【００３３】
本発明の一態様によれば、シンボルの境界の特定において、外乱ノイズの影響を受けにくくすることができ、シンボルの境界の特定の処理時間を短縮することができる。
【図面の簡単な説明】
【００３４】
【図１】本発明の実施形態に係るシンボル読取り装置の要部構成の一例を示すブロック図である。
【図２】本発明の実施形態に係るシンボル境界特定装置が境界を特定するシンボルの一例を示す図である。
【図３】（ａ）から（ｃ）は、本発明の実施形態に係るシンボル境界特定装置が境界を特定するシンボルの種類の例を示す図である。
【図４】（ａ）から（ｄ）は、本発明の実施形態に係るシンボル境界特定装置が境界を特定するシンボルの種類の他の例を示す図である。
【図５】本発明の実施形態に係るシンボル境界特定装置が実行する処理の流れの一例を示すフローチャートである。
【図６】本発明の実施形態に係るプロファイル情報特定部が走査線の方向を設定する方法の概要を示す図である。
【図７】（ａ）から（ｄ）は、本発明の実施形態に係るプロファイル情報特定部がモジュール配置方向を設定する方法の一例を示す図である。
【図８】（ａ）から（ｄ）は、本発明の実施形態に係る境界点候補の特定の一例を示す図である。
【図９】（ａ）から（ｄ）は、本発明の実施形態に係る複数の境界点を個別に特定する処理の流れを示す模式図である。
【図１０】（ａ）から（ｃ）は、本発明の実施形態に係る境界点候補の特定の他の一例を示す図である。
【図１１】（ａ）から（ｃ）は、本発明の実施形態に係る境界点候補の特定の他の一例を示す図である。
【図１２】（ａ）から（ｃ）は、本発明の実施形態に係る複数の境界点を同時に特定する処理の流れの一例を示す模式図である。
【図１３】（ａ）から（ｅ）は、本発明の実施形態に係る複数の検証点から１つの境界点候補を特定する処理の流れの一例を示す模式図である。
【図１４】（ａ）から（ｃ）は、本発明の実施形態に係るスキャンライン方向のエレメントの幅を用いて境界点候補を特定する処理の流れの一例を示す模式図である。
【図１５】（ａ）および（ｂ）は、本発明の実施形態に係るスキャンラインの方向の複数のエレメントの幅を用いて、１つの境界点候補を特定する処理の流れの一例を示す模式図である。
【図１６】（ａ）から（ｃ）は、本発明の実施形態に係るエレメント幅の比率を用いて、１つの境界点候補を特定する処理の流れの一例を示す模式図である。
【図１７】本発明の実施形態に係るエレメント幅の比率を用いて、１つの境界点候補を特定する概要を示す図である。
【図１８】（ａ）および（ｂ）は、本発明の実施形態に係る所定の幅ｐに対する複数のエレメントのセットの幅の比率を用いて、１つの境界点候補を特定する処理の流れの一例を示す模式図である。
【図１９】本発明の変形例に係るシンボル境界特定装置が境界を特定する二次元シンボルの一例を示す図である。
【発明を実施するための形態】
【００３５】
〔実施形態〕
以下、本発明の一側面に係る実施の形態（以下、「本実施形態」とも表記する）を、図面に基づいて説明する。
【００３６】
§１  適用例
図２は、本実施形態に係る、シンボル境界特定装置５が境界を特定するシンボルの一例を示す図である。はじめに、図２を用いてシンボル境界特定装置５の適用例の概要を説明する。図２に示すシンボルは、二次元シンボルの一例を示している。図２に示すように、当該シンボルは、シンボル境界内の領域Ｒ１に配置している。また、シンボルの境界内の領域Ｒ１に隣接するように、文字認識領域Ｒ２が配置している。文字認識領域Ｒ２には文字列が配置している。例えば、シンボル読み取り装置１はシンボル境界から文字認識領域Ｒ２を特定し、文字認識領域Ｒ２内に配置している文字列の認識処理を行う。
【００３７】
シンボル境界特定装置５は、外乱ノイズによる影響を受けにくい、かつ、短い処理時間で、シンボルの境界を特定するものである。上述したように、外乱ノイズとは、例えば、シンボルの外側に設けられたクワイエットゾーンの汚れ、印字ムラおよび鋳肌に印字されることによって生じるシンボルのエッジにおけるノイズ等である。
【００３８】
図３は、シンボル境界特定装置５が境界を特定するシンボルの種類の例を示す図である。図３の（ａ）は、一次元シンボル（例えば、code39、code128）の一例を示す図である。図３の（ｂ）は、マルチロー型の二次元シンボル（例えば、microPDF417）の一例を示す図である。図３の（ｃ）は、マトリックス型の二次元シンボル（例えば、QRコード（登録商標））の一例を示す図である。
【００３９】
ここで、シンボルの構成の一例について、図３の（ａ）を用いて説明する。シンボルは複数の最小単位であるモジュールから構成されている。図３の（ａ）に示す例では、シンボルはモジュールｍ１からｍ１３によって構成されている。また、各モジュールには、シンボル色または背景色の色が付与されている。図３の（ａ）に示す例では、モジュールｍ１、ｍ３、ｍ４、ｍ８、ｍ９、ｍ１１およびｍ１３には黒色のシンボル色が付与されている。一方、モジュールｍ２、ｍ５、ｍ６、ｍ７、ｍ１０およびｍ１２には白色の背景色が付与されている。
【００４０】
同色の隣接するモジュールは、例えば、バーまたはスペースであるエレメントを構成する。図３の（ａ）に示す例では、モジュールｍ３およびｍ４は一つのエレメント（バー）Ｅ３を構成する。また、モジュールｍ５、ｍ６およびｍ７は一つのエレメント（スペース）Ｅ４を構成する。なお、図３の（ａ）のＥ１、Ｅ２等に示すように、隣接するモジュールが同色でない場合は、単独のモジュールが１つのエレメントを構成する。
【００４１】
図４の（ａ）から（ｄ）は、シンボル境界特定装置５が境界を特定するシンボルの種類の他の例を示す図である。図４の（ａ）は、モジュールに付与するシンボル色が黒色であり、背景色が白色であり、シンボルの周辺の周辺色が白色の場合のシンボルの一例を示している。図４の（ｂ）は、モジュールに付与するシンボル色が黒色であり、背景色が白色であり、シンボルの周辺の周辺色が黒色の場合のシンボルの一例を示している。図４の（ｃ）は、モジュールに付与するシンボル色が黒色であり、背景色が白色であり、シンボルの周辺の周辺色が白色の場合のシンボルの一例を示している。図４の（ｄ）は、モジュールに付与するシンボル色が白色であり、背景色が黒色であり、シンボルの周辺の周辺色が黒色の場合のシンボルの一例を示している。以降の説明では、説明の便宜上、シンボル色が黒色であり、背景色が白色であり、シンボルの周辺の周辺色が白色の場合のシンボルについて説明を行うが、シンボルを構成するモジュールの色のパターンは特に限定されない。
【００４２】
シンボル境界特定装置５は、画像に含まれるシンボルをデコードすることにより、当該シンボルを構成する複数のエレメントの基準位置を特定する。基準位置とは、例えば、シンボルのデコード処理に用いたスキャンラインにおける各エレメントのエッジ点から算出される各エレメントを構成するモジュールの中心などとしてもよい。
【００４３】
また、シンボル境界特定装置５は、当該基準位置を基にして設定される複数の領域に対してプロファイル情報を求め、プロファイル情報に基づいて、前記領域がシンボル内にあるか否かを判定する。例えば、シンボル境界特定装置５はエレメントの中心からエレメントの外側に向かって当該領域を設定しプロファイル情報を求めることを、順次行うことでエレメント内を走査してもよい。
【００４４】
プロファイル情報は、画素値、画素値の変化、２値化データ、および、前記エレメントの幅、エレメントの幅の正規化値（所定の幅に対するエレメントの幅の比率）等としてもよい。
【００４５】
シンボル境界特定装置５はシンボル内にあると判定された領域の位置情報を用いて、少なくとも１つの境界要素候補を特定し、当該境界要素候補に基づいて、シンボルの少なくとも１つの境界を特定する。
【００４６】
上記の構成によれば、シンボルをデコードすることにより特定された複数のエレメントの基準位置を基にした領域のうち、シンボル内にあると判定された領域の位置情報を用いて、シンボルの少なくとも１つの境界を特定する。
【００４７】
すなわち、シンボル内にあると判定された領域の位置情報を用いるため、シンボルの境界の特定において、シンボル外の外乱ノイズによる影響を受けにくくすることができる。
【００４８】
また、上記の構成によれば、画像に含まれるシンボルをデコードすることにより、当該シンボルを構成する複数のエレメントの基準位置を特定する。すなわち、デコード処理によって得られた情報を利用してシンボルの境界の特定を行うことができる。そのため、シンボル境界特定の処理時間を短縮することができる。
【００４９】
§２  構成例
（シンボル読取り装置１）
図１は、本実施形態に係る、シンボル境界特定装置５の要部構成の一例を示すブロック図である。本実施形態では、シンボル境界特定装置５はシンボル読取り装置１と一体型となっている例について示すが、シンボル境界特定装置５はシンボル読取り装置１から分離されていてもよい。
【００５０】
図１に示すようにシンボル読取り装置１は、カメラ２、出力部３、制御部４、および記憶部５８を備えている。また、シンボル境界特定装置５は制御部４の一部の構成と記憶部５８とから構成されている。
【００５１】
（カメラ２）
カメラ２はシンボルを撮影するものである。カメラ２はシンボルが撮影された画像データを画像取得部５１に出力する。
【００５２】
（制御部４）
制御部４は、ＣＰＵ（Central Processing Unit）、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）等を含み、情報処理に応じて各構成要素の制御を行う。制御部４は、画像取得部５１、デコード部５２、プロファイル情報特定部５３、判定部５４、境界要素特定部５５、境界特定部５６、領域特定部５７および文字読取部６を備えている。制御部４が備えている構成のうち、画像取得部５１、デコード部５２、プロファイル情報特定部５３、判定部５４、境界要素特定部５５、境界特定部５６および領域特定部５７はシンボル境界特定装置５の構成部材となる。
【００５３】
（画像取得部５１）
画像取得部５１は、カメラ２から出力されたシンボルが撮影された画像データを取得し、デコード部５２に出力する。
【００５４】
（デコード部５２）
デコード部５２は、画像データに撮像されているシンボルのデコードを行う。シンボルのデコード方法については、公知の技術を適宜用いればよく特に限定されない。デコード部５２はデコードしたシンボルが有する情報を示す信号を出力部３を介して上位システム１０に出力する。
【００５５】
上位システム１０は、シンボル読取り装置１の動作を制御する、例えば、パーソナルコンピュータやプログラマブルコントローラ（ＰＬＣ）などである。
【００５６】
また、デコード部５２は、画像に含まれるシンボルをデコードすることにより、シンボルを構成する複数のエレメントの基準位置を特定する。
【００５７】
基準位置は、例えば、シンボルのデコード処理に用いたスキャンラインにおける各エレメントのエッジ点としてもよいし、当該エッジ点から各エレメントを構成するモジュールの中心を基準位置として算出してもよい。例えば、1つのエレメントが含んでいる複数のモジュールのそれぞれの中心を、基準位置として算出してもよい。デコード部５２は基準位置を示す信号をプロファイル情報特定部５３に出力する。
【００５８】
また、デコード部５２は、さらに、デコード結果から得られる複数のエレメントに関する基準プロファイル情報５８１を特定してもよい。デコード部５２は、基準プロファイル情報５８１を記憶部５８に格納する。
【００５９】
上記の構成によれば、デコード処理により得られた情報をシンボルの境界の特定に利用することができる。
【００６０】
基準プロファイル情報５８１は、例えば、シンボルのデコード処理に用いたスキャンラインにおける各エレメントの画素値の２値化データまたは各エレメントを構成するモジュールの画素値の２値化データ、各エレメントの幅、および、各エレメントの幅の正規化値（所定の幅に対する各エレメントの幅の比率）のうち、少なくとも１つを含む。
【００６１】
また、デコード部５２はシンボルが撮像されている画像データ５８３を記憶部５８に格納する。
【００６２】
上記の構成によれば、基準プロファイル情報として、デコード処理により得られた２値化データ、エレメントの幅、および、前記エレメントの幅の正規化値のうち、少なくとも１つを利用してシンボル境界を特定するシンボル境界特定装置を実現することができる。
【００６３】
また、デコード部５２は、前記エレメントを構成するモジュールのモジュール幅に収まる範囲の画素にフィルタ処理を施して基準プロファイル情報５８１を求めてもよい。
【００６４】
前記の構成によれば、フィルタ処理された画素から求められる基準プロファイル情報５８１を利用してシンボル境界を特定するシンボル境界特定装置を実現することができる。
【００６５】
（プロファイル情報特定部５３）
プロファイル情報特定部５３は、デコード部５２から入力された信号が示す基準位置を基にして複数の領域を設定する。
【００６６】
詳細には、プロファイル情報特定部５３は、デコード部５２によって特定される複数のエレメントの基準位置の並びによって決定される基準方向に基づいて、領域の形状および位置の少なくとも１つを設定する。なお、上記基準方向とは、シンボルのデコード処理に用いたスキャンラインの方向であってもよい。また、領域の形状については１つの画素であってもよいし、線分であってもよし、矩形形状であってもよい。また、位置についての具体例は、後述の「境界点候補の特定例」にて詳細に説明する。
【００６７】
上記の構成によれば、シンボルのデコードにおけるスキャン方向に基づいて、シンボル内にあるか否かが判定される領域の形状および位置を設定することができる。
【００６８】
プロファイル情報特定部５３は、１つの領域が複数のエレメントにまたがらないように上記領域を設定してもよい。
【００６９】
上記の構成によれば、複数のエレメントにまたがらない領域、例えば、個別のエレメントを対象とした領域を設定し、当該領域を用いてシンボル境界を特定するシンボル境界特定装置５を実現することができる。
【００７０】
また、プロファイル情報特定部５３は、１つの領域が複数のエレメントにまたがるように上記領域を設定してもよい。
【００７１】
上記の構成によれば、複数のエレメントにまたがる領域、例えば、複数のエレメントを対象とする領域を設定し、当該領域を用いてシンボル境界を特定するシンボル境界特定装置５を実現することができる。例えば、複数のエレメントを対象とする領域を設定し、当該領域を用いて個別のエレメントのシンボル境界を特定してもよい。
【００７２】
また、プロファイル情報特定部５３は当該複数の領域に対してプロファイル情報を求める。例えば、プロファイル情報特定部５３は、記憶部５８に格納されている画像データ５８３を用いてプロファイル情報を生成してもよい。
【００７３】
プロファイル情報は、例えば、画素値、画素値の変化、２値化データ、および、エレメントの幅のうち、少なくとも１つを含む。
【００７４】
上記の構成によれば、画素値、画素値の変化、２値化データ、および、前記エレメントの幅のうち、少なくとも１つを利用してシンボル境界を特定するシンボル境界特定装置５を実現することができる。
【００７５】
また、プロファイル情報は、エレメントの幅の正規化値（所定の幅に対するエレメントの幅に比率）を含んでもよい。
【００７６】
プロファイル情報特定部５３は、設定した領域の位置情報を示す信号および当該領域のプロファイル情報を示す信号を判定部５４に出力する。
【００７７】
上記の構成によれば、エレメントの幅の正規化値を利用してシンボル境界を特定するシンボル境界特定装置を実現することができる。エレメントの幅の正規化値は、例えば、シンボル全体の幅、または、シンボルの一部の構成の幅に対するエレメントの幅の比率としてもよい。
【００７８】
（判定部５４）
判定部５４は、入力されたプロファイル情報に基づいて、プロファイル情報特定部５３が特定した領域がシンボル内にあるか否かを判定する。
【００７９】
例えば、判定部５４は、プロファイル情報を、記憶部５８に格納されている基準プロファイル情報５８１と照合することにより、前記領域がシンボル内にあるか否かを判定してもよい。例えば、判定部５４は記憶部５８に格納されている判定基準の閾値等を示す判定情報５８２を参照し当該判定を行ってもよい。
【００８０】
また、判定部５４は、複数のエレメントにまたがらないように設定された各領域に対して、各領域が前記シンボル内にあるか否かを個別に判定してもよい。
【００８１】
判定部５４は、各領域に対する判定結果を示す信号と当該領域の位置情報を示す信号を境界要素特定部５５に出力する。
【００８２】
また、判定部５４は、ある領域がシンボル内にないと判定すると、プロファイル情報特定部５３に領域の設定の終了および当該領域に対するプロファイル情報の生成の終了を指示してもよい。
【００８３】
（境界要素特定部５５）
境界要素特定部５５は、シンボル内にあると判定された領域の位置情報を用いて、シンボルにおける少なくとも１つの境界要素候補を特定する。プロファイル情報特定部５３はエレメント内の基準位置からエレメントの外側に向かって順次領域を設定しプロファイル情報を求め判定部５４は当該領域がシンボル内にあるか否かを判定し、エレメント内の走査が行われてもよい。
【００８４】
このような構成において、１つ前の判定で領域がシンボル内にあると判定され、かつ、領域がシンボル内にないと判定された場合に、領域がシンボル内にないと判定された領域の位置を境界要素候補としてもよい。あるいは、１つ前の判定で領域がシンボル内にあると判定され、かつ、今回の判定で領域がシンボル内にないと判定された場合に、１つ前の判定で領域がシンボル内にあると判定された領域の位置を境界要素候補としてもよい。
【００８５】
すなわち、当該構成においては、境界要素特定部５５は、１つ前の判定に用いられたシンボル内にあると判定された領域の位置情報を参照して次に設定されたシンボル内にないと判定された領域の位置を境界要素候補としてもよい。また、１つ後の判定に用いられたシンボル外にあると判定された領域の位置情報を参照して、1つ前に設定されたシンボル内にあると判定された領域の位置を境界要素候補としてもよい。境界要素特定部５５は、境界要素候補の位置を示す信号を境界特定部５６に出力する。
【００８６】
（境界特定部５６）
境界特定部５６は、境界要素候補に基づいて、シンボルの少なくとも１つの境界を特定する。境界特定部５６は、特定した境界を示す信号を領域特定部５７に出力する。
【００８７】
（領域特定部５７）
画像データにはシンボルとは別に文字列等（光学的読取媒体）が含まれていてもよい。領域特定部５７は特定されたシンボルの境界を基準にして、文字列等の認識を行う領域を特定する。領域特定部５７は特定した文字列等の認識を行う領域を示す信号を文字読取部６に出力する。
【００８８】
上記の構成によれば、シンボル境界の特定に対する外乱ノイズの影響を抑制し、光学的読取媒体の認識を行う領域を特定することができる。
【００８９】
（文字読取部６）
文字読取部６は、領域特定部５７が特定した文字列等の認識を行う領域における文字列の認識処理を行い、文字を読み取る。文字読取部６は、読み取った文字列を示す信号を出力部３を介して上位システム１０に出力する。
【００９０】
（出力部３）
出力部３は、外部の機器に信号を出力するものである。特に本実施形態では、文字読取部６が読み取った文字列を示す信号およびデコード部５２がデコードしたシンボルが有する情報を示す信号を上位システム１０に出力する。
【００９１】
（記憶部５８）
記憶部５８は、例えば、フラッシュメモリ、ソリッドステートドライブ等の補助記憶装置であり、上述の基準プロファイル情報５８１、判定情報５８２、画像データ５８３等を記憶する。
【００９２】
§３  動作例
図５は、シンボル境界特定装置５が実行する処理の流れの一例を示すフローチャートである。図５に示すように、例えば、上位システム１１からの指示をトリガーとしてカメラ２は対象となるシンボルを撮像し、画像取得部５１は画像データを取得する（Ｓ１）。続いて、デコード部５２は、画像データに撮像されているシンボルのデコードを行う（Ｓ２：デコードステップ）。なお、ステップＳ２にて、デコード部５２は、シンボルをデコードすることにより、シンボルを構成する複数のエレメントの基準位置を特定してもよい。続いて、処理は境界推定処理（Ｓ３）に移行する。
【００９３】
境界推定処理（Ｓ３）では、プロファイル情報特定部５３は走査線を設定する（Ｓ３１）。
【００９４】
（走査線（モジュール配置方向）の設定例）
図６は本実施形態に係るプロファイル情報特定部５３が走査線の方向を設定する方法の概要を示す図である。なお、本明細書においては上記走査線の方向をモジュール（エレメント）配置方向とも呼ぶ。図６に示すように、プロファイル情報特定部５３は、デコード部５２がシンボルのデコードに用いたスキャンラインと、任意のエレメントＥ（例えば、バー）のエッジとが交差している点Ｐ１を検出する。プロファイル情報特定部５３は、点Ｐ１を追跡開始点として、エレメントＥのエッジ上の点を順次追跡する。プロファイル情報特定部５３は、対象エレメントのエッジ上の点の追跡方向をモジュール配置方向とする。
【００９５】
図７の（ａ）から（ｄ）は、本実施形態に係るプロファイル情報特定部５３がモジュール配置方向を設定する方法の一例を示す図である。プロファイル情報特定部５３がモジュール配置方向を設定する具体的な方法の一例について説明する。
【００９６】
（Ｉ）図７の（ａ）に示すように、プロファイル情報特定部５３は、追跡開始点Ｐ１からスキャンラインＬに対して垂直方向に微小距離移動した位置に、スキャンラインＬと平行な小領域ＳＲを設定する。なお、微小距離は、1pixのように固定値としてもよいし、0.5モジュールのように、モジュールサイズに応じた変動値としてもよい。
【００９７】
（ＩＩ）続いて、図７の（ｂ）に示すように、プロファイル情報特定部５３は、設定した小領域ＳＲおいて、シンボルの内側から外側に向かって（図７の（ｂ）の矢印で示す方向）エレメントＥのエッジ点Ｐ２を検出する。例えば、プロファイル情報特定部５３は、シンボル色が黒色であり背景色が白色である場合、画素が黒色から白色に切り替わる位置をエッジ点として検出してもよい。
【００９８】
（ＩＩＩ）続いて、図７の（ｃ）に示すように、プロファイル情報特定部５３は、エッジ点Ｐ２からスキャンラインＬとは垂直方向に、微小距離移動した位置に、スキャンラインＬと平行な小領域ＳＲ２を設定する。プロファイル情報特定部５３は、（ＩＩ）と同様にして、エレメントＥの次のエッジ点を検出する。
【００９９】
（ＩＶ）続いて、プロファイル情報特定部５３は、エッジ点が検出できなくなるまで、（ＩＩＩ）と同様の工程を繰り返す。プロファイル情報特定部５３は、最後に検出したエッジ点を追跡終了点とする。プロファイル情報特定部５３は、追跡開始点と追跡終了点とを通過する直線の方向をモジュール配置方向に設定する。
【０１００】
例えば、プロファイル情報特定部５３は、対象となるエレメント内にモジュール配置方向の走査線を設定する。プロファイル情報特定部５３は、シンボルのデコード処理に用いたスキャンラインにおけるエレメントのエッジ点から算出される各エレメントを構成するモジュールの中心位置を通過するように当該走査線を設定してもよい。
【０１０１】
Ｓ３１に続き、プロファイル情報特定部５３は基準位置を基にして設定される領域のプロファイル情報を特定する（Ｓ３２：プロファイル情報特定ステップ）。例えば、プロファイル情報特定部５３は上記領域を設定しプロファイル情報を特定することを、エレメントの内側からエレメントの外側に向かって順次行う。プロファイル情報特定部５３は上記領域を当該走査線に沿って設定する。続いて、判定部５４はプロファイル情報に基づいて、領域がシンボル内にあるか否かを判定する（Ｓ３３：判定ステップ）。判定部５４が、領域がシンボル内にないと判定した場合（Ｓ３３でＮＯ）、境界要素特定部５５はシンボル内にあると判定された領域の位置情報を用いて、少なくとも１つの境界要素候補を特定する（Ｓ３４：境界要素特定ステップ）。続いて、境界特定部５６は、境界要素候補に基づいて、シンボルの少なくとも１つの境界を特定し（Ｓ３５：境界特定ステップ）、処理は終了する。なお、判定部５４が、領域がシンボル内にあると判定した場合（Ｓ３３でＹＥＳ）、処理はＳ３２に戻る。
【０１０２】
例えば、境界特定部５６は、直線近似や曲線近似を用いて、シンボルの境界の４辺を求めてもよい。この構成において、境界特定部５６は、直線などの交点をシンボルの境界の４隅としてもよい。また、境界特定部５６は、複数の境界要素候補を内包するように各境界（辺）を特定してもよい。
【０１０３】
（境界点候補の特定例）
次に、プロファイル情報特定部５３が行う領域の設定から境界要素特定部５５が行う境界要素候補（境界点候補）の特定までの処理の具体例について説明する。
【０１０４】
なお、下記の例において用いられる走査方向および走査線は、上記の「走査線（モジュール配置方向）の設定例」にて生成された走査線の方向および走査線を用いてもよい。
【０１０５】
（境界点候補の特定例１）
図８の（ａ）は境界点候補の特定の一例の概要を示す図である。本例においては、基準位置をデコード部５２がシンボルのデコードに用いたスキャンラインＬ上のモジュールあるいはエレメントの中心点Ｐ０とする。プロファイル情報特定部５３は中心点Ｐ０を開始点として、モジュール配置方向であるＤ１に沿って、画素（領域）の画素値（輝度値）を画像データ５８３から取得する。すなわち、プロファイル情報特定部５３はエレメントの内側から外側に向かってプロファイル情報として画素値を取得する。
【０１０６】
図８の（ｂ）は、プロファイル情報特定部５３が取得する輝度値の一例を示すグラフである。当該グラフの縦軸は輝度値を示し、横軸は開始点からの距離を示している。図８の（ｂ）に示すように、エレメント内に位置する開始点から所定の距離までの画素の輝度値（画素値）は一定となっている。開始点から所定の距離を越えた位置の画素はエレメントの外側に位置することになる。そのため、エレメントの外側に位置する画素の輝度値（画素値）はエレメント内である所定の距離までの画素の輝度値（画素値）から切り替わる。
【０１０７】
図８の（ｃ）は、プロファイル情報特定部５３が取得する輝度値の微分値の例を示すグラフである。当該グラフの縦軸は輝度値の微分値を示し、横軸は開始点からの距離を示している。図８の（ｃ）に示すように、開始点から所定の距離を越えた位置、すなわち、画素がエレメントの外となる位置において、輝度値の微分値は極値となる。判定部５４は当該極値（画素値の変化）を用いて、各画素がシンボル内にあるか否かを判定してもよい。また、境界要素特定部５５は輝度値の微分値が極値となる画素を境界点候補に特定してもよい。
【０１０８】
図８の（ｄ）は、プロファイル情報特定部５３が取得する輝度値（画素値）の２値化データの一例を示すグラフである。当該グラフの縦軸は輝度値を２値化した値を示し、横軸は開始点からの距離を示している。図８の（ｄ）に示すように、エレメント内に位置する開始点から所定の距離までの画素の２値化した値は一定となっている。開始点から所定の距離を越えた位置の画素はエレメントの外側に位置することになる。そのため、エレメントの外側に位置する画素の２値化した値はエレメント内である所定の距離までの画素の２値化した値から切り替わる。プロファイル情報特定部５３はプロファイル情報として上述の２値化データを生成してもよい。判定部５４は当該２値化データの値が切り替わる位置を参照して、各画素がシンボル内にあるか否かを判定してもよい。また、境界要素特定部５５は２値化データの値が切り替わる直前に位置する画素または２値化データの値が切り替わった直後に位置する画素を境界点（境界点候補）に特定してもよい。
【０１０９】
プロファイル情報特定部５３が取得する画素値は平滑化フィルタで平滑化された画素値であってもよい。
【０１１０】
詳細には、プロファイル情報特定部５３は、基準位置を基にして設定される領域を含む画像に対して、エレメントを構成するモジュールのモジュール幅に収まるカーネルサイズを有する空間フィルタを用いたフィルタ処理を行う。そして、プロファイル情報特定部５３は、前記フィルタ処理を施した画像から抽出した画素値を用いて、前記プロファイル情報を求めてもよい。
【０１１１】
換言すると、プロファイル情報特定部５３が取得する画素値はモジュールサイズに収まるカーネルサイズを持つフィルタで処理された画素値であってもよい。当該フィルタの例として、任意の重み付きフィルタ（平滑化、ガウシアンなど）やメディアンフィルタ、最大値/最小値フィルタなどが挙げられる。また、プロファイル情報特定部５３は前記フィルタのカーネルサイズを領域の形状として設定してもよい。上記カーネルサイズは、モジュールの配置方向に対して横長に設定されてもよい。
【０１１２】
前記の構成によれば、フィルタ処理された画像から求められるプロファイル情報を利用してシンボル境界を特定するシンボル境界特定装置を実現することができる。
【０１１３】
図９の（ａ）から（ｄ）は、本例における複数の境界点を個別に特定する処理の流れを示す模式図である。図９の（ａ）に示すように、本例のステップ１において、プロファイル情報特定部５３は複数の開始点を、モジュールが並ぶ方向に設定する。上記モジュールが並ぶ方向とは、例えば、シンボルのデコードに用いたスキャンラインの方向である。続いて、図９の（ｂ）に示すように、本例のステップ２において、判定部５４は１つの開始点から走査方向に沿って特定の領域がシンボルの内であるか否かを判定し、境界要素特定部５５は判定が行われた領域の位置情報から境界点を検出する。続いて、図９の（ｃ）に示すように、本例のステップ３において、境界要素特定部５５は別の開始点から走査方向に沿って境界点を検出する。なお、図９の（ｃ）に示す例では、開始点が設定されているエレメントがスペースであり、境界点が検出されなかった場合を示している。例えば、境界要素特定部５５は、開始点から所定の距離までの走査において境界点を検出できなかった場合、当該開始点を基準位置とする境界点の検出を終了する構成としてもよい。
【０１１４】
続いて、図９の（ｄ）に示すように、本例のステップ４において、境界要素特定部５５は、残りの設定された開始点から走査方向に沿って境界点を１つずつ検出する。
【０１１５】
（境界点候補の特定例２）
次に、複数の境界点を同時に特定する例について説明する。
【０１１６】
図１０の（ａ）および図１１の（ａ）は本例に係る境界点候補の特定の一例の概要を示す図である。本例においては、基準位置はデコード部５２がシンボルのデコードに用いたスキャンラインＬ上のモジュールあるいはエレメントの中心点とする。図１０の（ａ）および図１１の（ａ）に示すように、プロファイル情報特定部５３は開始線上の基準位置を開始点に設定する。プロファイル情報特定部５３は開始点から、モジュール配置方向に沿って、輝度値（画素値）を取得し、輝度値を２値化したデータ（プロファイル情報）を生成する。
【０１１７】
図１０の（ｂ）は、モジュール色が付されたモジュールの中心を開始点とした場合において、プロファイル情報特定部５３が取得する輝度値の一例を示すグラフである。当該グラフの縦軸は輝度値を示し、横軸は開始点からの距離を示している。
【０１１８】
図１１の（ｂ）は、図１１の（ａ）に示すスキャンラインＬ上の開始点（モジュール配置方向のＡの位置）における各開始点（1から５）における輝度値を示すグラフである。
【０１１９】
図１０の（ｃ）は、図１０の（ｂ）のグラフが示す輝度値を２値化した場合のグラフである。縦軸は輝度値を２値化した値を示し、横軸は開始点からの距離を示している。
【０１２０】
図１１の（ｃ）は、図１１の（ｂ）のグラフが示す輝度値を２値化した場合のグラフである。縦軸は輝度値を２値化した値を示し、横軸はスキャンラインＬ上における開始点（１から５）の位置を示している。
【０１２１】
図１０の（ｃ）に示すように、エレメント内に位置する開始点から所定の距離までの画素の２値化した値は一定となっている。開始点から所定の距離を越えた位置の画素はエレメントの外側に位置することになる。そのため、エレメントの外側に位置する画素の２値化した値はエレメント内である所定の距離までの画素の２値化した値から切り替わる。すなわち、モジュール色（例えば、黒色）が付されたモジュールの中心を開始点とした場合、開始点における２値化データの値（黒色の値）と、エレメントの外側に位置する画素が示す２値化データの値（白色の値）とは異なる。
【０１２２】
判定部５４は、複数の開始点に基づいて設定された複数の画素（領域）の画素値の２値化データ（プロファイル情報）のパターンと、複数の開始点における画素値の２値化データ（基準プロファイル情報）のパターンとの照合を行う。上記２つの２値化データのパターンの整合率が所定の閾値よりも低い場合、判定部５４は設定された複数の画素（領域）がシンボル内にはないと判定する。上記所定の閾値は、記憶部５８に、判定情報５８２として格納されていてもよい。
【０１２３】
例えば、図１１の（ａ）に示すように、スキャンラインＬ（モジュール配置方向の位置Ａ）におけるスキャンライン方向の位置１〜５における画素の２値化データは、黒、白、黒、黒、白のパターンを示す。一方で、シンボルの外に位置するモジュール配置方向の位置Ｄにおけるスキャンライン方向の位置１〜５の画素の２値化データは、白、白、白、白、白のパターンを示す。すなわち、複数の開始点に基づいて設定された複数の画素（領域）の画素値の２値化データのパターンが、複数の開始点における画素値の２値化データのパターンと異なる場合、当該複数の画素はシンボルの外側に位置している可能性が高い。そのため、例えば、境界要素特定部５５は、当該整合率が低いパターンを示す複数の画素を境界点に特定する。
【０１２４】
図１２の（ａ）から（ｃ）は、本例における複数の境界点を同時に特定する処理の流れを示す模式図である。図１２の（ａ）に示すように、本例のステップ１において、プロファイル情報特定部５３は複数の開始点をモジュールが並ぶ方向の開始線上に設定する。上記開始線は、例えば、シンボルのデコードに用いたスキャンラインである。
【０１２５】
続いて、図１２の（ｂ）に示すように、本例のステップ２において、判定部５４は各開始点から走査方向に沿った位置にあり、開始線に平行に設定された検査線上に並ぶ検証点がシンボル内にあるか否かを判定する。判定部５４は、複数の開始点に基づいて設定された複数の検証点の画素値の２値化データのパターンと、複数の開始点における画素値の２値化データのパターンとの照合を行う。プロファイル情報特定部５３は検査線（領域）および検証点（領域）を、開始線からシンボルの内から外に向かって順次設定する。
【０１２６】
図１２の（ｃ）に示すように、本例のステップ３において、上記２つの２値化データのパターンの整合率が所定の閾値よりも低い場合、判定部５４は設定された複数の検証点がシンボル内にはないと判定する。境界要素特定部５５は、当該整合率が所定の値よりも低いパターンを示す複数の画素を境界点に特定する。あるいは、境界要素特定部５５は、当該整合率が所定の値より低くなったパターンを示す複数の検証点の直前に設定された、該整合率が所定の値よりも高いパターンを示す複数の検証点に位置する画素を境界点に特定してもよい。
【０１２７】
上記の構成によれば、複数の開始点から走査される画素の２値化データを用いて境界点を特定できる。そのため、局所的な汚れなどによって、一部の画素の画素値がシンボルの内外の値を反映した値でない場合においても、正しく境界点候補を検出することができる。
【０１２８】
（境界点候補の特定例３）
次に、スキャンライン方向に並ぶ複数の検証点から１つの境界点候補を特定する例について説明する。
【０１２９】
図１３の（ａ）から（ｅ）は、本例におけるスキャンライン方向に並ぶ複数の検証点から１つの境界点候補を特定する処理の流れを示す模式図である。本例においては、基準位置はデコード部５２がシンボルのデコードに用いたスキャンラインＬ上のモジュールあるいはエレメントの中心点とする。図１３の（ａ）に示すように、本例のステップ１において、プロファイル情報特定部５３は開始線上の複数の基準位置を開始点に設定する。上記開始線は、例えば、シンボルのデコードに用いたスキャンラインである。
【０１３０】
続いて、図１３の（ｂ）に示すように、本例のステップ２において、プロファイル情報特定部５３は１つの開始点に対して、当該開始点が設定されているモジュールから所定の範囲内にある１以上のモジュールに検証開始点（検証点）を設定する。当該検証開始点は開始線上に並ぶように設定される。
【０１３１】
続いて、図１３の（ｃ）に示すように、本例のステップ３において、判定部５４は開始点および検証開始点から走査方向に沿った位置にあり、開始線に平行に設定された検査線上に並ぶ検証点がシンボルの内にあるか否かを判定する。例えば、判定部５４は、複数の検証点の画素値の２値化データ（プロファイル情報）のパターンと、開始点および１以上の検証開始点における画素値の２値化データ（基準プロファイル情報）のパターンとの照合を行う。当該パターンの照合については、上述の「境界点候補の特定例２」にて説明した方法を適用できる。
【０１３２】
続いて、図１３の（ｄ）に示すように、本例のステップ４において、上記２つの２値化データのパターンの整合率が所定の閾値よりも低い場合、境界要素特定部５５は設定された複数の検証点のうち、開始点から走査方向に沿った位置にある１つの検証点を境界点に特定する。
【０１３３】
続いて、図１３の（ｅ）に示すように、他の開始点についても、上記方法と同様に境界点が特定される。
【０１３４】
デコード部５２に用いられたシンボルのデコードに用いたスキャンラインは、モジュール配置方向に対して垂直でない場合がある。この場合、シンボルの境界線は当該スキャンラインと平行にはならない。そのため、シンボルの境界線を跨ぐように設定された検証線に基づいて設定された複数の検証点には、シンボル内に存在するものとシンボル外に存在するものが混在する可能性が生じ得る。
【０１３５】
上記の構成によれば、検証開始点は、開始点が設定されているモジュールから所定の範囲内にある１以上のモジュールに設定される。そのため、検証点にシンボル内に存在するものとシンボル外に存在するものが混在する可能性を低減することができる。すなわち、精度の高い境界点の特定を行うことができる。
【０１３６】
（境界点候補の特定例４）
次に、シンボルのデコードに用いたスキャンラインの方向のエレメントの幅を用いて境界点候補を特定する例について説明する。
【０１３７】
図１４の（ａ）から（ｃ）は、本例におけるスキャンライン方向のエレメントの幅を用いて境界点候補を特定する処理の流れを示す模式図である。本例においては、基準位置をデコード部５２がシンボルのデコードに用いたスキャンラインＬ上のモジュールあるいはエレメントの中心点とする。図１４の（ａ）に示すように、はじめに、例えば、プロファイル情報特定部５３は対象のエレメントに対して開始線上の基準位置を開始点に設定する。上記開始線は、例えば、シンボルのデコードに用いたスキャンラインである。
【０１３８】
続いて、図１４の（ｂ）に示すように、判定部５４は開始点から走査方向に沿った位置にあり、開始線に平行に設定された検査線上の検証点がシンボルの内にあるか否かを判定する。例えば、判定部５４は、検証点におけるエレメントの幅ｗ（プロファイル情報）と、開始点におけるエレメントの幅ｗ0（基準プロファイル情報）との照合を行う。
【０１３９】
例えば、開始点におけるエレメントの幅ｗ0をシンボルのデコードに用いたスキャンライン上において隣接する２点のエレメントエッジ点間距離としてもよい。また、開始点におけるエレメントの幅ｗ0を、スキャンライン上の２値化データにおいて同じ値が続くランレングスとしてもよい。また、検証点におけるエレメントの幅ｗを、検査線上の２値化データにおいて検証点の位置のデータを含む同じ値が続くランレングスとしてもよい。
【０１４０】
検証点におけるエレメントの幅ｗと開始点におけるエレメントの幅ｗ0との整合率が所定の閾値よりも低い場合、判定部５４は設定された検証点がシンボル内にはないと判定する。上記所定の閾値は、記憶部５８に、判定情報５８２として格納されていてもよい。例えば、判定部５４は、検証点における幅ｗが開始点における幅ｗ0の80％から120％の範囲内であれば検証点がシンボル内にあると判定する。プロファイル情報特定部５３は検査線および検証点を、開始線からシンボルの内から外に向かって順次設定する。
【０１４１】
続いて、図１４の（ｃ）に示すように、検証点におけるエレメントの幅が求まらない場合、判定部５４は検証点がシンボル外にあると判定する。また、検証点におけるエレメントの幅ｗと開始点におけるエレメントの幅ｗ0との整合率が所定の閾値よりも低い場合、判定部５４は検証点がシンボル外にあると判定する。境界要素特定部５５はシンボル外にあると判定差された検証点を境界点に特定する。
【０１４２】
（境界点候補の特定例５）
次に、シンボルのデコードに用いたスキャンラインの方向の複数のエレメントの幅を用いて、１つの境界点候補を特定する例について説明する。
【０１４３】
図１５の（ａ）および（ｂ）は、本例におけるスキャンラインの方向の複数のエレメントの幅を用いて、１つの境界点候補を特定する処理の流れを示す模式図である。本例においては、基準位置はデコード部５２がシンボルのデコードに用いたスキャンライン上のモジュールあるいはエレメントの中心点とする。図１５の（ａ）に示すように、プロファイル情報特定部５３は開始線上の基準位置を開始点に設定する。上記開始線は、例えば、シンボルのデコードに用いたスキャンラインである。続いて、例えば、プロファイル情報特定部５３は１つの開始点に対して、当該開始点が設定されているエレメントから所定の範囲内にある１以上のエレメントに検証開始点（検証点）を設定する。当該検証開始点は開始線上に並ぶように設定される。
【０１４４】
続いて、図１５の（ｂ）に示すように、判定部５４は、開始点または検証開始点から走査方向に沿った位置にあり、開始線に平行に設定された検査線上の検証点がシンボルの内にあるか否かを判定する。
【０１４５】
例えば、判定部５４は、検証点におけるエレメントの幅（プロファイル情報）と、対応する開始点または対応する検証開始点におけるエレメントの幅Ｗ１からＷ５（基準プロファイル情報）との照合を行う。上述の対応する開始点または対応する検証開始点とは、各検証点の走査線上に位置する開始点または検証開始点である。プロファイル情報特定部５３は検査線および検証点を、開始線からシンボルの内から外に向かって順次設定する。
【０１４６】
判定部５４は、各検査線において、検証点におけるエレメントの幅が求まらない検証点、または、検証点におけるエレメントの幅と対応する開始点または対応する検証開始点におけるエレメントの幅との整合性が低い検証点の数を算出する。判定部５４は、１つの検査線における上記算出した検証点の数が閾値を越えると、開始点から走査方向に沿った位置にある当該検査線に含まる検証点がシンボルの外にあると判定する。上記閾値は、記憶部５８に格納されている判定情報５８２に含まれていてもよい。また、開始点、検証開始点および検証点におけるエレメントの幅については、上述の「境界点候補の特定例４」にて説明した開始点および検証点におけるエレメントの幅と同様である。境界要素特定部５５はシンボル外にあると判定差された検証点を境界点に特定する。
【０１４７】
（境界点候補の特定例６）
シンボルのデコードに用いたスキャンラインの方向のエレメントのセットの幅の比率（正規化値）を用いて、１つの境界点候補を特定する例について説明する。
【０１４８】
図１６の（ａ）から（ｃ）は、本例におけるシンボルのデコードに用いたスキャンラインの方向のエレメント幅の比率を用いて、１つの境界点候補を特定する処理の流れを示す模式図である。本例においては、基準位置はデコード部５２がシンボルのデコードに用いたスキャンライン上のモジュールあるいはエレメントの中心点とする。また、本例においては、対象になるエレメントと対象になるエレメントに隣接するエレメントとをセットとし、データキャラクタの幅ｐに対する当該セットの幅の比率を用いて境界点候補を特定する例について説明する。
【０１４９】
図１６の（ａ）には、対象となるエレメントとして、データキャラクタにおける左から２番目のバーが示されている。プロファイル情報特定部５３は開始線上の基準位置を開始点に設定する。上記開始線は、例えば、シンボルのデコードに用いたスキャンラインである。当該シンボルにおいてはデコードが終了しているため、図１６に示すデータキャラクタを構成するバー（Ｂ）とスペース（Ｓ）の並びおよび各エレメントを構成しているモジュール数は、(B,S,B,S,B,S)=(1,1,1,3,2,3)と求めることができる。
【０１５０】
さらに、対象となるエレメントと当該エレメントの左に隣接するエレメントとのセットの幅は２モジュールとなる。データキャラクタ全体を構成しているモジュール数は１１モジュールである。そのため、データキャラクタの幅ｐ（１１モジュール）と、対象となるエレメントと当該エレメントの左に隣接するエレメントとのセットの幅e1の比はp：e1＝１１：２となる。
【０１５１】
また、対象となるエレメントと当該エレメントの右に隣接するエレメントとのセットの幅は４モジュールとなる。データキャラクタを構成しているモジュール数は１１モジュールである。そのため、データキャラクタの幅と、対象となるエレメントと当該エレメントの左に隣接するエレメントとのセットの幅e2の比はｐ：e2＝１１：４となる。
【０１５２】
そのため、開始線においては以下の式（基準プロファイル情報）が成り立つ。
【０１５３】
1.5/11 ≦e1/p ＜2.5/11
3.5/11 ≦e2/p ＜4.5/11
続いて、図１６の（ｂ）に示すように、判定部５４は、開始点から走査方向に沿った位置にあり、開始線に平行に設定された検査線上の検証点がシンボルの内にあるか否かを判定する。
【０１５４】
例えば、判定部５４は、検査線における幅の比率ｅ１／ｐおよびｅ２／ｐ（プロファイル情報）について、以下の式が成り立つか否かによって、検査線上の検証点がシンボルの内にあるか否かを判定する。下記式が成り立つ場合、検査線上の検証点がシンボルの内にあると判定する。
【０１５５】
1.5/11 ≦e1/p＜2.5/11
3.5/11 ≦e2/p ＜4.5/11
なお、検査線における各エレメントの幅は、検査線において隣接する２点のエレメントエッジ点間距離としてもよい。また、検査線における２値化データにおいて同じ値が続くランレングスとしてもよい。また、検査線における画素値（輝度値）の微分値が極値となる画素をエレメントのエッジとして各エレメントの幅を算出してもよい。
【０１５６】
プロファイル情報特定部５３は検査線および検証点を、開始線からシンボルの内から外に向かって順次設定する。
【０１５７】
続いて、図１６の（ｃ）に示すように、判定部５４は、検査線における幅の比率ｅ１／ｐおよびｅ２／ｐについて、上記の式の少なくとも１つが成り立たなくなると、検証点がシンボルの外にあると判定する。境界要素特定部５５はシンボル外にあると判定差された検証点を境界点に特定する。
【０１５８】
（境界点候補の特定例７）
次に、シンボルのデコードに用いたスキャンラインの方向のエレメントのセットの幅の比率（正規化値）を用いて、１つの境界点候補を特定する他の例について説明する。
【０１５９】
本例においては、対象になるエレメントと対象になるエレメントに隣接するエレメントとをセットとし、所定の幅ｐに対する当該セットの幅の比率を用いて境界点候補を特定する例について説明する。上述の「境界点候補の特定例６」と本例の異なる点は、上記所定の幅ｐがデータキャラクタの幅ではなく任意の幅としている点である。
【０１６０】
図１７は、本例におけるシンボルのデコードに用いたスキャンラインの方向のエレメント幅の比率を用いて、１つの境界点候補を特定する概要を示す図である。
【０１６１】
図１７に示すように、任意の幅ｐは異なるデータキャラクタに渡り設定されている。図１７に示す任意の幅ｐは７つのエレメントの幅であり、バー（Ｂ）とスペース（Ｓ）の並びおよび各エレメントを構成しているモジュール数は、(S,B,S,B,S,B,S)=(1,1,3,2,3,2,3)と求めることができる。
【０１６２】
さらに、対象となるエレメントと当該エレメントの左に隣接するエレメントとのセットの幅は５モジュールとなる。任意の幅ｐを構成しているモジュール数は１５モジュールである。そのため、任意の幅ｐ（１５モジュール）と、対象となるエレメントと当該エレメントの左に隣接するエレメントとのセットの幅ｅ１の比はp：e1＝１５：５となる。
【０１６３】
また、対象となるエレメントと当該エレメントの右に隣接するエレメントとのセットの幅は５モジュールとなる。任意の幅ｐを構成しているモジュール数は１５モジュールである。そのため、任意の幅ｐと、対象となるエレメントと当該エレメントの左に隣接するエレメントとのセットの幅e2の比はp：ｅ２＝１５：５となる。
【０１６４】
そのため、開始線においては以下の式（基準プロファイル情報）が成り立つ。
【０１６５】
4.5/15 ≦e1/p ＜5.5/15
4.5/15 ≦e2/p ＜5.5/15
例えば、判定部５４は、検査線における幅の比率ｅ１/ｐおよびｅ２/ｐ（プロファイル情報）について、上記の式が成り立つか否かによって、検査線上の検証点がシンボルの内にあるか否かを判定する。
【０１６６】
また、対象になるエレメントと対象になるエレメントに隣接するエレメントとをセットとせずに、所定の幅ｐと対象となるエレメント幅eとの比率を用いて判定が行われてもよい。例えば、図１７に示す例において、左から４番目のバーは２つのモジュールによって構成されている。任意の幅ｐに対する左から４番目のバーの幅eの比率ｅ/ｐを用いて境界点候補を特定する場合、判定部５４は、検査線における当該バーの幅の比率ｅ/ｐについて、下記の式が成り立つか否かによって、検査線上の検証点がシンボルの内にあるか否かを判定する。
【０１６７】
1.5/15 ≦ｅ/ｐ＜2.5/15
（境界点候補の特定例８）
次に、複数のエレメントのセットの幅の比率を用いて、１つの境界点候補を特定する例について説明する。
【０１６８】
図１８の（ａ）および（ｂ）は、本例における所定の幅ｐに対する複数のエレメントのセットの幅の比率を用いて、１つの境界点候補を特定する処理の流れを示す模式図である。本例においては、基準位置はデコード部５２がシンボルのデコードに用いたスキャンライン上のモジュールあるいはエレメントの中心点とする。図１８の（ａ）に示すように、プロファイル情報特定部５３は開始線上の基準位置を開始点に設定する。上記開始線は、例えば、シンボルのデコードに用いたスキャンラインである。続いて、例えば、プロファイル情報特定部５３は１つの開始点に対して、当該開始点が設定されているエレメントから所定の範囲内にある１以上のエレメントに検証開始点（検証点）を設定する。当該検証開始点は開始線上に並ぶように設定される。
【０１６９】
続いて、図１８の（ｂ）に示すように、判定部５４は、開始点または検証開始点から走査方向に沿った位置にあり、開始線に平行に設定された検査線上の検証点がシンボルの内にあるか否かを判定する。
【０１７０】
例えば、図１８の（ｂ）に示すように、判定部５４は、検証開始点Ｇから走査方向に沿った位置に設定した検証点については、当該検証点を含む検査線における以下の２つの幅の比率を用いて検証点がシンボルの内にあるか否かを判定する。所定の幅Ｐに対する検証開始点Ｇを含むエレメントと当該エレメントの左に隣接するエレメントの幅ｅ１の比率であるｅ１／ｐおよび所定の幅Ｐに対する検証開始点Ｇを含むエレメントと当該エレメントの右に隣接するエレメントの幅ｅ２の比率であるｅ２／ｐである。
【０１７１】
同様に、検証開始点Ｈから走査方向に沿った位置に設定した検証点については、所定の幅Ｐに対する幅（ｅ２、ｅ３）の比率であるｅ２／ｐおよびｅ３／ｐを用いて検証点がシンボルの内にあるか否か判定される。
【０１７２】
同様に、開始点Ｉから走査方向に沿った位置に設定した検証点については、所定の幅Ｐに対する幅（ｅ３、ｅ４）の比率であるｅ３／ｐおよびｅ４／ｐを用いて検証点がシンボルの内にあるか否か判定される。
【０１７３】
同様に、検証開始点Ｊから走査方向に沿った位置に設定した検証点については、所定の幅Ｐに対する幅（ｅ４、ｅ５）の比率であるｅ４／ｐおよびｅ５／ｐを用いて検証点がシンボルの内にあるか否か判定される。
【０１７４】
同様に、検証開始点Ｋから走査方向に沿った位置に設定した検証点については、所定の幅Ｐに対する幅（ｅ５、ｅ６）の比率であるｅ５／ｐおよびｅ６／ｐを用いて検証点がシンボルの内にあるか否か判定される。
【０１７５】
検査線上の各検証点がシンボルの内にあるか否かの判定において、その他の点は上述の「境界点候補の特定例８」と同様であるため、ここでの説明は繰り返さない。
【０１７６】
プロファイル情報特定部５３は検査線および検証点を、開始線からシンボルの内から外に向かって順次設定する。
【０１７７】
判定部５４は、１つの検査線においてシンボルの外にあると判定した検証点の数が閾値を越えると、開始点から走査方向に沿った位置にある当該検査線に含まる検証点がシンボルの外にあると判定する。上記閾値は、記憶部５８に格納されている判定情報５８２に含まれていてもよい。
【０１７８】
§４  変形例
本実施形態の変形例について、以下に説明する。なお、説明の便宜上、前記実施形態にて説明した部材と同じ機能を有する部材については、同じ符号を付記し、その説明を繰り返さない。
【０１７９】
本変形例に係るシンボル境界特定装置５は、複数のエレメントが２次元に配列した二次元シンボルの境界を特定する。
【０１８０】
図１９は、本変形例に係るシンボル境界特定装置５が境界を特定する二次元シンボルの一例を示す図である。図１９にはドットコードの一例が示されている。
【０１８１】
図１９に示すように、本変形例に係るプロファイル情報特定部５３は、２次元シンボルのうち最も外側に並んでいる複数のエレメントの基準位置を基にして設定される複数の領域に対してプロファイル情報を求めてもよい。
【０１８２】
上記の構成によれば、二次元シンボルにおけるシンボルの境界を特定することができるシンボル境界特定装置５を実現することができる。
【０１８３】
〔ソフトウェアによる実現例〕
シンボル読取り装置１およびシンボル境界特定装置５の制御ブロック（制御部４）（特に画像取得部５１、デコード部５２、プロファイル情報特定部５３、判定部５４、境界要素特定部５５、境界特定部５６、領域特定部５７および文字読取部６）は、集積回路（ＩＣチップ）等に形成された論理回路（ハードウェア）によって実現してもよいし、ソフトウェアによって実現してもよい。
【０１８４】
後者の場合、シンボル読取り装置１およびシンボル境界特定装置５は、各機能を実現するソフトウェアであるプログラムの命令を実行するコンピュータを備えている。このコンピュータは、例えば１つ以上のプロセッサを備えていると共に、上記プログラムを記憶したコンピュータ読み取り可能な記録媒体を備えている。そして、上記コンピュータにおいて、上記プロセッサが上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。上記プロセッサとしては、例えばＣＰＵ（Central Processing Unit）を用いることができる。上記記録媒体としては、「一時的でない有形の媒体」、例えば、ＲＯＭ（Read Only Memory）等の他、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、上記プログラムを展開するＲＡＭ（Random Access Memory）などをさらに備えていてもよい。また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体（通信ネットワークや放送波等）を介して上記コンピュータに供給されてもよい。なお、本発明の一態様は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
【０１８５】
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【符号の説明】
【０１８６】
５    シンボル境界特定装置
５２  デコード部
５３  プロファイル情報特定部
５４  判定部
５５  境界要素特定部
５６  境界特定部
５７  領域特定部
Ｓ２    デコードステップ
Ｓ３２  プロファイル情報特定ステップ
Ｓ３３  判定ステップ
Ｓ３４  境界要素特定ステップ
Ｓ３５  境界特定ステップ
【図１】
2020140672.tif 000003
【図２】
2020140672.tif 000004
【図３】
2020140672.tif 000005
【図４】
2020140672.tif 000006
【図５】
2020140672.tif 000007
【図６】
2020140672.tif 000008
【図７】
2020140672.tif 000009
【図８】
2020140672.tif 000010
【図９】
2020140672.tif 000011
【図１０】
2020140672.tif 000012
【図１１】
2020140672.tif 000013
【図１２】
2020140672.tif 000014
【図１３】
2020140672.tif 000015
【図１４】
2020140672.tif 000016
【図１５】
2020140672.tif 000017
【図１６】
2020140672.tif 000018
【図１７】
2020140672.tif 000019
【図１８】
2020140672.tif 000020
【図１９】
2020140672.tif 000021