(57)【要約】【課題】  単焦点式の読取装置でサイズの異なる複数種類のコードシンボルを読み取る。【解決手段】  ハンディターミナル１００には、コードシンボルＣＳの種別と特徴とが対応付けられた特徴情報が予め記憶されている。ハンディターミナル１００は、撮像したコードシンボルＣＳの種別と、特徴情報とに基づいて、コードシンボルＣＳの全範囲が撮像されたか否かを判別する。コードシンボルＣＳの全範囲が撮像されていない場合、ハンディターミナル１００は、コードシンボルＣＳを複数回撮像し、得られた複数の画像データのそれぞれに示されるコードシンボルＣＳの一部を認識する。ここで、ハンディターミナル１００は、認識された各部分の重複部分を特定し、特定した重複部分に基づいて、認識された部分を合成する。ハンディターミナル１００は、合成された認識部分に基づいて、コードシンボルＣＳを認識してコードデータを取得する。【選択図】  図１
2005276119.tif 000002
【特許請求の範囲】
【請求項１】
コードシンボルを撮像して画像データを取得する撮像手段と、
撮像画像に示されるコードシンボルを認識してコードデータを取得する認識手段と、
を備えたコードシンボル読取装置であって、
前記撮像手段は、一のコードシンボルについて複数の画像データを取得し、
前記認識手段は、前記撮像手段が取得した複数の画像データに基づいて、前記一のコードシンボルを認識する、
ことを特徴とするコードシンボル読取装置。
【請求項２】
前記コードシンボルは１次元バーコードであり、
前記認識手段は、前記撮像手段が取得した複数の画像データそれぞれに示される前記１次元バーコードの寸法比を検出する寸法比検出手段をさらに備え、
前記寸法比検出手段が検出した寸法比に基づいて、前記一のコードシンボルを認識する、
ことを特徴とする請求項１に記載のコードシンボル読取装置。
【請求項３】
前記認識手段は、
前記寸法比検出手段が検出する寸法比を示す情報の重複を検出する寸法重複検出手段と、
前記寸法重複検出手段が検出した重複部分に基づいて、各画像データから検出された寸法比を示す寸法比情報を合成する寸法比情報合成手段と、をさらに備え、
前記寸法比情報合成手段が合成した寸法比情報に基づいて、前記一のコードシンボルを認識する、
ことを特徴とする請求項２に記載のコードシンボル読取装置。
【請求項４】
前記認識手段は、前記撮像手段が取得した複数の画像データそれぞれに示される前記１次元バーコードをデコードしてコードデータを取得するデコード手段をさらに備え、
前記デコード手段が取得したコードデータに基づいて、前記一のコードシンボルを認識する、
ことを特徴とする請求項２または３に記載のコードシンボル読取装置。
【請求項５】
前記認識手段は、
前記デコード手段がコードの重複を検出するコード重複検出手段と、
前記コード重複検出手段が検出した重複部分に基づいて、各画像データから取得されたコードデータを合成するコード合成手段と、をさらに備え、
前記コード合成手段が合成したコードデータに基づいて、前記一のコードシンボルを認識する、
ことを特徴とする請求項４に記載のコードシンボル読取装置。
【請求項６】
コードシンボルの種別と特徴が対応付けられた特徴情報を記憶する特徴情報記憶手段と、
前記寸法比検出手段が検出した寸法比と、前記特徴情報記憶手段に記憶されている特徴情報に基づいて、前記コードシンボルの全範囲が撮像されたか否かを判別する撮像範囲判別手段と、をさらに備える、
ことを特徴とする２乃至５のいずれか１項に記載のコードシンボル読取装置。
【請求項７】
前記撮像範囲判別手段は、前記デコード手段が取得したコードデータと、前記特徴情報記憶手段に記憶されている特徴情報に基づいて、前記コードシンボルの全範囲が撮像されたか否かを判別する、
ことを特徴とする請求項６に記載のコードシンボル読取装置。
【請求項８】
前記撮像範囲判別手段によって、前記コードシンボルの全範囲が撮像されていないと判別された場合、前記撮像手段による複数回の撮像を促すための情報を出力する情報出力手段をさらに備える、
ことを特徴とする請求項６または７に記載のコードシンボル読取装置。
【請求項９】
前記撮像手段は、単焦点式の撮像装置から構成される、
ことを特徴とする請求項１乃至８のいずれか１項に記載のコードシンボル読取装置。
【請求項１０】
コンピュータに、
コードシンボルを撮像するステップと、
読取対象のコードシンボルの種別を特定するステップと、
コードシンボルの種別と特徴とが対応付けられた特徴情報を記憶するステップと、
特定されたコードシンボルの種別と、前記特徴情報とに基づいて、当該コードシンボルの全範囲が撮像されたか否かを判別するステップと、
当該コードシンボルの全範囲が撮像されていない場合、当該コードシンボルを複数回撮像するステップと、
複数回の撮像で得られた複数の画像データのそれぞれに示される前記コードシンボルの一部を認識するステップと、
認識された各部分の重複部分を特定するステップと、
特定された重複部分に基づいて、前記認識された部分を合成するステップと、
合成された認識部分に基づいて、前記コードシンボルを認識してコードデータを取得するステップと、
を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コードシンボル読取装置、および、プログラムに関し、特に、異なるサイズのコードシンボルの読み取りに好適なコードシンボル読取装置、および、プログラムに関する。
【背景技術】
【０００２】
流通分野などでの商品管理業務では、バーコードなどのコードシンボルを用いた商品管理が広くおこなわれている。このような商品管理形態においては、商品や梱包材などに付されているコードシンボルを読取装置で読み取ることで、当該商品等に関する情報（例えば、商品番号や製造者などを示す情報）を取得して、入荷量や出荷量などの管理に利用している。
【０００３】
このようなコードシンボルを読み取る読取装置として、いわゆる「ハンディターミナル」とよばれる装置が用いられている。ハンディターミナルは、通常、ユーザが携行して使用できる携帯性を有し、商品を取り扱う現場でコードシンボルの読み取り作業をおこなうことができる。そして、読み取った情報は、例えば、管理用のコンピュータなどに転送されて一括管理される。このようなシステムにより、商品管理の省力化や効率化が図られている。
【０００４】
従来、コードシンボルとして「１次元バーコード」が主流であったが、より多くの情報を含むことができる「２次元コード」の利用が広まりつつある。その結果、商品管理の現場では、１次元バーコードと２次元コードが混在する状況となっており、異なる種類のコードシンボルを取り扱う必要性が生じている。
【０００５】
通常、２次元コードは１次元バーコードと比べサイズが小さく、また、２次元方向に情報が記録されているため、高分解能で読み取る必要がある。ハンディターミナルなどの読取装置では、レンズからの入射光をＣ−ＭＯＳイメージセンサなどで光電変換することで撮像し、撮像画像を画像認識することによってコードシンボルを読み取る方式が多く採用されている。ここで、レンズが単焦点式の場合、２次元コードの認識に必要な分解能となる焦点距離に設定すると、サイズのより大きい１次元バーコードを読み取る場合、撮像可能範囲に収まらない場合がある。このような場合、読取対象とするコードシンボルの種類に応じて、ユーザが移動するなどによって読取装置とコードシンボルとの距離を変えなければならず、作業効率が低下してしまう。
【０００６】
このような不都合を解消するため、読取装置のレンズ部を多焦点式とすることで、読取対象のサイズに応じた画角とすることができる技術（例えば、特許文献１）も実現されている。しかしながら、多焦点式はレンズ駆動が必要なため、単焦点式と比べて複雑な機構となり、製造コストがかかる。また、構造が複雑になるため、単焦点式よりも堅牢性が低く、業務用途には不向きである。したがって、単焦点式の読取装置でサイズの異なるコードシンボルを効率的に読み取ることができる手法の確立が望まれている。
【特許文献１】特表平９−５１２３７２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は上記実状に鑑みてなされたもので、異なるサイズのコードシンボルを容易かつ効率的に読み取ることができるコードシンボル読取装置等を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、本発明の第１の観点に係るコードシンボル読取装置は、
コードシンボルを撮像して画像データを取得する撮像手段と、
撮像画像に示されるコードシンボルを認識してコードデータを取得する認識手段と、
を備えたコードシンボル読取装置であって、
前記撮像手段は、一のコードシンボルについて複数の画像データを取得し、
前記認識手段は、前記撮像手段が取得した複数の画像データに基づいて、前記一のコードシンボルを認識する、
ことを特徴とする。
【０００９】
上記コードシンボル読取装置において、
前記コードシンボルは１次元バーコードであり、
前記認識手段は、前記撮像手段が取得した複数の画像データそれぞれに示される前記１次元バーコードの寸法比を検出する寸法比検出手段をさらに備えていることが望ましく、この場合、
前記寸法比検出手段が検出した寸法比に基づいて、前記一のコードシンボルを認識することが望ましい。
【００１０】
上記コードシンボル読取装置において、
前記認識手段は、
前記寸法比検出手段が検出する寸法比を示す情報の重複を検出する寸法重複検出手段と、
前記寸法重複検出手段が検出した重複部分に基づいて、各画像データから検出された寸法比を示す寸法比情報を合成する寸法比情報合成手段と、をさらに備えていることが望ましく、この場合、
前記寸法比情報合成手段が合成した寸法比情報に基づいて、前記一のコードシンボルを認識することが望ましい。
【００１１】
上記コードシンボル読取装置は、
前記認識手段は、前記撮像手段が取得した複数の画像データそれぞれに示される前記１次元バーコードをデコードしてコードデータを取得するデコード手段をさらに備えていることが望ましく、この場合、
前記デコード手段が取得したコードデータに基づいて、前記一のコードシンボルを認識してもよい。
【００１２】
上記コードシンボル読取装置において、
前記認識手段は、
前記デコード手段がコードの重複を検出するコード重複検出手段と、
前記コード重複検出手段が検出した重複部分に基づいて、各画像データから取得されたコードデータを合成するコード合成手段と、をさらに備えていることが望ましく、この場合、
前記コード合成手段が合成したコードデータに基づいて、前記一のコードシンボルを認識することが望ましい。
【００１３】
上記コードシンボル読取装置は、
コードシンボルの種別と特徴が対応付けられた特徴情報を記憶する特徴情報記憶手段と、
前記寸法比検出手段が検出した寸法比と、前記特徴情報記憶手段に記憶されている特徴情報に基づいて、前記コードシンボルの全範囲が撮像されたか否かを判別する撮像範囲判別手段と、をさらに備えていることが望ましい。
【００１４】
この場合、
前記撮像範囲判別手段は、前記デコード手段が取得したコードデータと、前記特徴情報記憶手段に記憶されている特徴情報に基づいて、前記コードシンボルの全範囲が撮像されたか否かを判別することが望ましい。
【００１５】
上記コードシンボル読取装置において、
前記撮像範囲判別手段によって、前記コードシンボルの全範囲が撮像されていないと判別された場合、前記撮像手段による複数回の撮像を促すための情報を出力する情報出力手段をさらに備えていることが望ましい。
【００１６】
上記コードシンボル読取装置において、
前記撮像手段は、単焦点式の撮像装置から構成されることが望ましい。
【００１７】
上記目的を達成するため、本発明の第２の観点にかかるプログラムは、
コンピュータに、
コードシンボルを撮像するステップと、
読取対象のコードシンボルの種別を特定するステップと、
コードシンボルの種別と特徴とが対応付けられた特徴情報を記憶するステップと、
特定されたコードシンボルの種別と、前記特徴情報とに基づいて、当該コードシンボルの全範囲が撮像されたか否かを判別するステップと、
当該コードシンボルの全範囲が撮像されていない場合、当該コードシンボルを複数回撮像するステップと、
複数回の撮像で得られた複数の画像データのそれぞれに示される前記コードシンボルの一部を認識するステップと、
認識された各部分の重複部分を特定するステップと、
特定された重複部分に基づいて、前記認識された部分を合成するステップと、
合成された認識部分に基づいて、前記コードシンボルを認識してコードデータを取得するステップと、
を実行させることを特徴とする。
【発明の効果】
【００１８】
本発明によれば、一のコードシンボルを示す複数の画像データのそれぞれから、コードシンボルの寸法比あるいはコードデータを取得し、重複部分に基づいて合成して認識するので、１次元バーコードなどサイズの大きいコードシンボルが撮像範囲に収まらない場合に複数回撮像して認識することができる。これにより、単焦点式の撮像装置であっても、サイズが異なる複数種類のコードシンボルを効率的かつ正確に読み取ることができる。
【発明を実施するための最良の形態】
【００１９】
（実施形態１）
本発明にかかる実施形態を、以下図面を参照して説明する。本実施形態では、図１に示すように、商品のパッケージや外装、および、商品を運搬する際の梱包材など（以下、「物品ＧＤ」とする）に付されているコードシンボルＣＳを読取装置（ハンディターミナル１００）で読み取ることで商品管理をおこなう場合を例に以下説明する。
【００２０】
本実施形態では、コードシンボルＣＳとして、図２（ａ）に示すような「１次元バーコード」と、図２（ｂ）に示すような「２次元コード」とが用いられているものとする。「１次元バーコード」は、図２（ａ）に示すように、所定の寸法比で配置された複数のバー（「黒」）とスペース（「白」）から構成されたコードシンボルであり、１次元方向に所定のコードデータを含むものである。「２次元コード」は、図２（ｂ）に示すように、縦横の２次元方向に配置された黒と白のブロックパターンによってコードデータを示すコードシンボルである。すなわち「コードシンボル」とは、白と黒の２値階調で所定の情報（コードデータ）を不可視的に示すことができる視覚的情報（画像情報）である。
【００２１】
「１次元バーコード」は、従来より商品コードや梱包形態、あるいは、製造者などを示すコードとして種々の物品に付与されているが、１次元方向にのみ情報を含むので、情報量が少ないという欠点がある。一方「２次元コード」は、２次元方向のパターンによって情報を示すので、１次元バーコードよりも多くの情報量を含むことができる。さらに、「２次元コード」は２次元方向に情報を集積させることができるので、通常、１次元バーコードよりも小さなサイズとすることができる。一般的な１次元バーコードと２次元コードとでは、例えば、図２（ｃ）に示すようなサイズ比となる。
【００２２】
ここで、流通分野などにおいては、従来より用いられている１次元バーコードが伝統的に用いられている一方、商品の多様化などに伴う情報量の増大に対応するために２次元コードの利用も拡大しつつある。このような状況では、同一の物品ＧＤについて、例えば、商品コードや梱包形態などといった基本情報を示す１次元バーコードと、商品毎のロット番号や有効期限その他の付帯情報を示す２次元コードとが付与されることがある一方、物品ＧＤによっては、付与されているコードシンボルＣＳが１次元バーコードのみ、あるいは、２次元コードのみという場合もある。したがって、コードシンボルＣＳの読み取りをおこなう現場では、異なる種類のコードシンボルＣＳを効率的に取り扱わなければならない。すなわち、このような現場で用いられる読取装置は、サイズの異なるコードシンボルを適切に読み取る必要がある。
【００２３】
本実施形態の「コードシンボルＣＳ」はこのような２種類（１次元バーコードと２次元コード）のコードシンボルを含むものであり、本実施形態では、物品ＧＤに付与されているコードシンボルＣＳをハンディターミナル１００で読み取ることにより商品管理等をおこなうものとする。
【００２４】
このようなコードシンボルＣＳの読み取りに用いられるハンディターミナル１００の構成を図３、図４を参照して説明する。図３は本実施形態にかかるハンディターミナル１００のシステム構成（内部構成）を示すブロック図であり、図４はハンディターミナル１００の外観例を示す図（図４（ａ）は正面図、図４（ｂ）は背面図）である。
【００２５】
図示するように、本実施形態にかかるハンディターミナル１００は、制御部１１０と、撮像部１２０と、入力部１３０、出力部１４０と、プログラム格納部１５０と、記憶部１６０と、通信部１７０と、を備える。
【００２６】
制御部１１０は、例えば、ＣＰＵ（Central Processing Unit：中央演算処理装置）などから構成され、ハンディターミナル１００の各部を制御する。ここで、制御部１１０は、プログラム格納部１５０に格納された動作プログラムを実行することで後述する各処理が実現される。なお、制御部１１０は、動作時に必要なデータや動作プログラムなどを展開（ロード）するための記憶領域を備えているものとする。この記憶領域（以下「ワークエリア」とする）は、例えば、レジスタやキャッシュメモリ、および、ＲＡＭ（Random Access Memory）などから構成される。
【００２７】
撮像部１２０は、制御部１１０の制御によって撮像動作をおこなうものであり、本実施形態では、コードシンボルを読み取るための、いわゆるエリアセンサとして機能する。撮像部１２０は、図３に示すように、光源１２１、レンズユニット１２２、撮像素子１２３、などを備える。
【００２８】
光源１２１は、例えば、ＬＥＤ（Light Emitting Diode：発光ダイオード）やレーザ照射装置などの発光部材や反射鏡などの付帯部材から構成され、読取対象となるコードシンボルＣＳに光線を照射する。コードシンボルＣＳに照射された光線は反射してレンズユニット１２２に入射する。したがって、反射光がレンズユニット１２２に適切に入射するよう、光源１２１では、レンズユニット１２２や撮像素子１２３に応じた適切な光源、および、照射角や発光強度などが採用・設定される。なお、レンズユニット１２２や撮像素子１２３の性能などにより、コードシンボルＣＤの読み取りに光源を必要としない場合は、光源１２１の構成は省略されてもよい。
【００２９】
レンズユニット１２２は、所定のレンズ群などから構成され、読取対象のコードシンボルＣＳからの反射光を入射光として受光し、撮像素子１２３上に結像させる。本実施形態では、構造が簡単で経済性・堅牢性に優れる単焦点式のレンズをレンズユニット１２２に採用するものとする。すなわち、本実施形態にかかる撮像部１２０は、単焦点式のエリアセンサにより構成されることとなる。また、レンズユニット１２２には、通常の読み取り作業において物品ＧＤに付されている２次元コードを読み取るのに適した焦点距離が設定されているものとする。
【００３０】
撮像素子１２３は、例えば、ＣＭＯＳイメージセンサ（CMOS: Complementary Metal Oxide Semiconductor「相補型金属酸化物半導体」）などから構成され、レンズユニット１２２によって結像される入射光の強弱に応じて光電変換することで、コードシンボルからの反射光の強弱を示すアナログ信号を生成する。撮像素子１２３は、所定のＡＤ変換回路を備えるものとし、生成されたアナログ信号をデジタルデータに変換する。ここでは、コードシンボルの黒色部分と白色部分を示す２値データに変換する。
【００３１】
入力部１３０は、ユーザによって操作される部材から構成され、ユーザからの指示を受け付ける。入力部１３０は、操作に応じた所定の信号を制御部１１０に送出することで、ユーザの指示を制御部１１０に入力する。入力部１３０は、例えば、所定の操作ボタンやカーソルキーなどから構成され、ユーザによって操作される。入力されるユーザの指示は、例えば、コードシンボルＣＳの読取動作の開始・終了や読取対象とするコードシンボルＣＳの種別指定、あるいは、取得された情報の転送指示などである。
【００３２】
出力部１４０は、種々の情報を出力するものであり、例えば、液晶表示装置などの表示装置から構成された表示部１４１などを有する。表示部１４１は、撮像部１２０が撮像した画像やコードシンボルの読取結果、その他ユーザによる設定や操作のためのメニュー画面などを表示する。なお、表示部１４１がタッチパネルなどから構成される場合には、入力部１３０と同等の入力装置として機能させてもよい。また、出力部１４０は、必要に応じて、所定の音声を出力するスピーカや、ＬＥＤなどの発光部材によるインジケータなどを備えていてもよい。
【００３３】
プログラム格納部１５０は、例えば、フラッシュメモリなどの記憶装置から構成され、制御部１１０が実行する動作プログラムを記憶する。本実施形態では、ハンディターミナル１００の基本的な動作を司るプログラム（基本プログラム：ＯＳ（Operating System））の他、後述する各処理を実現するためのプログラムが記憶される。本実施形態では、以下のようなプログラムが格納される。
（Ｐ１）「撮像プログラム」：撮像部１２０を駆動し、読取対象のコードシンボルを撮像するためのプログラム
（Ｐ２）「画像認識プログラム」：撮像部１２０が撮像した画像を画像認識し、撮像されたコードシンボルを認識するためのプログラム
（Ｐ３）「寸法比検出プログラム」：バーコードを撮像した場合に、バー部分とスペース部分の寸法比を検出するためのプログラム
（Ｐ４）「撮像範囲判別プログラム」：読取対象のコードシンボルの全範囲が撮像されているか否かを判別するためのプログラム
（Ｐ５）「撮像制御プログラム」：読取対象コードシンボルの全範囲が撮像されるよう制御するためのプログラム
（Ｐ６）「重複検出プログラム」：一のコードシンボルについて複数回撮像された画像に示されているコードシンボルの重複部分を検出するためのプログラム
（Ｐ７）「合成プログラム」：一のコードシンボルについて複数回撮像された画像に示されているコードシンボルまたは当該コードシンボルで示されるコードデータを合成するためのプログラム
（Ｐ８）「デコードプログラム」：撮像画像に示されるコードシンボルをデコードし、当該コードシンボルが示すコードデータを取得するためのプログラム
（Ｐ９）「出力プログラム」：取得されたコードデータに基づく情報を出力するためのプログラム
【００３４】
このようなプログラムを実行することなどにより、制御部１１０は以下のような機能を実現する。
（Ｆ１）「撮像機能」：撮像部１２０を動作させ、レンズユニット１２２から入光した入射光に基づく画像データを取得する機能
（Ｆ２）「撮像範囲判別機能」：取得した画像データに読取対象コードシンボルの全範囲が撮像されているか否かを判別する機能
（Ｆ３）「撮像制御機能」：読取対象コードシンボルの全範囲が撮像されるよう制御する機能
（Ｆ４）「合成機能」：一のコードシンボルについて複数回撮像された画像に示されているコードシンボルまたは当該コードシンボルで示されるコードデータを合成するためのプログラム
（Ｆ５）「コードシンボル認識機能」：取得された一または複数の画像データから読取対象のコードシンボルを認識する機能
（Ｆ６）「コード認識機能」：認識されたコードシンボルをデコードして、当該コードシンボルが示すコードデータを認識する機能
（Ｆ７）「出力機能」：撮像されたコードシンボルから取得したコードデータに基づく情報を出力する機能
【００３５】
なお、本実施形態では、制御部１１０がプログラムを実行することによるソフトウェア処理で上記各機能を実現するが、例えば、これらの各機能をそれぞれ専門的に処理する回路等（いわゆる「ＡＳＩＣ」（Application Specific Integrated Circuit））をハンディターミナル１００に構成することにより、ハードウェア処理によって上記各機能が実現されてもよい。
【００３６】
記憶部１６０は、例えば、フラッシュメモリなどの記憶装置から構成され、制御部１１０が後述する処理の実行に用いるデータや処理結果を示すデータ（以下、「処理データ」とする）を記憶する。「処理データ」として、例えば、図５に示すような「特徴テーブル」が記憶される。「特徴テーブル」には、ハンディターミナル１００が読取可能なコードシンボルの特徴を示す情報が記録される。
【００３７】
本実施形態では、ハンディターミナル１００によって「１次元バーコード」および「２次元コード」が読取可能であるものとし、各コード形態の複数種類のコードシンボルについての特徴を示す情報が記録される。１次元バーコードの特徴として、種別毎に定められているコード桁数やモジュール（バーコードのバー部分とスペース部分の組み合わせ）の数、および、コードの始点・終点を示す既定のコード（「スタートコード」、「ストップコード」）、などが記録される。また、２次元コードについては、各種別毎に定められている、２次元コードの範囲を規定しているパターン（「認識パターン」）などが記録される。
【００３８】
上記「特徴テーブル」の他、読み取られたコードシンボルをデコードして取得されるコードデータ、および、取得されたコードデータに応じて設定されている各種情報などが記憶部１６０に記憶される。
【００３９】
通信部１７０は、例えば、IEEE802.3、IEEE802.11、Bluetooth、IrDA (Infrared Data Association)、USB (Universal Serial Bus)、などといった所定のデータ転送規格に基づく通信装置から構成され、所定のコンピュータ装置（不図示）などに制御部１１０の処理結果などを転送する。すなわち、通信部１７０は、ハンディターミナル１００が読み取ったコードシンボルから得られるコードデータもしくは当該コードデータに基づく情報を、商品管理に関する電算処理をおこなうサーバなどのコンピュータに転送するための通信インタフェースとして機能する。
【００４０】
なお、上記の各構成は、本発明の実施に必要な要部であり、ハンディターミナル１００には、これらの他に、ハンディターミナルとして必要な構成や機能、および、その他の付加的な構成や機能が、必要に応じて備えられているものとする。
【００４１】
次に、上記のように構成されたハンディターミナル１００の動作を図面を参照して以下説明する。後述する各処理は、プログラム格納部１５０に格納されている動作プログラムを制御部１１０が実行することで実現される。本実施形態では、ハンディターミナル１００を用いて物品ＧＤに付されているコードシンボルＣＳを読み取って商品管理をおこなう場合を例に以下説明する。
【００４２】
本発明の実施形態１にかかる「読取処理（１）」を図６に示すフローチャートを参照して説明する。この「読取処理（１）」は、ハンディターミナル１００に電源が投入され、入力部１３０から読取開始の指示が入力されることを契機に開始される。ここで、読取開始の指示が入力されると撮像部１２０が駆動され、レンズユニット１２２への入射光に基づく画像が表示部１４１に表示される。また、読取対象とするコードシンボルの種別を指定するための画像（種別指定部１４２）が表示部１４１に表示される。
【００４３】
ユーザは、読取対象とするコードシンボルＣＳの種別を種別指定部１４２から指定する。この場合、ユーザが入力部１３０を操作することで、種別指定部１４２に表示されている種別から所望のものを選択し、入力する。なお、表示部１４１がタッチパネルから構成されている場合には、ペン型の入力装置などを用いて表示部１４１上の種別指定部１４２を直接指示することで指定してもよい。このような操作により、読取対象のコードシンボルＣＳの種別を示す情報（以下、「コード種情報」とする）が制御部１１０に入力される（ステップＳ１０１）。
【００４４】
ユーザは、表示部１４１に表示されている画像をもとに、ハンディターミナル１００の位置を調整し、読取対象のコードシンボルＣＳが表示部１４１に表示されるようにする。本実施形態では、図７（ａ）に示すように、表示部１４１上に撮像部１２０が取得する画像を表示するための領域（以下、「ファインダ領域ＦＲ」とする）が規定されるものとし、このファインダ領域ＦＲに読取対象のコードシンボルＣＳが表示される。ここで、上述したように、レンズユニット１２２の焦点距離を２次元コードにあわせて設定しているので、読取対象が２次元コードである場合には、図７（ａ）に示すように、撮像範囲内（ファインダ領域ＦＲ内）に２次元コードの全範囲を収めることができる。
【００４５】
一方、読取対象が１次元バーコードである場合、２次元コードよりもサイズが大きいため、全範囲が収まらない場合がある（図７（ｂ））。本実施形態では、このような場合、当該１次元バーコードの一部分が含まれるようにハンディターミナル１００を位置調整して読取動作を開始するものとする。この場合、１次元バーコードには、左端から右端方向にコードが記録されているので、コードの始点を示す左端部が収まる位置に調整して読取動作を開始するものとする。
【００４６】
ユーザは、読取対象とするコードシンボルＣＳを画像上で捉えると、入力部１３０を操作し、位置が決定された旨を示す指示を入力する。すなわち、位置決定指示を示す信号（以下、「位置決定信号」とする）が入力部１３０から制御部１１０に入力され、これにより制御部１１０は撮像位置が決定されたと判別する（ステップＳ１０２）。
【００４７】
撮像位置が決定されると（ステップＳ１０２：Ｙｅｓ）、制御部１１０は、入力時点で撮像素子１２３に結像されている入射光に基づく画像データを取得し、撮像画像としてワークエリアに保持する（ステップＳ１０３）。すなわち、読取対象としているコードシンボルＣＳの黒色部分と白色部分を示す２値データを取得する。
【００４８】
ここで、ステップＳ１０１で入力されたコード種情報が２次元コードを示している場合（ステップＳ１０４：Ｎｏ）、制御部１１０はステップＳ１０３で取得した画像データに示されるコードシンボルＣＳをデコードしてコードデータを取得し、記憶部１６０に格納する（ステップＳ１０７）。制御部１１０は、取得したコードデータもしくは当該コードデータから得られる情報（例えば、商品コードや製造者などを示す情報。以下、「商品情報」とする）を生成し、表示部１４１もしくは通信部１７０を介して外部装置に出力して（ステップＳ１０８）、処理を終了する。
【００４９】
一方、ステップＳ１０１で入力されたコード種情報が１次元バーコードを示している場合（ステップＳ１０４：Ｙｅｓ）、制御部１１０はステップＳ１０３で取得した画像データに示されるコードシンボルＣＳを画像認識し、１次元バーコードを構成するバー部分とスペース部分の寸法比を検出し、検出した寸法比を示す情報（以下、「寸法比情報」とする）をワークエリアに保持する（ステップＳ１０５）。
【００５０】
ここでは、取得された２値画像を、図８（ａ）に示すような１次元方向に走査し、２値データの分布を検出することで寸法比を求める。すなわち、黒色部分と白色部分を示す２値データ上では、例えば、黒色部分の階調を「０」、白色部分の階調を「１」で示すので、撮像画像の１次元方向上のデータ中、「０」が連続する部分を「バー」、「１」が連続する部分を「スペース」と認識する。この場合、連続する「０」または「１」の範囲を検出することでバー部分の幅とスペース部分の幅を検出する。ここで、撮像部１２０により取得される画像はラスタ画像であるので、画像を構成するピクセルの数によって範囲を検出することができる。すなわち、走査した１次元方向上で、データ値が「０」となっているピクセルが連続している部分のピクセル数をバーの幅とすることができる。同様に、データ値が「１」となっているピクセルが連続している部分のピクセル数をスペースの幅とすることができる。
【００５１】
制御部１１０は、このように検出されたデータ値が「０」のピクセル数と、データ値が「１」のピクセル数を、１次元バーコードのバーとスペースの寸法比とする。例えば、図８（ｂ）に示すようなバーコードの場合において、例えば、バーＢ１を示すピクセルの数が「１０」であり、以下、スペースＳ１のピクセル数が「５」、バーＢ２のピクセル数が「３」、スペースＳ２のピクセル数が「３」、バーＢ３のピクセル数が「２」…、であるとすると、制御部１１０は、「１０，５，３，３，２，…」という情報を「寸法比情報」として生成する。なお、バーコードの始まりがバーであるかスペースであるかは各種別毎に定められているので、読取対象として指定された種別にしたがって寸法比情報を生成するものとする。
【００５２】
制御部１１０は、撮像された画像に示されている１次元バーコードについて、バー部分とスペース部分の寸法比を求めると、ステップＳ１０１で指定されたコードシンボルの種別に基づいて、当該１次元バーコードの全範囲が撮像されているか否かを判別する（ステップＳ１０６）。ここでは、ステップＳ１０５で寸法比を算出するために１次元バーコードのバー部分とスペース部分を検出しているので、撮像画像中のモジュール数を検出することができる。したがって、制御部１１０は、記憶部１６０の「特徴テーブル」（図５）を参照し、検出したモジュール数と、指定されている種別の１次元バーコードに規定されているモジュール数（以下、「規定モジュール数」とする）とを比較することで、当該１次元バーコードの全範囲が撮像されているか否かを判別する。
【００５３】
ここで、読取対象としている１次元バーコードの全範囲が撮像されている場合（ステップＳ１０６：Ｙｅｓ）、制御部１１０は、当該１次元バーコードをデコードしてコードデータを取得して、記憶部１６０に格納する（ステップＳ１０７）。制御部１１０は、取得したコードデータもしくは当該コードデータに基づく商品情報を生成して、表示部１４１もしくは通信部１７０を介して外部装置に出力して（ステップＳ１０８）、処理を終了する。
【００５４】
一方、１次元バーコードの全範囲が撮像されていない場合（ステップＳ１０６：Ｎｏ）、制御部１１０は、複数回の撮像によって全範囲の画像を取得するための「全範囲撮像処理（１）」を実行する（ステップＳ１５０）。この「全範囲撮像処理（１）」を図９に示すフローチャートを参照して説明する。
【００５５】
まず制御部１１０は、読取対象の１次元バーコードの全範囲が撮像できない旨を示すメッセージを表示部１４１に表示する（ステップＳ１５１）。このメッセージには、ステップＳ１０３での撮像（以下、「第１回目撮像」とする）で収まらなかった部分の撮像を促すメッセージなどが含まれる。
【００５６】
ユーザは、表示されたメッセージにしたがって、第１回目撮像で撮像されなかった部分がファインダ領域ＦＲ内に収まるようにハンディターミナル１００の位置を調整する。ハンディターミナル１００の位置を決定すると、ユーザは入力部１３０を操作して位置決定指示を入力する。すなわち、入力部１３０から位置決定信号が制御部１１０に入力されることで、制御部１１０は撮像位置が決定されたと判別する（ステップＳ１５２）。すなわち、第１回目撮像に続く撮像（以下、「第２回目撮像」とする）についての撮像範囲が指定される。
【００５７】
ここでは、図１０（ａ）に示す範囲ＣＲ１が第１回目撮像で取得された範囲であるとすると、図１０（ｂ）に示す範囲ＲＲに対応するバーコード部分が撮像されるようにハンディターミナル１００の位置を調整して位置決定指示をおこなう。位置決定指示は、ハンディターミナル１００がユーザに保持された状態で手動によっておこなわれるため、分断部分を正確に合わせることは困難であり、第１回目撮像画像と第２回目撮像画像との間にはズレが生じる。この場合、第１回目撮像画像と第２回目撮像画像のいずれにも示されない部分があると正確な読取・認識ができないため、図１０（ｃ）に示すように、第１回目撮像での撮像範囲ＣＲ１の右端付近と第２回目撮像での撮像範囲ＣＲ２の左端付近が重複するようにハンディターミナル１００の位置調整をおこなうものとする。
【００５８】
撮像位置が決定されると（ステップＳ１５２：Ｙｅｓ）、制御部１１０は、入力時点で撮像素子１２３に結像されている入射光に基づく画像データを取得し、「第２の撮像画像」としてワークエリアに保持する（ステップＳ１５３）。
【００５９】
制御部１１０は、上記ステップＳ１０５と同様の処理により、ステップＳ１５３で取得した第２の撮像画像に示される１次元バーコードのバー部分とスペース部分の寸法比を検出して寸法比情報を生成する（ステップＳ１５４）。生成された寸法比情報をワークエリアに保持する。すなわち、制御部１１０は、第２の撮像画像に示されるバー部分とスペース部分を認識し、これらの寸法比を検出する。
【００６０】
制御部１１０は、第１回目撮像で得られた寸法比情報（以下、「寸法比情報（１）」とする）と第２回目撮像で得られた寸法比情報（以下、「寸法比情報（２）」とする）とを比較し、寸法比が重複する部分を特定し（ステップＳ１５５）、当該重複部分を一方から除外して、寸法比情報（１）と寸法比情報（２）を合成する（ステップＳ１５６）。すなわち、例えば、寸法比情報（１）が「１０，５，３，３，５」であり、寸法比情報（２）が「３，５，５，１０，５」である場合、「３，５」の部分が重複する。したがって、寸法比情報（１）または寸法比情報（２）のいずれかから「３，５」の部分を除外して合成することで、「１０，５，３，３，５，５，１０，５」という寸法比情報（以下、「寸法比情報Ｔ１」とする）を得ることができる。
【００６１】
制御部１１０は、このようにして得られた寸法比情報Ｔ１に基づいて、第１回目撮像画像に示されるバー部分とスペース部分、および、第２回目撮像画像に示されるバー部分とスペース部分を特定することができる。よって、特定されたバー部分とスペース部分に基づいて、第１回目撮像と第２回目撮像で得られたバーコード画像に示されるモジュール数を特定することができる。したがって、制御部１１０は、特定されたモジュール数と規定モジュール数とを比較することで、第１回目撮像と第２回目撮像によって、読取対象の１次元バーコードの全範囲が撮像できたか否かを判別する（ステップＳ１５７）。
【００６２】
ここで、まだ全範囲が撮像されない場合（ステップＳ１５７：Ｎｏ）、制御部１１０はステップＳ１５１〜Ｓ１５６までの処理を繰り返し、１次元バーコードの全範囲が撮像されるまで複数の撮像画像を取得する。この場合、撮像回数に応じて、以下、第３回目撮像、第４回目撮像、…、第ｎ回目撮像とし、各撮像毎に合成される寸法比情報を寸法比情報Ｔ２、寸法比情報Ｔ３、…、寸法比情報Ｔn-1とする。ここで、寸法比情報Ｔ１〜Ｔn-1のいずれかを寸法情報Ｔxとする。
【００６３】
一方、全範囲が撮像された場合（ステップＳ１５７：Ｙｅｓ）、ステップＳ１５６での合成により得られた寸法比情報Ｔxに基づいて、読取対象としている１次元バーコードを認識して（ステップＳ１５８）、「読取処理（１）」（図６）のフローに戻る。すなわち、寸法比情報Ｔxは、１次元バーコードの全範囲におけるバー部分とスペース部分の寸法比を示しているので、この寸法比情報Ｔxにより、読取対象としている１次元バーコードの全範囲を認識することができる。
【００６４】
「読取処理（１）」では、ステップＳ１５８での認識結果に基づいてデコード処理をおこなってコードデータを取得して記憶部１６０に格納する（ステップＳ１０７）。制御部１１０は、取得したコードデータもしくは当該コードデータに基づく商品情報を生成し、表示部１４１もしくは通信部１７０を介して外部装置に出力して（ステップＳ１０８）、処理を終了する。
【００６５】
上記「読取処理（１）」によれば、１次元バーコードなどサイズの大きいコードシンボルＣＳを読み取る場合において、１次元バーコードのバー部分とスペース部分の寸法比に基づいて、撮像範囲内に１次元バーコードの全範囲が収まっているか否かを判別し、収まらない場合は、ユーザに複数回撮像させることで当該１次元バーコードの全範囲を撮像する。したがって、ユーザがハンディターミナル１００を物品ＧＤから遠ざけたり近づけるすることなくコードシンボルＣＳを撮像して認識することができる。この結果、コードシンボルＣＳの読取作業時に、ユーザが移動する必要がない。また、複数回の撮像によって生じる重複部分を考慮してデコードするので、ユーザの手動操作による撮像であっても正確にデコードすることができる。
【００６６】
（実施形態２）
上記実施形態１では、複数回の撮像で得られた撮像画像のそれぞれに示されている１次元バーコードのバー部分とスペース部分との寸法比に基づいて、撮像された１次元バーコードの範囲や重複部分を特定したが、各撮像画像に示されている範囲のバーコードをデコードして得られるコードデータに基づいて、撮像された１次元バーコードの範囲や重複部分を特定してもよい。この場合のハンディターミナル１００の処理（「読取処理（２）」）を図１１に示すフローチャートを参照して以下説明する。なお、ハンディターミナル１００の構成や「読取処理（２）」の開始条件、その他用語の定義などは実施形態１と同様である。
【００６７】
ユーザは、読取対象とするコードシンボルＣＳの種別を種別指定部１４２から指定する。すなわち、コード種情報が制御部１１０に入力される（ステップＳ２０１）。
【００６８】
ユーザは、表示部１４１に表示されている画像をもとに、ハンディターミナル１００の位置を調整し、読取対象のコードシンボルＣＳが表示部１４１のファインダ領域ＦＲに表示されるようにする。
【００６９】
ユーザは、読取対象とするコードシンボルＣＳを画像上で捉えると、入力部１３０を操作し、位置が決定された旨を示す指示を入力する。すなわち、位置決定信号が入力部１３０から制御部１１０に入力され、これにより制御部１１０は撮像位置が決定されたと判別する（ステップＳ２０２）。
【００７０】
撮像位置が決定されると（ステップＳ２０２：Ｙｅｓ）、制御部１１０は、入力時点で撮像素子１２３に結像されている入射光に基づく画像データを取得し、撮像画像としてワークエリアに保持する（ステップＳ２０３）。すなわち、読取対象としているコードシンボルＣＳの黒色部分と白色部分を示す２値データを取得する。
【００７１】
制御部１１０はステップＳ２０３で取得した画像データに示されるコードシンボルＣＳをデコードしてコードデータを取得する（ステップＳ２０４）。取得されたコードはワークエリアに保持される。
【００７２】
ここで、ステップＳ２０１で指定されたコード種が２次元コードを示す場合（ステップＳ２０５：Ｎｏ）、制御部１１０は、ステップＳ２０４で取得したコードデータを記憶部１６０に格納する（ステップＳ２０７）。制御部１１０は、取得したコードデータもしくは当該コードデータに基づく商品情報を生成して、表示部１４１もしくは通信部１７０を介して外部装置に出力して（ステップＳ２０８）、処理を終了する。
【００７３】
一方、指定されたコード種が１次元バーコードである場合（ステップＳ２０５：Ｙｅｓ）、制御部１１０は、記憶部１６０の「特徴テーブル」（図５）を参照し、ステップＳ２０１で指定されたコード種に対応する桁数を特定し、ステップＳ２０４で取得されたコードの桁数と比較することで、読取対象としている１次元バーコードの全範囲が撮像されているか否かを判別する（ステップＳ２０６）。
【００７４】
すなわち、デーコードで取得したコードの桁数と「特徴テーブル」に設定されている桁数（以下、「規定桁数」とする）と一致する場合、制御部１１０は、当該１次元バーコードの全範囲が撮像されていると判別する。一方、デコードで取得したコードの桁数が規定桁数より少ない場合、制御部１１０は、当該１次元バーコードの全範囲が撮像されていないと判別する。
【００７５】
１次元バーコードの全範囲が撮像されている場合（ステップＳ２０６：Ｙｅｓ）、制御部１１０は、ステップＳ２０５で取得したコードデータを記憶部１６０に格納する（ステップＳ２０７）。制御部１１０は、取得したコードデータもしくは当該コードデータに基づく商品情報を生成して、表示部１４１もしくは通信部１７０を介して外部装置に出力して（ステップＳ２０８）、処理を終了する。
【００７６】
一方、１次元バーコードの全範囲が撮像されていない場合（ステップＳ２０６：Ｎｏ）、制御部１１０は、複数回の撮像によって全範囲の画像を取得するための「全範囲撮像処理（２）」を実行する（ステップＳ２５０）。この「全範囲撮像処理（２）」を図１２に示すフローチャートを参照して説明する。
【００７７】
まず制御部１１０は、読取対象の１次元バーコードの全範囲が撮像できない旨を示すメッセージを表示部１４１に表示する（ステップＳ２５１）。このメッセージには、ステップＳ２０３での第１回目撮像で収まらなかった部分の撮像を促すメッセージなどが含まれる。
【００７８】
ユーザは、表示されたメッセージにしたがって、第１回目撮像で撮像されなかった部分が収まるようにハンディターミナル１００の位置を調整して位置を決定すると、入力部１３０を操作して位置決定指示を入力する。すなわち、入力部１３０から位置決定信号が制御部１１０に入力されることで、制御部１１０は撮像位置が決定されたと判別する（ステップＳ２５２）。すなわち、第１回目撮像に続く第２回目撮像についての撮像範囲が指定される。
【００７９】
ここでは、実施形態１の場合と同様に、図１０（ａ）に示す範囲ＣＲ１が第１回目撮像で取得された範囲であるとすると、図１０（ｂ）に示す範囲ＲＲに対応するバーコード部分が撮像されるようにハンディターミナル１００の位置を調整して位置決定指示をおこなう。この場合、図１０（ｃ）に示すように、第１回目撮像での撮像範囲ＣＲ１の右端付近と第２回目撮像での撮像領域ＣＲ２の左端付近が重複するようにハンディターミナル１００の位置調整をおこなうものとする。
【００８０】
撮像位置が決定されると（ステップＳ２５２：Ｙｅｓ）、制御部１１０は、入力時点で撮像素子１２３に結像されている入射光に基づく画像データを取得し、「第２の撮像画像」としてワークエリアに保持する（ステップＳ２５３）。
【００８１】
制御部１１０は、第２の撮像画像に示されている１次元バーコードをデコードしてコードデータを取得する（ステップＳ２５４）。
【００８２】
制御部１１０は、「読取処理（２）」（図１１）のステップＳ２０５で取得している、第１回目撮像で撮像された１次元バーコードから取得されたコードデータと、ステップＳ２５４で取得されたコードデータとの間で重複するコードデータを特定する（ステップＳ２５５）。例えば、ステップＳ２０５で取得されたコードデータが「１２３４５」で、ステップＳ２５４で取得されたコードデータが「４５６７８」である場合、「４５」を重複部分として特定する。
【００８３】
制御部１１０は、ステップＳ２０５で取得されたコードデータ、あるいは、ステップＳ２５４で取得されたコードデータの一方から、ステップＳ２５５で特定した重複部分を除外した上で、両コードデータを合成する（ステップＳ２５６）。例えば、ステップＳ２０５で取得されたコードデータが「１２３４５」で、ステップＳ２５４で取得されたコードデータが「４５６７８」である場合、一方から重複コードデータである「４５」を除外して合成することで「１２３４５６７８」を得る。
【００８４】
制御部１１０は、ステップＳ２５６で合成したコードの桁数と、当該１次元バーコードの規定桁数とを比較することで、当該１次元バーコードの全範囲が撮像されたか否かを判別する（ステップＳ２５７）。すなわち、合成後のコードの桁数が規定桁数と一致する場合、制御部１１０は、当該１次元バーコードの全範囲が撮像されていると判別する。一方、合成後のコードの桁数が規定桁数より少ない場合、制御部１１０は、当該１次元バーコードの全範囲が撮像されていないと判別する。
【００８５】
１次元バーコードの全範囲が撮像されていない場合（ステップＳ２５７：Ｎｏ）、制御部１１０は、ステップＳ２５１〜Ｓ２５６までの処理を繰り返し、１次元バーコードの全範囲が撮像されるまで複数の撮像画像を取得する。
【００８６】
一方、１次元バーコードの全範囲が撮像されている場合（ステップＳ２５７：Ｙｅｓ）、「読取処理（２）」（図１１）のフローに戻る。
【００８７】
「読取処理（２）」では、ステップＳ２５６で合成されたコードが記憶部１６０に格納される（ステップＳ２０７）。制御部１１０は、合成したコードデータもしくは当該コードデータに基づく商品情報を生成して、表示部１４１もしくは通信部１７０を介して外部装置に出力して（ステップＳ２０８）、処理を終了する。
【００８８】
上記「読取処理（２）」によれば、１次元バーコードなどサイズの大きいコードシンボルＣＳを読み取る場合において、１次元バーコードをデコードして得られるコードの桁数に基づいて、撮像範囲内に１次元バーコードの全範囲が収まっているか否かを判別し、収まらない場合は、ユーザに複数回撮像させることで当該１次元バーコードの全範囲を撮像する。したがって、ユーザがハンディターミナル１００を物品ＧＤから遠ざけたり近づけるすることなくコードシンボルＣＳを撮像して認識することができる。この結果、コードシンボルＣＳの読取作業時に、ユーザが移動する必要がない。また、複数回の撮像によって生じる重複部分を考慮してコードデータを取得する、ユーザの手動操作による撮像であっても正確にコードデータを取得することができる。
【００８９】
上記実施形態１では、１次元バーコードのバー部分とスペース部分の寸法比を用い、上記実施形態２では、１次元バーコードをデコードして得られるコードの桁数を用いたが、この双方を用いて、撮像されている範囲や重複部分を特定してもよい。この場合、より高い判別精度を実現することができる。
【００９０】
また、上記各実施形態では、ユーザがコード種を指定したが、撮像される画像に基づいて、ハンディターミナル１００がコード種を自動的に判別するようにしてもよい。この場合のハンディターミナル１００の処理（「読取処理（３）」を図１３に示すフローチャートを参照して説明する。なお、ハンディターミナル１００の構成や「読取処理（３）」の開始条件、その他用語の定義などは上記各実施形態と同様である。
【００９１】
ユーザは、読取対象とするコードシンボルＣＳを画像上で捉えると、入力部１３０を操作し、位置が決定された旨を示す指示を入力する。すなわち、位置決定信号が入力部１３０から制御部１１０に入力されることで、制御部１１０は、撮像位置が決定されたと判別する（ステップＳ３０１）。
【００９２】
撮像位置が決定されると（ステップＳ３０１：Ｙｅｓ）、制御部１１０は、入力時点で撮像素子１２３に結像されている入射光に基づく画像データを取得し、撮像画像としてワークエリアに保持する（ステップＳ３０２）。すなわち、読取対象としているコードシンボルＣＳの黒色部分と白色部分を示す２値データを取得する。
【００９３】
制御部１１０は、ステップＳ３０２で取得した撮像画像を画像認識し、２次元コードに規定されている「認識パターン」を含んでいるか否かを判別する（ステップＳ３０３）。すなわち、２次元コードには、コードの範囲やコード種別を示すための所定のパターンが含まれており、例えば、２次元コードの一種である「QR Code」には、図１４（ａ）に示すような「切り出しシンボル」が認識パターンとして規定されており、「Data Matrix」には、図１４（ｂ）に示すような「Ｌ型ガイドセル」が認識パターンとして規定されている。本実施形態では、このような認識パターンの特徴が「特徴テーブル」（図５）に記録されているので、画像認識によりいずれかの認識パターンが検出されれば、制御部１１０は、撮像されたコードシンボルＣＳが２次元コードであるか否かを判別することができる。
【００９４】
撮像画像に２次元コードの認識パターンが含まれている場合（ステップＳ３０３：Ｙｅｓ）、制御部１１０は、当該コードシンボルＣＳが２次元コードであると認識する。この場合、制御部１１０は当該２次元コードをデコードしてコードデータを取得し、記憶部１６０に格納する（ステップＳ３０４）。制御部１１０は、取得したコードデータもしくは当該コードデータに基づく商品情報を生成し、表示部１４１もしくは通信部１７０を介して外部装置に出力して（ステップＳ３０５）、処理を終了する。
【００９５】
一方、撮像画像に２次元コードの認識パターンが含まれていない場合（ステップＳ３０３：Ｎｏ）、制御部１１０は、当該コードシンボルＣＳが１次元バーコードであると認識する。この場合、制御部１１０は、１次元バーコードを読み取るための「バーコード読取処理」を実行する（ステップＳ３５０）。この「バーコード読取処理」を図１５に示すフローチャートを参照して説明する。
【００９６】
まず、制御部１１０は、ステップＳ３０２で取得された撮像画像に示される１次元バーコードの種別を特定する（ステップＳ３５１）。ここでは、例えば、撮像されている１次元バーコードのバー部分とスペース部分の認識（実施形態１参照）、あるいは、撮像されている１次元バーコードをデコードすることによるコードの取得（実施形態２参照）により、制御部１１０が、撮像されている１次元バーコードのスタートコードを認識する。制御部１１０は、記憶部１６０の「特徴テーブル」（図５）を参照し、認識されたスタートコードを特徴としている１次元バーコードの種別を特定する。なお、スタートコードの特徴では、一の種別に定められない場合は、該当する複数の種別を候補として特定する。
【００９７】
撮像されている１次元バーコードの種別もしくはその候補が特定されると、制御部１１０は、撮像されている部分のモジュール数もしくはデコードによって得られたコードの桁数に基づいて、読取対象としている１次元バーコードの全範囲が撮像されているか否かを判別する（ステップＳ３５２）。
【００９８】
すなわち、上記実施形態１の手法により、撮像されている１次元バーコードのバー部分とスペース部分を認識した場合は、制御部１１０が撮像されている部分のモジュール数を検出する。そして、記憶部１６０の「特徴テーブル」（図５）を参照し、ステップＳ３５１で特定した種別（もしくはその候補）についての規定モジュール数と比較することで、当該１次元バーコードの全範囲が撮像されているか否かを判別する。あるいは、上記実施形態２の手法により、撮像されている１次元バーコードをデコードしてコードデータを取得した場合は、制御部１１０が取得されたコードの桁数を特定する。そして、特定した桁数と、ステップＳ３５１で特定した種別（もしくはその候補）についての規定桁数とを比較することで、当該１次元バーコードの全範囲が撮像されているか否かを判別する。
【００９９】
１次元バーコードの全範囲が撮像されている場合（ステップＳ３５２：Ｙｅｓ）、「読取処理（３）」（図１３）のフローに戻る。「読取処理（３）」では、ステップＳ３５２の判別で取得したコードデータ、あるいは、撮像されている１次元バーコードをデコードして取得したコードデータを記憶部１６０に格納する（ステップＳ３０４）。制御部１１０は、取得したコードデータもしくは当該コードデータに基づく商品情報を生成し、表示部１４１もしくは通信部１７０を介して外部装置に出力して（ステップＳ３０５）、処理を終了する。
【０１００】
一方、１次元バーコードの全範囲が撮像されていない場合（ステップＳ３５２：Ｎｏ）、制御部１１０は、上記実施形態１の「全範囲撮像処理（１）」（ステップＳ１５０）あるいは上記実施形態２の「全範囲撮像処理（２）」（ステップＳ２５０）と同様の処理を実行することにより（ステップＳ３５３）、読取対象としている１次元バーコードを複数回撮像し、当該１次元バーコードの全範囲を撮像した複数の撮像画像を取得する。また、取得された複数の撮像画像から寸法比情報もしくはコードの重複部分を特定し、寸法比情報もしくはコードの合成をおこなう。
【０１０１】
読取対象としている１次元バーコードの全範囲が撮像されると、制御部１１０は、「読取処理（３）」（図１３）のフローに戻る。「読取処理（３）」では、ステップＳ３５３で合成されたコード、もしくは、ステップＳ３５３で合成された寸法比情報に基づくデコードにより取得されるコードデータを記憶部１６０に格納する（ステップＳ３０４）。制御部１１０は、取得したコードデータもしくは当該コードデータに基づく商品情報を生成し、表示部１４１もしくは通信部１７０を介して外部装置に出力して（ステップＳ３０５）、処理を終了する。
【０１０２】
上記「読取処理（３）」によれば、撮像されたコードシンボルＣＳの種別をハンディターミナル１００が自動的に判別し、種別に応じた処理を実行するので、ユーザがコード種別を指定する必要がない。このため、より効率的にコードシンボルＣＳの読取作業を実施することができる。
【０１０３】
以上説明したように、本発明にかかる実施形態によれば、読取対象としているコードシンボルＣＳが撮像範囲内に収まらない場合、これを自動的に検知してユーザに複数回撮像させることができる。この場合、バーコードの寸法比やデコードされたコードデータに基づいて複数の撮像画像上での重複部分を特定するので、ユーザによる手動撮像であっても、全体のコードデータを正確に取得することができる。したがって、撮像部が単焦点式である場合でも、サイズの異なる複数種類のコードシンボルを、１つの装置で効率的に取り扱うことができる。
【０１０４】
なお、上記実施形態では、コードシンボルＣＳの読取装置としてハンディターミナル１００を採用した場合を例示したが、コードシンボルを読み取るための装置であれば、ハンディターミナルでなくてもよく、例えば、ＰＯＳシステム（POS: Point Of Sales）などで用いられるバーコードリーダなどに本発明を適用してもよい。
【０１０５】
上記実施形態では、撮像範囲内にコードシンボルＣＳが収まらない場合に複数回撮像するようにしたが、この場合に、前回の撮像画像を表示部１４１に残像的に表示させることで、ユーザが次回撮像のための位置決めを容易におこなえるようにしてもよい。この場合、例えば、制御部１１０が、前回の撮像で取得した画像について、２値データ画像以外の多値データ画像を取得する。そして、制御部１１０が、取得した多値データ画像の透過度を制御することで、ファインダ領域ＦＲ内に前回撮像画像を透過的に表示させる。
【０１０６】
上記実施形態では、１次元バーコードや２次元コードなどのコードシンボルを読取対象としたが、例えば、OCRフォントなどで構成される文字情報をハンディターミナル１００で読み取るようにしてもよい。この場合、プログラム格納部１５０に所定の文字認識プログラムを格納し、制御部１１０がこれを実行することで、撮像部１２０で撮像された文字情報を認識することができる。ここで、OCRフォントは１次元バーコードに付帯して当該コード等を示す文字情報として利用されることがある。したがって、１次元バーコードが撮像範囲に収まらない場合と同様に、OCRフォントで構成された文字列も撮像範囲に収まらないことがある。このような場合には、上記実施形態における各「全範囲撮像処理」と同様の処理を実行することにより、OCRフォントで構成された文字列の全範囲を撮像して、正確に認識することができる。この場合、例えば、文字部分と文字間（スペース）の寸法比から撮像範囲の判別や重複部分の特定などができる他、各撮像毎に文字認識をおこない、認識された文字の文字数（桁数）によって撮像範囲の判別や重複部分の特定などをおこなうことができる。
【０１０７】
上記実施形態では、撮像素子１２３としてＣＭＯＳイメージセンサを例示したが、例えば、ＣＣＤ（Charge Coupled Device：電荷結合素子）を利用した撮像素子などを採用してもよい。すなわち、入射光を光電変換して画像データを得ることができるのであれば、任意の撮像素子（撮像装置）を採用することができる。
【０１０８】
また、動作プログラムの更新により機能の拡張を図ることができるハンディターミナルなどの読取装置に上述した各処理を実現するプログラムを適用することで、既存のハンディターミナル等を上記実施形態にかかる読取装置（ハンディターミナル１００）として機能させることができる。あるいは、撮像機能を有する汎用ＰＤＡ（Personal Data Assistance：携帯情報端末）や携帯電話などの移動体通信端末などに同様のプログラムを適用することで、汎用ＰＤＡなどを上記実施形態にかかる読取装置（ハンディターミナル１００）として機能させることができる。この場合、上記実施形態にかかる動作プログラムおよび処理データをこれらの装置にインストールし、当該装置の制御部が実行する。これにより、これらの装置が上記実施形態における読取装置（ハンディターミナル１００）と同等の装置として機能する。
【０１０９】
このような動作プログラムを配布する方法は任意であり、例えば、ＣＤ−ＲＯＭやメモリカードなどの記録媒体に格納して配布可能であることはもとより、インターネットなどの通信媒体を介して配布することもできる。
【０１１０】
また、上記実施形態では、コードシンボルＣＳを読み取ることにより商品管理をおこなう場面を例示したが、コードシンボルＣＳの読み取りが必要となるあらゆる場面に本発明を適用した読取装置を用いることができる。
【０１１１】
以上説明したように、本発明を上記実施形態の如く適用することにより、単焦点式の読取装置で異なるサイズの複数種類のコードシンボルを効率的に読み取ることができる。
【図面の簡単な説明】
【０１１２】
【図１】本発明の実施形態に係るハンディターミナルが用いられる様子を示す図である。
【図２】本発明の実施形態において読取対象とされるコードシンボルを説明するための図であり、（ａ）は１次元バーコードの例を示し、（ｂ）は２次元コードの例を示し、（ｃ）は１次元バーコードと２次元コードのサイズ差の例を示す。
【図３】図１に示すハンディターミナルの構成を示すブロック図である。
【図４】図１に示すハンディターミナルの外観構成を示す図であり、（ａ）はハンディターミナルの正面図であり、（ｂ）はハンディターミナルの背面図である。
【図５】図３に示す記憶部に格納される「特徴テーブル」の例を示す図である。
【図６】本発明の実施形態１にかかる「読取処理（１）」を説明するためのフローチャートである。
【図７】本発明の実施形態にかかるハンディターミナルでの撮像範囲を説明するための図であり、（ａ）は２次元コードを撮像する際の撮像範囲の例を示し、（ｂ）は１次元バーコードを撮像する際の撮像範囲の例を示す。
【図８】図６に示す「読取処理（１）」における１次元バーコードの読取動作を説明するための図であり、（ａ）は１次元バーコードの走査方向の例を示し、（ｂ）は１次元バーコードの寸法比の例を示す。
【図９】図６に示す「読取処理（１）」で実行される「全範囲撮像処理（１）」を説明するためのフローチャートである。
【図１０】図９に示す「全範囲撮像処理（１）」における撮像範囲を説明するための図であり、（ａ）は第１回目撮像での撮像範囲の例を示し、（ｂ）は第２回目撮像で撮像すべき範囲の例を示し、（ｃ）は第１回目撮像の撮像範囲と第２回目撮像の撮像範囲についての位置関係の例を示す。
【図１１】本発明の実施形態２にかかる「読取処理（２）」を説明するためのフローチャートである。
【図１２】図１１に示す「読取処理（２）」で実行される「全範囲撮像処理（２）」を説明するためのフローチャートである。
【図１３】本発明の実施形態３にかかる「読取処理（３）」を説明するためのフローチャートである。
【図１４】２次元コードに設けられる認識パターンの例を示す図である。
【図１５】図１３に示す「読取処理（３）」で実行される「バーコード読取処理」を説明するためのフローチャートである。
【符号の説明】
【０１１３】
１００…ハンディターミナル、１１０…制御部、１２０…撮像部、１２１…光源、１２２…レンズユニット、１２３…撮像素子、１３０…入力部、１４０…出力部、１５０…プログラム格納部、１６０…記憶部、１７０…通信部
【図１】
2005276119.tif 000003
【図２】
2005276119.tif 000004
【図３】
2005276119.tif 000005
【図４】
2005276119.tif 000006
【図５】
2005276119.tif 000007
【図６】
2005276119.tif 000008
【図７】
2005276119.tif 000009
【図８】
2005276119.tif 000010
【図９】
2005276119.tif 000011
【図１０】
2005276119.tif 000012
【図１１】
2005276119.tif 000013
【図１２】
2005276119.tif 000014
【図１３】
2005276119.tif 000015
【図１４】
2005276119.tif 000016
【図１５】
2005276119.tif 000017