(57)【要約】【課題】撮像時の２次元コードの姿勢に適宜対応したデコードを可能とする一方で、２次元コードの姿勢に異常が生じたときには、その旨を適宜に作業者等に通知可能とした２次元コード読取装置を提供すること。【解決手段】撮像手段と、撮像手段を介して取得される画像に基づいて２次元コードの姿勢に適宜対応したデコード処理を行うデコード手段と、前記デコードの過程において、２次元コードの姿勢に相当する姿勢データを取得する姿勢データ取得手段と、前記デコード情報に基づく出力と、前記姿勢データに基づく出力とを、併せて生成する出力生成手段と、を設ける。【選択図】      図２
2004213455.tif 000002
【特許請求の範囲】
【請求項１】
撮像手段と、
撮像手段を介して取得される画像に基づいて２次元コードの姿勢に適宜対応したデコード処理を行うデコード手段と、
前記デコードの過程において、２次元コードの姿勢に相当する姿勢データを取得する姿勢データ取得手段と、
前記デコード情報に基づく出力と、前記姿勢データに基づく出力とを、併せて生成する出力生成手段と、
を有することを特徴とする２次元コード読取装置。
【請求項２】
姿勢データは、２次元コードの表裏を特定する表裏判別データである、ことを特徴とする請求項１に記載の２次元コード読取装置。
【請求項３】
２次元コードの基準面の指定を、表又は裏から２者択一的に受け付ける基準面指定受付手段を更に有し、
出力生成手段は、前記指定された基準面と、前記表裏判別データで特定される読取面とが不一致のとき、所定のエラー出力を生成する、
ことを特徴とする請求項２に記載の２次元コード読取装置。
【請求項４】
所定のトリガタイミングに応答してそのとき撮像手段とデコード手段とを通じて得られるデコード結果に基づき、２次元コードの基準面を、表又は裏から２者択一的に特定する基準面特定手段を更に有し、
出力生成手段は、前記特定された基準面と、表裏判別データで特定される読取面とが不一致のとき、所定のエラー出力を生成する、ことを特徴とする請求項２又は３に記載の２次元コード読取装置。
【請求項５】
姿勢データは、２次元コードの水平面内における回転度合いを特定する回転度合い判別データである、ことを特徴とする請求項１に記載の２次元コード読取装置。
【請求項６】
回転度合いの許容範囲の指定を受け付ける許容範囲受付手段を更に有し、
出力生成手段は、回転度合い判別データで特定される回転度合いが前記指定された許容範囲を超えたとき、所定のエラー出力を生成する、ことを特徴とする請求項５に記載の２次元コード読取装置。
【請求項７】
所定のトリガタイミングに応答してそのとき撮像手段を通じて得られる２次元コードのファインダパターンの位置情報に基づいて回転度合いの許容範囲を特定する許容範囲特定手段を更に有し、
出力生成手段は、回転度合い判別データで特定される回転度合いが前記特定された許容範囲を超えたとき、所定のエラー出力を生成する、ことを特徴とする請求項５又は６に記載の２次元コード読取装置。
【請求項８】
姿勢データには、２次元コードの表裏を特定する表裏判別データと、２次元コードの水平面内における回転度合いを特定する回転度合い判別データとが含まれる、ことを特徴とする請求項１に記載の２次元コード読取装置。
【請求項９】
２次元コードの基準面の指定を表又は裏から２者択一的に受け付ける基準面指定受付手段、及び、回転度合いの許容範囲の指定を受け付ける許容範囲受付手段を更に有し、
出力生成手段は、
前記指定された基準面と前記表裏判別データで特定される読取面とが不一致のとき、及び／又は、回転度合い判別データで特定される回転度合いが前記指定された許容範囲を超えたとき、所定のエラー出力を生成する、
ことを特徴とする請求項８に記載の２次元コード読取装置。
【請求項１０】
所定のトリガタイミングに応答してそのとき撮像手段とデコード手段とを通じて得られるデコード結果に基づき、２次元コードの基準面を表又は裏から２者択一的に特定する基準面特定手段、及び、所定のトリガタイミングに応答してそのとき撮像手段を通じて得られる２次元コードのファインダパターンの位置情報に基づいて回転度合いの許容範囲を特定する許容範囲特定手段を更に有し、
出力生成手段は、
前記特定された基準面と表裏判別データで特定される読取面とが不一致のとき、及び／又は、回転度合い判別データで特定される回転度合いが前記特定された許容範囲を超えたとき、所定のエラー出力を生成する、
ことを特徴とする請求項８又は請求項９に記載の２次元コード読取装置。
【請求項１１】
撮像手段と、撮像手段を介して取得される画像に基づいて２次元コードの姿勢に適宜対応したデコード処理を行うデコード手段と、前記デコードの過程において、２次元コードの姿勢に相当する姿勢データを取得する姿勢データ取得手段と、を具備する２次元コード読取装置における情報処理方法であって、デコードの過程において、２次元コードの姿勢データを生成するデータ生成ステップと、デコード情報に基づく出力と前記表裏判別データに基づく出力とを併せて生成する出力生成ステップと、を具備することを特徴とする２次元コード読取装置における情報処理方法。
【請求項１２】
姿勢データは、２次元コードの表裏を特定する表裏判別データ、及び／又は、２次元コードの水平面内における回転度合いを特定する回転度合い判別データである、ことを特徴とする請求項１１に記載の２次元コード読取装置における情報処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、物流ラベル、納品ラベル等に好適に用いられる２次元コードの読取装置に係り、特に、２次元コードに表される情報と共に、２次元コードの姿勢に基づく情報を併せて出力するようにした２次元コード読取装置に関するものである。
【０００２】
【従来の技術】
２次元コードには、スタック式コードとマトリクス式コードとがあり、昨今では、従前のバーコードに代わる新たな情報伝達媒介手段としてその普及が広まりつつある。例えば、『ＰＤＦ４１４』、『ＱＲコード』、『ＣＯＤＥ１６ｋ』、『ＣＯＤＥ４９』、『マキシコード』、『データマトリクス』、『コードワゴン』等と称される２次元コードが既に規格化され一般公開されている。
【０００３】
このような２次元コードの普及に伴い、２次元コード読取装置の改良も進み、近年では、２次元コードの撮像時の姿勢に起因する読取エラー等の回避（自動補正）を可能とした２次元コード読取装置が実用化され始めている。具体的には、例えば、２次元コードが表裏反転状態や水平面内において回転した状態にあっても読取（デコード）可能な２次元コード読取装置等が知られている（例えば特許文献１参照）。
【０００４】
ここで、『表裏反転』が生ずる物品搬送例を図８に示す。同図において、符号ａはイメージセンサ内蔵のカメラを、符号ｂは物品搬送手段としてのコンベアを、符号ｃは搬送対象となる物品（この例では液晶用ガラス基板）を、符号ｄはガラス基板ｃに貼付された２次元コード（印刷、刻印等によるものも含む、以下同様）をそれぞれ示している。
【０００５】
図８に示される例では、ガラス基板ｃ１（同図中左側）は、２次元コードが貼付された面（表面）を上に向けた状態（この例では本来あるべき状態とされる）でコンベアｂ上に載置され、ガラス基板ｃ２（同図中右側）は、表面に２次元コードが貼付されているが、裏面を上に向けた状態でコンベアｂ上に載置されている。このような場合、それぞれのガラス基板ｃ１，ｃ２に貼付された２次元コードｄ１，ｄ２をカメラａで撮像すると、図９（ａ）、（ｂ）に示されるように、互いに表裏が反転した正像（図９（ａ））並びに鏡像（図９（ｂ））が得られる。尚、このような事態は、例えば作業者がコンベアｂにガラス基板ｃを誤って表裏を逆にして流してしまったような場合に発生する。
【０００６】
『水平面内における回転』が生ずる物品搬送例を図１０に示す。同図において、符号ａはイメージセンサ内蔵のカメラを、符号ｂは物品搬送手段としてのコンベアを、符号ｃは搬送対象となる物品（この例では段ボール箱）を、符号ｄは段ボール箱ｃに貼付された２次元コードをそれぞれ示している。
【０００７】
図１０に示される例では、直方体状の段ボール箱ｃ３（同図中左側）は正面（表）を図中手前に向けた状態（この例では本来あるべき状態とされる）でコンベアｂ上に載置され、段ボール箱ｃ４（同図中右側）は正面を図中右側方に向けた状態でコンベアｂ上に載置されている。このような場合、それぞれの段ボール箱に貼付された２次元コードｄ３，ｄ４をカメラａで撮像すると、図１１（ａ）、（ｂ）に示されるように、回転角度が０度の画像（本来得られるべき画像）（図１１（ａ））と、反時計回りに見て角度が９０度回転した画像（図１１（ｂ））が得られる。尚、このような事態は、同様に、例えば作業者がコンベアｂに段ボール箱ｃの向きを誤った状態で流してしまったような場合に発生する。
【０００８】
先述したように、２次元コードの撮像時の姿勢に起因する読取エラー等の回避（表裏反転の自動補正や回転角度（角度ずれ）の自動補正）を可能とした２次元コード読取装置にあっては、図８乃至図１０に示したような表裏反転や角度ずれが生じている場合にも、２次元コードを的確に読取可能であり、このため、そのような場合にあっても、その都度エラー信号が生成されて生産ラインが停止等されることもなく、生産性の向上にも寄与することができる。
【０００９】
より詳細には、表裏反転の自動補正や回転角度の自動補正が可能とされた２次元コード読取装置には、一般的には、『正像モード』、『鏡像モード』、『自動検出モード』の３種が用意されている。『正像モード』が選択された場合には、カメラで取得された画像データに対して通常通りデコード処理が実行され、２次元コード（シンボル）で表現される情報が取得される。一方、『鏡像モード』が選択された場合には、例えば読取走査方向を反転させることによりデコード処理が実行されて同情報が取得される。また、『自動検出モード』が選択された場合には、例えば、『正像モード』と同様のデコード処理を行うと共に『鏡像モード』と同様のデコード処理を行い、デコードが成功したいずれか一方の情報を選択することで、表裏反転有無に拘わらず正常な情報が取得される（表裏反転補正）。尚、何れのモードが選択された場合にあっても、デコード処理が正常に行われなかった場合には、所定の読取エラー信号が生成される。
【００１０】
また、水平面内における回転に対しては、例えば、画像データから検出されるファインダパターン（一般的には、“Ｌ型ガイドセル”や“切り出しシンボル”）の所定座標上の位置情報を取得し、これと予め定められた基準位置情報との比較を通じて回転ずれの自動補正（角度補正）が行われる。
【００１１】
理解を容易とするため、上記従来の２次元コード読取装置におけるデコード処理内容（制御プログラム）を図１２のフローチャートに示す。尚、同フローチャートは、先述した『自動検出モード』における処理内容を示すものである。
【００１２】
同フローチャートに示されるように、従来のこの種の２次元コード読取装置にあっては、所定のトリガ入力により読取が開始され（ステップ１２０１）、これにより、イメージセンサを内蔵するカメラ（図８，図１０参照）が動作して所定エリアの画像が取得される（ステップ１２０２）。次いで、取得された画像に対して、エッジ抽出、直線抽出、ノイズ除去等の画像前処理が施され（ステップ１２０３）、これにより２次元コード部分を抽出した（切り出した）画像データが取得される。
【００１３】
画像前処理（ステップ１２０３）が終了すると、先に取得された画像データに対して、先述したような表裏反転補正（ステップ１２０４）、角度補正（ステップ１２０５）が施される。これら自動補正を通じて、デコードが正常に行われると（ステップ１２０６ＯＫ）、読取データ（２次元コードに表される情報）が出力され（ステップ１２０７）、例えば所定モニタ上に読取データに対応する文字、図形、記号等が表示される。一方、デコードが失敗した場合には（ステップ１２０６ＮＧ）、読取エラー信号が出力され、例えば生産ライン（コンベア等）が自動停止される。
【００１４】
【特許文献１】
特許第３１６９５２７号公報
【００１５】
【発明が解決しようとする課題】
ところで、上述したように、２次元コードの撮像時の姿勢に起因する検出エラーの回避を可能とした２次元コード読取装置、より具体的には、上記した表裏反転の自動補正又は角度ずれの自動補正を可能とする２次元コード読取装置の場合には、以下に示す問題が生じることが発明者により知見されている。
【００１６】
（１）例えば『自動検出モード』が選択された場合、２次元コードに表裏反転が生じていても正常に情報出力がなされ、作業者等がその旨に気づくことなく製品（物品）が生産ライン上を通過してしまうため、後段処理（例えばライン通過後の製品への加工処理）において不具合が生じる場合が多々あった。この問題は『角度補正』が自動で行われる場合によっても同様である。
【００１７】
（２）例えば『正像モード』又は『鏡像モード』が選択された場合、読取エラー出力がなされても、それが、「表裏反転」によるものなのか、２次元コードの印字品質の劣化等によるものなのかを判別することができなかった。そのため、読取エラー出力が生成されるたびに生産ラインを停止させてエラー原因を探る等の手間を要していた。
【００１８】
この発明は、上述の問題点に着目して成されたものであり、その目的とするところは、２次元コードの姿勢に適宜対応したデコードを可能とする一方で、２次元コードの姿勢に異常が生じたときには、その旨を適宜に作業者等に通知可能とした２次元コード読取装置を提供することにある。
【００１９】
本発明の他の目的並びに効果については、実施の形態の記載等を参照することにより、当業者であれば容易に理解されるであろう。
【００２０】
【課題を解決するための手段】
本発明の２次元コード読取装置は、撮像手段と、撮像手段を介して取得される画像に基づいて２次元コードの姿勢に適宜対応したデコード処理を行うデコード手段と、デコードの過程において、２次元コードの姿勢に相当する姿勢データを取得する姿勢データ取得手段と、前記デコード情報に基づく出力と前記姿勢データに基づく出力とを併せて生成する出力生成手段と、を有することを特徴とする。
【００２１】
『撮像手段』とは、ラインセンサや２次元センサ等、２次元コードの各種の姿勢を認識するのに適当なセンサを内蔵したカメラ等を意味している。
【００２２】
『２次元コードの姿勢』とは、表裏状態、水平面内における回転状態、垂直方向への傾斜状態、等々、様々な観点に基づく姿勢を意味している。もっとも、本発明は、「撮像手段を介して取得される画像に基づいて２次元コードの姿勢に適宜対応したデコード処理を可能とする２次元コード読取装置」を前提とするため、そのようなデコードを不可能にする極端な姿勢（例えば折れ曲がり等により２次元コードの大半が隠れてしまい、元より読取が不可能とされるような姿勢）は自ずと排除される。
【００２３】
『デコード情報に基づく出力』としては、例えば、デコード情報を文字・図形・記号等により所定モニタ上に表すための画像データ出力が挙げられる。また、例えば、デコード情報に基づく外部機器制御信号の出力等を挙げることもできる。
【００２４】
『姿勢データに基づく出力』としては、例えば、２次元コードの表・裏の別、水平面内における回転度合い（回転角度等）、垂直方向への傾斜状態（傾斜角度等）等を、文字・図形・記号により所定モニタ上に表すための画像信号や、各状態に基づき警告ランプの点灯等を行うためのランプ制御信号等、種々のものを挙げることができる。
【００２５】
このような実施形態によれば、デコード情報に加えて、２次元コードの姿勢に基づく出力を得ることができるから、２次元コードの姿勢に適宜対応したデコードが行われる一方で、２次元コードの姿勢に所定の異常が認められたときには、その旨を適宜に作業者等に通知することが可能となる。
【００２６】
好ましい実施の形態（以下、第１実施形態と言う）では、姿勢データは、２次元コードの表裏を特定する表裏判別データとされる。
【００２７】
このような形態によれば、２次元コードの表・裏の別を文字・図形・記号により所定モニタ上に表したり、表・裏の別に基づいて所定の警告ランプの点灯等を行うといったことが可能となる。
【００２８】
第１実施形態において、より好ましくは、２次元コードの基準面の指定を、表又は裏から２者択一的に受け付ける基準面指定受付手段が更に設けられ、出力生成手段は、前記指定された基準面と、前記表裏判別データで特定される読取面とが不一致のとき、所定のエラー出力を生成するようにされる。
【００２９】
このような形態によれば、指定された基準面と、表裏判別データで特定される読取面とが不一致のときに限り、所定のエラー出力が生成されるから、例えば、『２次元コードが裏（又は表）を向いているときにのみ、生産ラインをストップさせて、２次元コードが貼付された製品の配置状態を変更したい』といったニーズにも対応させることができる。
【００３０】
また、第１実施形態において、より好ましくは、所定のトリガタイミングに応答してそのとき撮像手段とデコード手段とを通じて得られるデコード結果に基づき、２次元コードの基準面を、表又は裏から２者択一的に特定する基準面特定手段が更に設けられ、出力生成手段は、前記特定された基準面と、表裏判別データで特定される読取面とが不一致のとき、所定のエラー出力を生成するようにされる。
【００３１】
このような形態によれば、例えば、デコード対象となる２次元コード（モデルコード）を、表裏について所望な状態（基本位置として理想とする状態）で所定エリア（撮像範囲内）に配置し、トリガタイミングを発生させることで、基準面を自動的に特定することができる。すなわち、所謂、基準面のティーチングが可能となる。
【００３２】
また、他の好ましい実施の形態（以下、第２実施形態と言う）では、姿勢データは、２次元コードの水平面内における回転度合いを特定する回転度合い判別データとされる。
【００３３】
このような形態によれば、２次元コードの回転度合いを数値等により所定モニタ上に表したり、回転度合いに基づいて所定の警告ランプの点灯等を行うといったことが可能となる。尚、『回転度合い』とあるように、ここで言う「回転度合い判別データ」は、数値（角度）で表されるもののみに限定されない。例えば、３６０度（一回転分）を幾つかの区分に分け、どの区分に２次元コードの回転状態が属しているかを示す情報等であってもよい。
【００３４】
第２実施形態において、より好ましくは、回転度合いの許容範囲の指定を受け付ける許容範囲受付手段が更に設けられ、出力生成手段は、回転度合い判別データで特定される回転度合いが前記指定された許容範囲を超えたとき、所定のエラー出力を生成するようにされる。尚、ここで言う『所定のエラー出力』とは、回転度合いが許容範囲を超えている旨を単に通知するためだけのものに限定されず、例えば、許容範囲からの超過度合いを数値表示するための出力が含まれるようにしてもよい。
【００３５】
このような形態によれば、回転度合い判別データで特定される回転度合いが指定された許容範囲を超えたときに限り、所定のエラー出力が生成されるから、例えば、『２次元コードが所望の範囲を超えて回転しているときにのみ、生産ラインをストップさせて、２次元コードが貼付された製品の配置状態を変更したい』といったニーズにも対応することができる。
【００３６】
また、第２実施形態において、より好ましくは、所定のトリガタイミングに応答してそのとき撮像手段を通じて得られる２次元コードのファインダパターンの位置情報に基づいて回転度合いの許容範囲を特定する許容範囲特定手段が更に設けられ、出力生成手段は、回転度合い判別データで特定される回転度合いが前記特定された許容範囲を超えたとき、所定のエラー出力を生成するようにされる。
【００３７】
このような形態によれば、例えば、デコード対象となる２次元コード（モデルコード）を、所定エリア（撮像範囲内）に所望な状態（基本位置として理想とする状態）で配置し、トリガタイミングを発生させることで、回転許容範囲を自動的に特定することができる。すなわち、所謂、回転許容範囲のティーチングが可能となる。
【００３８】
尚、上述した第１実施形態と第２実施形態とは、１つの２次元コード読取装置により同時に実現することもできる。すなわち、本発明の第３実施形態では、姿勢データには、２次元コードの表裏を特定する表裏判別データと、２次元コードの水平面内における回転度合いを特定する回転度合い判別データとの双方が含まれる。
【００３９】
したがって、第３実施形態においては、以下に示す好ましい実施の形態が存在する。
【００４０】
好ましい実施の一形態では、２次元コードの基準面の指定を、表又は裏から２者択一的に受け付ける基準面指定受付手段が更に設けられ、出力生成手段は、前記指定された基準面と、前記表裏判別データで特定される読取面とが不一致のとき、所定のエラー出力を生成するようにされる。
【００４１】
好ましい実施の一形態では、所定のトリガタイミングに応答してそのとき撮像手段とデコード手段とを通じて得られるデコード結果に基づき、２次元コードの基準面を、表又は裏から２者択一的に特定する基準面特定手段が更に設けられ、出力生成手段は、前記特定された基準面と、表裏判別データで特定される読取面とが不一致のとき、所定のエラー出力を生成するようにされる。
【００４２】
また、他の好ましい実施の一形態では、回転度合いの許容範囲の指定を受け付ける許容範囲受付手段が更に設けられ、出力生成手段は、回転度合い判別データで特定される回転度合いが前記指定された許容範囲を超えたとき、所定のエラー出力を生成するようにされる。
【００４３】
また、他の好ましい実施の一形態では、所定のトリガタイミングに応答してそのとき撮像手段を通じて得られる２次元コードのファインダパターンの位置情報に基づいて回転度合いの許容範囲を特定する許容範囲特定手段が更に設けられ、出力生成手段は、回転度合い判別データで特定される回転度合いが前記特定された許容範囲を超えたとき、所定のエラー出力を生成するようにされる。
【００４４】
次に、先述した課題は、本発明の２次元コード読取装置における情報処理方法によっても解決することができる。
【００４５】
本発明の２次元コード読取装置における情報処理方法は、撮像手段と、撮像手段を介して取得される画像に基づいて２次元コードの姿勢に適宜対応したデコード処理を行うデコード手段と、前記デコードの過程において、２次元コードの姿勢に相当する姿勢データを取得する姿勢データ取得手段と、を具備する２次元コード読取装置における情報処理方法であって、デコードの過程において、２次元コードの姿勢データを生成するデータ生成ステップと、デコード情報に基づく出力と前記表裏判別データに基づく出力とを併せて生成する出力生成ステップと、を具備する。
【００４６】
尚、本発明の２次元コード読取装置における情報処理方法においても、各種の好ましい実施の形態が存在する。すなわち、先述したように、姿勢データは、２次元コードの表裏を特定する表裏判別データ、及び／又は、２次元コードの水平面内における回転度合いを特定する回転度合い判別データとすることができる。
【００４７】
本発明の２次元コード読取装置における情報処理方法についての更に好ましい実施の形態については、先述した本発明の２次元コード読取装置に係る記載により自明であるため、詳細説明は省略する。
【００４８】
【発明の実施の形態】
以下に、この発明の好適な実施の一形態を添付図面を参照しながら詳細に説明する。尚、以下の実施形態は本発明の一例を示すものに過ぎず、本発明の及ぶ範囲は、明細書の特許請求の範囲の記載によってのみ規定されることは言うまでもない。
【００４９】
本発明の一実施形態である２次元コード読取装置のハードウェア構成が図１に示されている。
【００５０】
同図に示されるように、この２次元コード読取装置１００は、本体部（コントローラ）１に、カメラ２、コンソール３、モニタ４並びに上位システム５とを接続してなるものである。
【００５１】
カメラ２には、ＣＣＤ等のイメージセンサが内蔵されており、コントローラ１の制御に基づいて、生産ライン上を流れてくるワーク（この例では液晶用ガラス基板）に貼付された２次元コードを所定のタイミング（トリガタイミング）で撮像する。尚、トリガタイミングは、図示されない公知のトリガセンサがワークの到来を検出したときや、コンソール３において撮影開始指令操作が行われたとき、上位システム５から送られてきた撮影開始コマンドが解読されたときなどに発生する。
【００５２】
コンソール３及びモニタ４は、本装置１００のヒューマンマシンインタフェースとして機能するものであり、これらを用いて本装置１００とオペレータとの対話が適切に行われる。
【００５３】
上位システム５は、本装置１００に対する上位システムを構成するものであり、例えば、ＰＬＣ（プログラマブル・ロジック・コントローラ）やパソコン等が適用される。これにより、生産ライン全体の統括制御等が可能とされている。
【００５４】
一方、コントローラ１には、ＣＰＵ１０１と、メインメモリ１０２と、画像処理部１０３と、モデルメモリ１０４と、画像メモリ１０５と、入出力制御部１０６と、コンソールインタフェース１０７と、カメラインタフェース１０８と、モニタインタフェース１０９と、通信インターフェース１１０と、ＣＰＵバス１１１と、画像バス１１２とが含まれている。
【００５５】
ＣＰＵ１０１はマイクロプロセッサを主体として構成されており、メインメモリ１０２に格納されたシステムプログラムを実行することによって、コントローラ１全体の制御を司る。
【００５６】
コントローラ１は、通信インタフェース１１０を介して上位システム５と接続される他、コンソールインタフェース１０７、カメラインタフェース１０８、モニタインタフェース１０９をそれぞれ介して、コンソール３、カメラ２、モニタ４のそれぞれと接続される。
【００５７】
カメラ２の撮影動作により得られた画像は、カメラインターフェース１０８を介してコントローラ１に取り込まれ、最終的に画像メモリ１０５に格納される。また、モデルメモリ１０４には、後述する表裏反転補正や角度補正のための各種のモデル情報（基準位置情報、表裏指定情報、角度範囲指定情報等）が格納される。
【００５８】
画像メモリ１０５に格納された画像データは、適宜読み出されて、画像処理部１０３へ与えられ、モデルメモリ１０４に格納されたモデル情報に基づく表裏反転補正や角度補正を含む各種の画像処理が行われた後、所定の規則に従ってデコードが試みられる。詳細は適宜説明する。
【００５９】
また、オペレータの所定操作によりコンソール３で発生される各種の指令は、コンソールインタフェース１０７を介してコントローラ１内に取り込まれる。コントローラ１からオペレータに対する各種の指示は、モニタインタフェース１０９を介してモニタ４へと与えられ、モニタ４の画面上には該当する情報に相当する文字、図形、記号等が表示される。
【００６０】
尚、内部における高速の画像データ転送は画像バス１１２を介して行われ、ＣＰＵが取り扱う各種のデータはＣＰＵバス１１１を介して該当する回路要素に与えられる。
【００６１】
本装置１００の要部となる２次元コードの読取処理の内容（制御プログラムの構成）が図２のフローチャートにより示されている。
【００６２】
この２次元コード読取処理は、トリガ入力の到来により開始される。読取命令が解読（トリガ入力）されると（ステップ２０１）、まずカメラ２を動作させてコンベア上の所定エリアの撮像が行われ、これにより画像が取得され、一旦、画像メモリ１０５に格納される（ステップ２０２）。
【００６３】
続いて、取得された画像（画像メモリ１０５に格納された画像）に対し画像前処理が施される（ステップ２０３）。この前処理は、取得された画像に対して、エッジ抽出、直線抽出、ノイズ除去等を行うことにより、取得された画像から、２次元コード部分の画像データを抽出する（切り出す）ための処理である。
【００６４】
次いで、公知の手法により、ステップ２０３により得られた画像データについての表裏反転補正が行われるのであるが、本実施の形態では、このとき、表裏反転情報が所定メモリ領域に格納される。この処理は、詳細には、先ず、取得された画像データが正像に基づくものと仮定して公知の手法によりデコードを試みる。このデコードが成功すれば、正像と判定され、この場合、正像である旨（“表裏情報＝表”）を示すフラグ“０”がメインメモリ１０２の所定領域に格納される。一方、このデコードが失敗すれば、次いで得られた画像データが鏡像に基づくものと仮定して公知の手法によりデコードを試みる。このデコードが成功すれば、鏡像と判定され、この場合、鏡像である旨（表裏情報＝裏）を示すフラグ“１”がメインメモリ１０２の所定領域に格納される。
【００６５】
メインメモリ１０２のメモリ領域の内容が図３に示されている。同図に示されるように、メインメモリ１０２には、演算用領域Ｒ１、各種演算用フラグ領域Ｒ２の他、表裏情報登録領域Ｒｎが用意されている。上記した表裏情報を示すフラグは、この表裏情報登録領域Ｒｎに格納される。尚、同図中、符号Ｒｎ＋１で示される角度情報登録領域は、以下に示す角度情報のための記憶領域である。
【００６６】
図２のフローチャートに戻り、表裏反転補正並びに表裏反転情報の登録が終了すると、次いで、公知の手法により、表裏反転補正後の画像データについての角度補正が行われる（ステップ２０５）。本実施形態では、このとき、先に図３で示した角度情報登録領域Ｒｎ＋１に角度情報が格納される。この処理は、詳細には、対象となる画像データからファインダパターンを検出し、このファインダパターンの所定座標上の位置情報を取得する。これと、モデルメモリ１０４に予め格納された基準位置情報とを比較（ずれを検出）することにより、角度ずれを算出し、算出された角度が角度情報として角度情報登録領域Ｒｎ＋１に格納される。
【００６７】
上述の表裏反転補正並びに角度補正を通じて、デコードが正常に行われると（ステップ２０６ＯＫ）、次いで、メインメモリ１０２に記憶された表裏反転情報並びに角度情報に基づくエラー出力生成処理が行われる（ステップ２０７乃至２１０）。
【００６８】
尚、デコードが失敗した場合には（ステップ２０６ＮＧ）、所定の読取エラー出力が生成され（ステップ２１２）、この例では、モニタ４に、読取エラー発生の旨を示す表示が成される。このことからも明らかなように、本実施の形態では、読取エラーは、２次元コードの表裏反転、角度ずれ以外の理由、すなわち、例えば２次元コードの印字品質が悪い等の理由により生成されるものであり、従前の２次元コード読取装置とは異なり、表裏反転、角度ずれにより生じる読み取りエラーとは区別されている。
【００６９】
表裏反転情報並びに角度情報に基づくエラー出力生成処理（ステップ２０７乃至２１０）では、まず、モデルメモリ１０４に登録された表裏指定情報（詳細は後述する）と、ステップ２０４で登録された表裏反転情報とが一致するか否かを判別する（ステップ２０７）。
【００７０】
ここでは、モデルメモリ１０４に格納された表裏指定情報を示すフラグ（詳細は後述する）と、メインメモリ１０２で格納された表裏情報登録領域Ｒｎのフラグとが不一致であると（ユーザによる表裏指定と実際の表裏とが不一致であると）（ステップ２０７不一致）、所定の表裏反転エラー出力が生成され、この例では、モニタ４上に表裏反転エラーを示す所定の表示（図７（ｂ）参照）が成される。
【００７１】
一方、ステップ２０７において、表裏指定情報を示すフラグと、メインメモリ１０２（表裏情報登録領域Ｒｎ）に格納されたフラグとが一致した場合には（ユーザによる表裏指定と実際の表裏とが一致すると）（ステップ２０７一致）、表裏反転エラー出力は生成されず、次いで、ステップ２０５で算出（登録）された角度（角度ずれ）が、モデルメモリ１０４に格納された角度範囲指定情報（詳細は後述する）の範囲内にあるか否かが判別される（ステップ２０９）。
【００７２】
ここでは、ステップ２０５で算出された角度が、指定された角度範囲内にないときには（ステップ２０９範囲外）、所定の角度エラー出力が生成され、この例では、モニタ４上に角度エラーを示す所定の表示（図７（ｃ）参照）が成される。一方、ステップ２０５で算出された角度（角度ずれ）が、指定された角度範囲内にあるときには（ステップ２０９範囲内）、角度エラーは生成されない。
【００７３】
これら表裏反転情報並びに角度情報に基づくエラー出力生成処理（ステップ２０７乃至２１０）が終了すると、デコードにより取得された読取データ（２次元コードに表される情報）が文字、図形、記号等によりモニタ４に表示され（ステップ２１１）、これにより２次元コードの読み取り処理は一旦終了する。
【００７４】
次に、表裏指定情報並びに角度範囲指定情報の詳細について説明する。
【００７５】
オペレータ操作を介して行われる表裏指定情報並びに角度範囲指定情報の登録処理の内容が図４のフローチャートにより示されている。同図に示される内容は、先述した「表裏指定情報」並びに「角度範囲指定情報」の登録を、ユーザ（オペレータ）が、コンソール３（並びにモニタ４）を通じて行う際の処理内容を示すものである。尚、フローチャートの左側のボックス（ステップ４１１乃至４１４）は、ＣＰＵ１０１を通じてコントローラ１側で実行される内部処理を、同フローチャートの右側のボックス（ステップ４０１乃至４０４）は、ユーザ側の操作手順をそれぞれ示している。
【００７６】
同フローチャートに示されるように、表裏指定情報並びに角度範囲指定情報の登録処理では、先ず、ユーザの側で、コンソール３を使用して表裏反転判別機能の有効化命令が行われる（ステップ４０１）。すなわち、先の図２のフローチャートの説明では省略したが、本実施形態では、先のステップ２０７、２０８で示される処理は、この「表裏反転判別機能」が“有効化”されていることを条件として行われるようにされている。この表裏反転判別機能の有効化命令がなされると、コントローラ１の側では、表裏反転判別機能有効を示すフラグ“１”が所定のメモリ領域（この例ではモデルメモリ１０４）に書き込まれる（ステップ４１１）。
【００７７】
次いで、ユーザが、コンソール３を使用して表裏指定情報（正像又は鏡像）の入力を行うと（ステップ４０２）、コントローラ１の側では、表裏指定情報がモデルメモリ１０４に登録される（ステップ４１２）。
【００７８】
尚、先にも触れたが、この表裏指定情報の登録処理（ステップ４１２）では、ユーザ側での入力が“正像”（表裏指定情報＝“表”）のとき、モデルメモリ１０４の所定メモリ領域にフラグ“０”が書き込まれ、ユーザ側での入力が“鏡像”（表裏指定情報＝“裏”）のとき、モデルメモリ１０４の所定メモリ領域にフラグ“１”が書き込まれる。これらフラグは、先述したように、表裏反転情報に基づくエラー出力生成処理（ステップ２０７、２０８）で使用される。
【００７９】
次いで、ユーザの側では、コンソール３を使用して角度判別機能の有効化命令が行われる（ステップ４０３）。すなわち、先の図２のフローチャートの説明では省略したが、本実施形態では、先のステップ２０９、２１０に示される処理は、この「角度判別機能」が“有効化”されていることを条件として行われるようにされている。この角度判別機能の有効化命令がなされると、コントローラ１の側では、角度判別機能有効化を示すフラグ“１”が所定のメモリ領域（この例ではモデルメモリ１０４）に書き込まれる（ステップ４１３）。
【００８０】
次いで、ユーザが、コンソール３を使用して角度範囲指定情報の入力を行うと（ステップ４０４）、コントローラ１の側で角度範囲指定情報がメインメモリ１０２に登録される（ステップ４１４）。尚、この角度範囲指定情報は、先述したように、角度情報に基づくエラー出力生成処理（ステップ２０９、２１０）で使用される。
【００８１】
上述の表裏指定情報並びに角度範囲指定情報の登録処理の際、モニタ４に表示される操作案内画面の一例が図５に示されている。同図（ａ）は表裏反転機能設定用の案内画面を、同図（ｂ）は角度判別機能設定用の案内画面をそれぞれ示している。
【００８２】
図４のフローチャート中、ステップ４０１、４０２で示したユーザ側の処理は、図５（ａ）に示される表裏反転機能設定画面を通じて行われる。同図（ａ）に示されるように、表裏反転機能設定画面には、表裏反転判別機能の有効化、無効化命令をコントローラ１側に与えるためのＯＮ・ＯＦＦ選択用ボタン５０３，５０４（何れか一方のみ選択可）と、表裏指定情報の入力のための正像・鏡像選択ボタン５０５，５０６（何れか一方のみ選択可）と、これら選択を実行する（コントローラ１の側に登録させる）ための登録ボタン５０１と、設定を中断するための取消ボタン５０２とが表示される。これらボタンは、例えばカーソル等で適宜選択（押下）可能とされている。
【００８３】
図４のフローチャート中、ステップ４０３、４０４で示したユーザ側の処理は、図５（ｂ）に示される角度判別機能設定画面を通じて行われる。同図（ｂ）に示されるように、角度判別機能設定画面には、角度判別機能の有効化、無効化命令をコントローラ１側に与えるためのＯＮ・ＯＦＦ選択用ボタン５１０，５１１（何れか一方のみ選択可）と、角度範囲指定情報の入力のための角度範囲選択ボタン５１２乃至５１５並びに角度範囲詳細設定値入力欄５１６（±０〜９０の範囲で数値入力可）と、これら選択乃至設定を実行する（コントローラ１の側に登録させる）ための登録ボタン５０８と、設定を中断するための取消ボタン５０９とが表示される。
【００８４】
同図５（ｂ）からも分かるように、本実施形態では、角度範囲指定情報のオペレータ操作による入力は、先ず、角度範囲選択ボタン５１２乃至５１５を介して、０°，９０°，１８０°，２７０°の４つの中から何れか１つを選択し、これに、角度範囲詳細設定値入力欄５１６に入力された数値を加算した数値（角度）が、角度範囲指定情報として登録される。
【００８５】
尚、この角度範囲指定情報により規定される回転許容範囲は、先述した基準位置情報で規定される位置から左右両方向への回転にそれぞれ対応する許容範囲とされる。
【００８６】
次に、表裏指定情報並びに角度範囲指定情報の登録処理を、ティーチングにより行う場合のコントローラ１における処理内容が図６のフローチャートにより示されている。同図に示される内容は、上述した「表裏指定情報」並びに「角度範囲指定情報」の登録を、任意の２次元コードを撮像することにより自動的に行う（ティーチングにより行う）際の処理内容を示したものである。
【００８７】
この例では、先ず、デコード対象となる２次元コード（モデルコード）を、生産ライン（コンベア等）上の所定の位置（カメラ２の撮像範囲内）に、表裏・角度について所望な状態（基本位置として理想とする状態）で配置し、カメラ２を動作させて画像を取得する（ステップ６０１）。次いで、先に説明した画像前処理を行い、それにより取得される画像から、２次元コード部分の画像データを抽出する（ステップ６０２）。
【００８８】
続くステップ６０３では、ステップ６０２で取得された画像データから表裏反転指定情報が取得される。この処理は、詳細には、先ず、取得された画像データが正像に基づくものと仮定して公知の手法によりデコードを試みる。このデコードが成功すれば、正像と判定され、この場合、指定が正像である旨（“表裏指定情報＝表”）を示すフラグ“０”がメインメモリ１０２に一時的に格納される。
【００８９】
一方、このデコードが失敗すれば、次いで得られた画像データが鏡像に基づくものと仮定して公知の手法によりデコードを試みる。このデコードが成功すれば、鏡像と判定され、この場合、指定が鏡像である旨（表裏指定情報＝裏）を示すフラグ“１”がメインメモリ１０２に一時的に格納される（ステップ６０３）。
【００９０】
続くステップ６０４では、画像データから角度範囲指定情報が取得される。この処理は、詳細には、対象となる画像データからファインダパターンを検出し、このファインダパターンの所定座標上の位置情報を取得する。これと、モデルメモリ１０４に予め格納された基準位置情報とを比較（ずれを検出）することにより、角度差が算出され、角度範囲指定情報としてメインメモリ１０２に一時的に格納される（ステップ６０４）。
【００９１】
次いで、先のステップ６０３を通じて、デコードが正常に行われたときには（ステップ６０５ＯＫ）、メインメモリ１０２に一時的に格納された表裏指定情報並びに角度範囲指定情報が、モデルメモリ１０４の所定領域にそれぞれ格納され（ステップ６０６）、ティーチング処理は一旦終了される。
【００９２】
一方、デコードが失敗した場合には（ステップ６０５ＮＧ）、所定のティーチングエラー出力が生成され（ステップ６０７）、この例では、モニタ４に、ティーチング読取エラー発生の旨を示す表示がなされる。
【００９３】
最後に、表裏反転エラー出力生成時（ステップ２０８参照）、並びに角度エラー生成時（ステップ２１０参照）に、モニタ４に表示されるエラー表示の一例を図７に示す。
【００９４】
同図（ａ）は、図６で示したティーチング処理を通じて取得されるモデルコードの画像データの一例を示すものである。同図（ａ）左側に示されるように、この例では、ティーチング処理により取得された画像データ９０１から、“表裏指定情報＝表（正像）”、“角度範囲指定情報＝１０度”が取得されているものとする。尚、同図（ａ）の右側に示される画像データ９０２は、画像データ９０１に対応する鏡像の一例を参照までに示すものである
【００９５】
同図（ｂ）は、表裏反転エラー出力生成時にモニタ４に表示される表裏反転エラー表示の一例を示すものである。同図（ａ）との比較から明らかなように、同図（ｂ）に示す例では、デコード処理（ステップ２０４参照）の結果、表裏情報＝“裏”が取得されたため、表裏反転エラー表示として、そのとき取得された画像データ９０３と、表裏反転エラーが生成された旨を示す表示『Ｉｎｖ  Ｅｒｒ』（符号９０４）がモニタ４に示される。
【００９６】
同図（ｃ）は、角度エラー出力生成時にモニタ４に表示される角度エラー表示の一例を示すものである。同図（ａ）との比較から明らかなように、同図（ｂ）に示す例では、デコード処理（ステップ２０５参照）の結果、“角度情報＝−９０度（基準位置から見て時計回りに９０度回転している状態）”が取得されている。
【００９７】
尚、この例で算出される角度情報は、鏡像データ９０２との比較に基づくものである。すなわち、２次元コードの読取の結果、取得された表裏情報が、表裏指定情報と異なるときには、取得された画像（ここでは正像画像データ９０１）の反転画像（ここでは鏡像データ９０２）を基準として角度情報が算出される。そして、この例では、角度情報『−９０度』は、角度範囲指定情報『基準位置から±１０度』の範囲外であるため、角度エラー表示として、そのとき取得された画像データ９０５と、角度エラーが生成された旨を示す表示『Ｄｅｇ  Ｅｒｒ』（符号９０６）がモニタ４に示される。
【００９８】
このように、本実施形態の２次元コード読取装置によれば、表裏反転や回転角度（角度ずれ）に適宜対応してデコードを可能とする一方で、エラー出力が生成されたときには、それが「表裏反転」や「角度ずれ」によるものなのか、それ以外の理由（２次元コードの印字品質の劣化等）によるものなのかを判別可能となる。そのため、従前のように、表裏反転や角度ずれのために読取エラー出力が生成されて、生産ラインが不要に停止されること等を解消することも可能であり、生産性の向上により一層寄与することができる。
【００９９】
尚、上述した実施形態では、２次元コードの姿勢として、「表裏状態」や「水平面内における回転状態」のみを示したが、本発明に係る２次元コード読取装置は、上述した姿勢に対応したものに限定されず、例えば「垂直方向への傾き」等、様々な姿勢に対応したデコードを可能とするものにも適用可能である。
【０１００】
また、上述した実施形態では、ティーチング処理（図６参照）における角度範囲指定情報（ステップ６０４参照）は、対象となる画像データから検出されるファインダパターンの所定座標上の位置情報と、モデルメモリ１０４に格納された基準位置情報との差を、角度範囲指定情報としてそのまま使用したが、ティーチング処理により得られる角度範囲指定情報は、図５（ｂ）に示したような設定画面を通じて、更に変更（調整）を行えるようにすることも可能である。
【０１０１】
また、上述の実施形態では、２次元コードとして、マトリクス式のものを示したが、本発明の２次元コード読取装置は、スタック式の２次元コードにも対応可能である。
【０１０２】
【発明の効果】
以上の説明で明らかなように、この発明によれば、２次元コードの姿勢に適宜対応したデコードを可能とする一方で、２次元コードの姿勢に異常が生じたときには、その旨を適宜に作業者等に通知可能とした２次元コード読取装置が提供される。
【図面の簡単な説明】
【図１】本発明装置のハードウェア構成を示すブロック図である。
【図２】本発明装置の制御プログラムの構成を示すフローチャートである。
【図３】メインメモリにおけるメモリ領域の内容を示す図である。
【図４】オペレータ操作を介して行われる表裏指定情報並びに角度範囲指定情報の登録処理の内容を示すフローチャートである。
【図５】モニタ上の表示される機能設定案内画面の一例を示す図である。
【図６】ティーチングによる表裏指定情報並びに角度範囲指定情報の登録処理の内容を示すフローチャートである。
【図７】モニタ上に表示されるエラー表示画面の一例を示す図である。
【図８】２次元コードに表裏反転が生ずる物品搬送例を説明するための図である。
【図９】２次元コードの表裏反転例を示す図である。
【図１０】２次元コードに角度回転が生ずる物品搬送例を説明するための図である。
【図１１】２次元コードの角度回転例を示す図である。
【図１２】従来装置の制御プログラムの構成を示すフローチャートである。
【符号の説明】
１      コントローラ
２      カメラ
３      コンソール
４      モニタ
５      上位システム
１００    ２次元コード読取装置
１０１    ＣＰＵ
１０２    メインメモリ
１０３    画像処理部
１０４    モデルメモリ
１０５    画像メモリ
１０６    入出力制御部
１０７    コンソールインタフェース
１０８    カメラインタフェース
１０９    モニタインタフェース
１１０    通信インターフェース
１１１    ＣＰＵバス
１１２    画像バス
ａ      カメラ
ｂ      コンベア
ｃ      ワーク
ｄ      ２次元コード
【図１】
2004213455.tif 000003
【図２】
2004213455.tif 000004
【図３】
2004213455.tif 000005
【図４】
2004213455.tif 000006
【図５】
2004213455.tif 000007
【図６】
2004213455.tif 000008
【図７】
2004213455.tif 000009
【図８】
2004213455.tif 000010
【図９】
2004213455.tif 000011
【図１０】
2004213455.tif 000012
【図１１】
2004213455.tif 000013
【図１２】
2004213455.tif 000014