JP2004194172A - Method for determining photographing condition in optical code reader - Google Patents

Method for determining photographing condition in optical code reader Download PDF

Info

Publication number
JP2004194172A
JP2004194172A JP2002362082A JP2002362082A JP2004194172A JP 2004194172 A JP2004194172 A JP 2004194172A JP 2002362082 A JP2002362082 A JP 2002362082A JP 2002362082 A JP2002362082 A JP 2002362082A JP 2004194172 A JP2004194172 A JP 2004194172A
Authority
JP
Japan
Prior art keywords
image
shutter speed
level
optical code
pixel level
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2002362082A
Other languages
Japanese (ja)
Other versions
JP3944732B2 (en
Inventor
Katsuki Nakajima
克起 中島
Takeshi Shiromizu
岳 白水
Takuya Murata
卓也 村田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Omron Corp
Original Assignee
Omron Corp
Omron Tateisi Electronics Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Omron Corp, Omron Tateisi Electronics Co filed Critical Omron Corp
Priority to JP2002362082A priority Critical patent/JP3944732B2/en
Publication of JP2004194172A publication Critical patent/JP2004194172A/en
Application granted granted Critical
Publication of JP3944732B2 publication Critical patent/JP3944732B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Studio Devices (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a photographing condition determining method in an optical code reader capable of accurately acquiring a photographing condition optimum to read an optical code attached to work regardless of the surface nature of the work. <P>SOLUTION: An optimum shutter speed is determined by making a series of processing comprising a step for taking a photograph with a camera at a prescribed shutter speed to acquire an image, a step for detecting a prescribed characteristic on a pixel level in the acquired image, and a step for determining a shutter speed at which the next photograph is taken on the basis of the detected prescribed characteristic of the pixel level one cycle and continuously repeating the series of processing by a plurality of cycles. <P>COPYRIGHT: (C)2004,JPO&NCIPI

Description

【0001】
【発明の属する技術分野】
この発明は、バーコードや二次元コードと言った光学コードを対象とした光学コード読取装置における撮影条件決定方法に関する。
【0002】
【従来の技術】
この種の光学コード読取装置(例えば、二次元コード読取装置等)は、イメージセンサ内蔵カメラと、被写体を照らす照明器と、カメラによる撮影により得られる画像を記憶する画像メモリと、画像メモリから読み出された画像に対して画像処理を施すことにより得られた画像に含まれる光学コードを所定の規則に従ってデコードするデコード手段と、を備えており、生産ラインにおけるワーク識別、管理等の用途に広く採用されている。光学コードが付される対象であるワークの材質としては、ガラス、プラスチック、木材と言った様々な反射率を有するものが存在するため、それらのワークに付される光学コードを確実に読み取るためには、適切な撮影条件を設定しなければならない。
【0003】
従来、二次元コード読取装置において、撮影条件を設定するための技術としては、読取条件が良いゲインと読取条件が悪いゲインとの複数のゲインを用意しておいて、読取条件が良いゲインでn回読み取ってもデコードに成功しないときには、読取条件が悪いゲインでの読み取りに切り換えるようにしたものが知られている(特許文献1参照)。
【0004】
【特許文献1】
特開平10−187870号公報
【0005】
【発明が解決しようとする課題】
ところで、撮影条件を規定する要素として、代表的なものとしては、シャッタスピードと照明態様が挙げられる。これらの要素は相互に影響を及ぼし合うことに加え、光学コードが付されるワークの表面性状(鏡面、粗面、明度、色彩、凹凸等)によっても、撮影条件に与える影響は異なる。そのため、それらを独立に手動で調整して最適な撮影条件を取得することは極めて困難である。
【0006】
この発明は、上述の問題点に着目してなされたものであり、その目的とするところは、ワークの表面性状に拘わらず、それに付される光学コードの読み取りに最適な撮影条件を的確に自動で取得することが可能な光学コード読取装置における撮影条件決定方法を提供することにある。
【0007】
この発明のさらに他の目的並びに作用効果については、明細書の以下の記載により当業者であれば容易に理解されるであろう。
【0008】
【課題を解決するための手段】
この発明の光学コード読取装置における撮影条件決定方法は、イメージセンサ内蔵カメラと、被写体を照らす照明器と、カメラによる撮影により得られる画像を記憶する画像メモリと、画像メモリから読み出された画像に対して画像処理を施すことにより得られた画像に含まれる光学コードを所定の規則に従ってデコードするデコード手段と、を有する光学コード読取装置において、所定のシャッタスピードにてカメラ撮影を行って画像を取得するステップと、取得された画像内の画素レベルの所定特徴を検出するステップと、検出された画素レベルの所定特徴に基づいて次回のカメラ撮影におけるシャッタスピードを決定するステップとからなる一連の処理を1サイクルとして、これを複数サイクル連続的に繰り返すことにより最適シャッタスピードを決定する、ことを特徴とする。
【0009】
このような構成によれば、所定のシャッタスピードにてカメラ撮影を行って取得された画像内の画素レベルの所定特徴に基づいて次回のカメラ撮影におけるシャッタスピードの決定が行われることから、これを複数サイクル連続的に繰り返すことにより、ワークの表面性状に拘わらず、それに付される光学コードの読取に最適な撮影条件を的確に取得することが可能となる。つまり、ワークの表面性状が異なれば、それぞれの表面性状に対応する画像が実際に取得されるから、こうして得られた画像に基づいて次回のカメラ撮影におけるシャッタスピードを決定する処理を繰り返せば、そのときのワークの表面性状に合致したシャッタスピードが自動的に決定されることとなる。
【0010】
ここで、画素レベルの所定特徴としては、画素レベルの最大値を採用することができる。すなわち、取得された画像内の画素レベルの最大値を基準値(例えば当該画像のダイナミックレンジ等)と比較することによって、画質の良否を判定し、その判定結果に応じてシャッタスピードを高速化又は低速化することによって、次回のカメラ撮影におけるシャッタスピードが決定される。また、画素レベルの所定特徴としては、画像のコード領域内における白レベルと黒レベルのそれぞれの絶対値、及び、白レベルと黒レベルとの差を採用することもできる。
【0011】
このような構成を採用すれば、実際の読取対象である画像のコード領域内における画質を判断の基準として、次回のカメラ撮影におけるシャッタスピードを決定するため、最適なシャッタスピードをより的確に取得することが可能となる。このとき、カメラ撮影におけるシャッタスピードの採りうる値を予め等比級数的に段階設定するようにしてもよい。このような構成を採用すれば、予め決められた量だけステップ的にシャッタスピードを変化させることができるため、デジタル制御が容易となる。
【0012】
好ましい実施の形態においては、光学コード読取装置には、複数の照明方向を択一的に選択可能な照明器が含まれており、照明器の照明方向を切り替えつつ複数回の撮影を行って複数枚の画像を取得するステップと、取得された複数枚の画像のそれぞれの画素レベルの所定特徴、又は取得された複数枚の画像同士を適宜加算してなる画像の画素レベルの所定特徴を検出するステップと、検出された画素レベルの所定特徴に基づいて最適照明方向又は照明方向組合せを決定するステップと、を有するものであってもよい。
【0013】
このような構成によれば、複数の照明方向の1つを択一的に選択しつつ、各々の選択状態において撮影により得られた複数枚の画像のそれぞれの画素レベルの所定特徴、又は取得された複数枚の画像同士を適宜加算してなる画像の画素レベルの所定特徴に基づいて最適照明方向又は照明方向組み合わせが決定されるため、ワークの表面性状あるいはワークの表面傾きなどに拘わらず、最適な照明方向を的確に取得することができる。ここで、複数の照明方向を択一的に選択可能な照明器としては、それぞれ照明方向の異なる複数の照明要素を有する照明器を採用することができる。ここで照明要素のそれぞれは、1個の光源又は複数の光源により構成することができる。
【0014】
ここで、『取得された複数枚の画像同士を適宜加算してなる画像』の意味するところは、取得された画像の濃度に規則的なグラデーションが存在するような場合、それと逆方向のグラデーション、又はそれと相補的な関係にあるグラデーションを有する画像を探し出して、両者を加算することにより、グラデーションが相互に打ち消された画素レベルの均一な画像が得られる場合を考慮したものである。このように複数の画像を加算ないし組み合わせることで画素レベルの均一化が為し得る場合には、それの基礎とされた各画像の照明方向組み合わせが最適な照明態様となることを意味している。
【0015】
ここで、画素レベルの所定特徴としては、先のシャッタスピードの場合と同様にして、画素レベルの最大値を採用することができる。また、画素レベルの所定特徴としては、先のシャッタスピードの場合と同様に、画像のコード領域内における白レベルと黒レベルのそれぞれの絶対値、及び、白レベルと黒レベルとの差を採用することもできる。
【0016】
好ましい実施の形態においては、本発明方法は、当該光学コード読取装置の初期設定時に実行される、ようにしてもよい。このような構成を採用すれば、装置の稼働に先立ち、当該装置の稼働時における撮影条件を適切に設定することができる。
【0017】
好ましい実施の形態においては、本発明方法は、当該光学コード読取装置のリトライ時に実行される、ようにしてもよい。このような構成によれば、装置の稼働中に、ワークの表面性状が変化したり、照明態様が変化したり、その他の外乱等によって、取得される画像の画質が低下したような場合には、リトライ操作を行うことによって、最適撮影条件に再設定することができる。
【0018】
このとき、決定された最適シャッタスピードの他に、それと規定の関係をなす高速シャッタスピードと低速シャッタスピードとを予備画像取得のために自動的に決定する、ようにしてもよい。このような構成によれば、以後読取対象となる光学コードを3種類のシャッタスピードで撮影することによって、当初最適とされた撮影条件に狂いが生じた場合には、予備に取得された高速シャッタスピードと低速シャッタスピードとに対応する画像に切り替えて、再度リトライを行うことなく、確実な読取りを行うことができる。
【0019】
尚、先の画像同士を加算して画素レベルを均一化する処理において、画像同士の加算により得られた画像の画素レベルが画素レベルのダイナミックレンジを越える場合には、設定したシャッタスピードの等比級数の比により割り算を行い、シャッタスピードを決定し直す、ようにしてもよい。さらに、このとき決定し直されたシャッタスピードに応じて、照明器の光量を適宜に調整する、ようにしてもよい。
【0020】
本発明方法は、使用者がビデオモニタを見ながら対象物の位置合わせを行うために、当該光学コード読取装置の初期設定を行う際に実行することもできる。その際には、取得された画素レベルの最大値がダイナミックレンジを示すときには、次の画像取得時のシャッタスピードを一段階高速化する一方、取得された画像の画素レベル最大値が所定値以下のときには、次の画像取得時のシャッタスピードを一段階低速化すればよい。
【0021】
【発明の実施の形態】
以下に、この発明の好適な実施の一形態を添付図面を参照しながら詳細に説明する。尚、以下の実施の形態は、本発明の一部を示すものに過ぎず、本発明の技術的範囲は明細書の特許請求の範囲の記載によってのみ規定されることは言うまでもないことである。
【0022】
本発明装置のシステム構成を示す外観図が図1に示されている。同図において、1はコントローラ、2はCCD等のイメージセンサが内蔵されたカメラ、3はカメラ2の先端部に取り付けられた照明器、4はワーク、5はワーク上に付された2次元コード、6はワーク4がカメラ2の視野へ到達したことを検出してトリガ入力を発生するトリガセンサ、7はヒューマンマシンインタフェースを構成するハンディコンソール、8はヒューマンマシンインタフェースを構成するビデオモニタ、9aは本発明装置を含む生産ラインを制御するプログラマブルコントローラ、9bはプログラマブルコントローラ9aに対して各種の指示を与えるパソコンである。
【0023】
コントローラ1に対して、プログラマブルコントローラ9a並びにパソコン9bは上位システム9として機能する。カメラ2はワーク4が搬送されるライン上に固定されており、この例では、ワーク4を真上から撮影する。照明器3内には、後に図8を参照して説明するように、複数の照明要素が設けられている。これらの照明要素はそれぞれ固有の照明方向を有する。又、各照明要素は1個又は複数の光源により構成されている。
【0024】
コントローラの内部構成を中心として示すブロック図が図2に示されている。尚、同図において図1の構成要素と同一構成部分については同符号を付して説明は省略する。
【0025】
コントローラ1内には、CPU101と、メモリ102と、画像メモリ103と、画像入出力制御部104と、コンソールインタフェース105と、カメラインタフェース106と、モニタインタフェース107と、照明インタフェース108と、トリガセンサインタフェース109と、画像処理部110と、CPUバス111と、内部バス112と、通信インタフェース113とが含まれている。
【0026】
CPU101はマイクロプロセッサを主体として構成されており、メモリ102に格納されたシステムプログラムを実行することによって、コントローラ1の全体を統括制御する。すなわち、コンソール7の操作で生成されたデータは、コンソールインタフェース105、画像入出力制御部104、CPUバス111を経由してCPU101に取り込まれる。同様にして、トリガセンサ6からの信号は、トリガセンサインタフェース109、画像入出力制御部104、CPUバス111を経由してCPU101に取り込まれる。ビデオモニタ8に対するデータは、CPU101、CPUバス111、画像入出力制御部104、モニタインタフェース107を経由してビデオモニタ8に出力される。カメラ2の撮影動作により生成された画像データは、カメラインタフェース106、画像入出力制御部104、内部バス112、画像処理部110を経由して画像メモリ103に格納される。照明器3の内部に含まれた各照明要素に対する点灯/消灯信号は、CPU101、CPUバス111、画像入出力制御部104、照明インタフェース108、カメラ2を経由して照明器3へと出力される。これにより、照明器3を構成する複数の照明要素のうち選択された1つ又は複数が点灯されて、所望の照明態様が実現される。画像処理部110は、CPU101からの指令を受けて、画像メモリ103から指定された画像を読み出し、これを画像処理して2次元コードを抽出し、この2次元コードを所定の規則に従ってデコードする。
【0027】
上位システム9とCPU101とは、通信インタフェース113を介してデータのやり取りを行う。これにより、上位システム9からのコマンドが、コントローラ1へと送られ、これをCPU101が解読することによって、上位システム9からの各種の指令がコントローラ1側において実行される。
【0028】
コントローラから照明器へ至る信号経路の説明図が図3に示されている。同図(a)に示されるように、コントローラ1とカメラ2とはケーブルC1で結ばれ、またカメラ2と照明器3とはケーブルC2で結ばれている。同図(b)に示されるように、カメラ2内にはシリアル/パラレル変換器201が内蔵されている。シリアル/パラレル変換器201は、信号線202を介してクロック信号を受け付け、また信号線203を介して制御信号を受け付ける。一方、シリアル/パラレル変換器201は、信号線204−1〜204−nを介して、照明器を構成する各照明要素(照明群)へとオンオフ信号を送り出す。このようにコントローラ1からシリアルに送られてくる制御信号を、シリアル/パラレル変換器201がパラレル信号に変換することで、照明器3を構成する各照明要素が選択的に点灯/消灯される。
【0029】
以上述べた本発明装置の機能構成を概略的に示すブロック図が図4に示されている。同図から明らかなように、トリガ入力3aが到来すると、撮像制御機能F1と照明制御機能F2とが作動する。すると、照明制御機能F2の作動により、それぞれ固有の照明方向を有するn個の照明要素301−1〜301−nの1つ又は複数が選択的に駆動され、対象物4に対して1方向から又は複数方向から照明が行われる。対象物4からの反射光は、レンズ205を経由して撮像素子206へと結像される。すると、撮像制御機能F1の作動により、撮像素子206からアナログ画像が出力される。このアナログ画像は、A/D変換機能F3によりデジタル画像に変換されて、画像保存機能F4の作動によりメモリに保存される。こうしてメモリに保存された画像は画像処理機能F5の作動により適宜画像処理が施された後、デコード処理機能F6によって一定の規則に従ってデコードが試みられ、こうして得られたデコード結果はI/O処理機能F7並びにデータ出力機能F8を経由して上位システム9へと送られる。以上が、この実施形態における2次元コード読取装置の基本的な動作である。
【0030】
次に、ティーチング前のシャッタスピード仮設定処理を示すフローチャートが図5に示されている。このフローチャートに従って、設定前のシャッタスピードの最適化について説明する。光学コード(文字も含む)を読み取る装置では、通常の処理時の高速化/安定化を図るため、対象となる光学コードに合わせて、各種条件を最適化することを前提としている。その際、まず必要なのは、光学コードが付された対象物(ワーク)を撮像して、画像モニタに表示して、対象物が視野内に存在するか、フォーカスは合っているか、明るさは問題ないか、撮像状態にムラなどがないかなどをチェックすることである。その時、シャッタスピードが固定ならば、暗すぎたり明るすぎたりすると、いちいち変更しなければならない。そこで、この実施形態にあっては、装置が条件設定のモードへ移行したならば、連続的に画像取得を行い、画像取得と次の画像取得との間に、画像内の各画素のレベル(A/D変換後の値など)をチェックして、その最大値がダイナミックレンジの最大値を示していればシャッタスピードを1段速くし、逆にその最大値がダイナミックレンジの半分以下であればシャッタスピードを1段遅くするように、常にシャッタスピードを変化させる。
【0031】
この実施形態にあっては、シャッタスピードは、1/125sec、1/250sec、1/500sec、1/1000sec、…と、二倍ずつ変化するように設定されており、条件設定のモードに移行した直後のシャッタスピードは最も遅くしておき、画素レベルの最大値が撮像のダイナミックレンジを越えないレベルになるまでシャッタスピードを変化させる。シャッタスピードと撮像される画素レベルは光量が一定であれば比例するので、上記のような条件でシャッタスピードを変化させる。シャッタスピードを1/100sec、1/150sec、1/225sec、…と1.5倍ずつ変化させるようにすると、最大値の下限をダイナミックレンジの1/1.5≒67%とすことができる。このように、シャッタスピードの設定間隔に応じて最大値の下限レベルが決定される。
【0032】
画素レベルの最大値の取得は、画像の全画素にわたって行ってもよいが、ユーザがリアルタイム画像を見ているような感覚を持つには、この処理に割ける時間は10msec程度しかないので、全画素ではなく、画素をスキップして最大値を取得してもよい。この状態で連続的に撮像すれば、ほぼリアルタイム画像として得ることが可能であり、ユーザが違和感を持つことはない。
【0033】
すなわち、図5のフローチャートにおいて、処理が開始されると、まずモード変更入力を待機する状態となる(ステップ501)。この状態においてユーザによるモード変更入力が到来すると、設定モードへの移行が行われる(ステップ502)。
【0034】
設定モードに移行されると、シャッタスピードは最も遅い状態に設定され(ステップ503)、その状態で撮像(画像取り込み)が行われ(ステップ504)、続いて当該取り込まれた画像内における最大画素レベルの検出が行われる(ステップ505)。
【0035】
ここで、画素レベルがダイナミックレンジの上限である『255』と判定されれば(ステップ506YES)、そのとき画像は飽和しているため、シャッタスピードは1段階高速化された後(ステップ508)、再度画像の取り込み並びに最大画素レベルの検出が行われる(ステップ505)。以後、最大画素レベルが『255』よりも小さな値となるまで、シャッタスピードの高速化が繰り返される(ステップ508)。
【0036】
これに対して、最大画素レベルが『255』よりも小さな値となると(ステップ506NO)、最大画素レベルが飽和画素レベル『255』の半分の値『127』よりも大きいことを条件として(ステップ507NO)、シャッタスピードの変化は停止され(ステップ510)、以後シャッタスピードはその状態に維持される。この状態において、ユーザよりトリガ入力が到来すると(ステップ511YES)、シャッタスピードの仮設定処理を終了してティーチングが開始される。
【0037】
一方、画像の取り込み(ステップ504)並びに最大画素レベルの検出(ステップ505)に続いて、最大画素レベルが飽和画素レベルの半分の値『127』以下であると判定されると(ステップ507YES)、シャッタスピードは1段階低速化され(ステップ509)、以後最大画素レベルが『127』以上となるまで、シャッタスピードの低速化処理が繰り返される(ステップ509)。
【0038】
この状態において、最大画素レベルが飽和画素レベルの半分の値『127』を越えると(ステップ507NO)、先ほどと同様にしてシャッタスピードは以後その状態に維持され(ステップ510)、ユーザによるトリガ入力の到来を待って(ステップ511YES)、ティーチングが開始される。
【0039】
このように、このティーチング前のシャッタスピード仮設定処理によれば、取得される画像の最大画素レベルの値は、飽和レベル『255』と2分の1レベル『127』との間に収まるように制御される。そのため、後述するティーチング開始に際し、極端に飽和した画像や、極端に暗い画像が取得される虞を回避することができる。尚、上記の処理において、画素レベルが『255』となる画素がある一定以上存在するという条件をシャッタスピードを1段階速くする条件としても良い。
【0040】
次に、照明に関する最適化処理(I)を示すフローチャート(その1)が図6に、また照明に関する最適化処理(I)を示すフローチャート(その2)が図7に示されている。以下、これらのフローチャートを参照して、照明の最適化について説明する。
【0041】
金属粗面、金属鏡面、その他様々な表面に2次元コードはマーキングされるので、図8に示されるように、予め複数の照明要素を用意しておき、それぞれの照明の方向、波長を様々に選択できるようにしておくと、対応範囲が広がる。
【0042】
すなわち、図8(a)は方向の選択可能な配置例であって、それぞれ照明方向の異なる5個の照明要素L11〜L15を有する。各照明要素L11〜L15は、1個の光源又は複数の光源を含んでおり、これら5つの照明要素L11〜L15の色は同一である。従って、それら照明要素L11〜L15のいずれか1つ又は選択された複数を点灯することによって、対象物である2次元コードに対して様々な方向から光を当てることができる。
【0043】
図8(b)は波長選択可能例(その1)を示すもので、この例にあっては、照明方向の異なる3個の照明要素L21〜L23を備えている。照明要素L21は青色、L22は赤色、L23は緑色の光を照射するようになっている。そのため、対象物に対して3種類の方向から異なる色の光を照らすことができる。
【0044】
図8(c)は波長選択可能例(その2)を示すものであり、この例にあっては、3個の照明要素L31〜L33をダイクロイックミラーM1,M2を介して同軸化することで、同一の方向から3種類の色の光を選択的に照らすことを可能としている。図8(c)の構成を図8(a)の構成と組み合わせれば、5つの方向から様々な色の光を対象物に対して照射することができる。
【0045】
ところで、どの照明要素を点灯するかの選択をユーザの判断に委ねるとすれば、容易なことではない。又、用意されている照明要素が多数存在し、さらに複数の照明要素を用いなければならない場合、いくつもの組み合わせを試さなければならず、ユーザがその作業を行うにしても、読取装置自身がその組み合わせを1つずつ検証するにしても、膨大な時間と内部メモリが必要となる。
【0046】
そこで、この実施形態にあっては、以下のような手順で画像を取得し、最適な照明要素を選択する。すなわち、全ての照明要素のうち、どれか任意の1つの照明要素を選択して、画像を取得し、画像メモリ103に保存し、次に別の任意の1つの照明要素を選択して、画像を取得し、画像メモリ103に保存し、この処理を全ての照明要素1つ1つについて実行する。画像を取得する際には、照明要素を選択してから、先に図5を参照して説明した手順にてシャッタスピードを仮決定して画像を取得し、そのシャッタスピードを記憶しておく。
【0047】
最適な1つの照明要素だけを選択する場合、それぞれの画像についてデコード処理を行い、デコードが可能であった画像のうちで、最も対象物の白黒の差が大きな画像を得た照明要素及びシャッタスピードを選択する。ここで、白黒の差とは、例えば図9に示されるように、画像内の2次元コード領域において黒い部分Bのレベルと白い部分Wのレベルとの画素値レベルの差を意味し、それぞれの部分にムラがある場合には、その平均値の差、あるいは、白い部分Wの最小値と黒い部分Bの最小値との差を用いる。尚、図9(a)の例は、白い領域Wの画素値が画像の地の色とほぼ同一であり、黒い部分Bの画素値が地の色と顕著に暗くなっている。又、図9(b)の例にあっては、黒い部分Bの画素値が地の色とほぼ同一であり、白い部分Wの画素値が地の色よりも顕著に明るくなっている。以上の流れが、図6及び図7のフローチャートに示されている。
【0048】
すなわち、図6において処理が開始されると、モード変更入力待機状態となる(ステップ601)。この状態において、ユーザによりモード変更入力が到来すると、設定モードへの移行が行われる(ステップ602)。
【0049】
設定モードが開始されると、照明要素(n=1)だけが点灯され(ステップ603)、おこの状態において、先に図5を参照して説明した手順によって、シャッタスピードの仮設定が行われる(ステップ604)。その後、ユーザによるトリガ入力の到来を待って、ティーチングが開始される(ステップ605)。
【0050】
ティーチングが開始されると、照明要素を示すポインタnの値を1〜Nまで1つずつ増加させながら、シャッタスピードの仮設定(ステップ607)及び撮像と画像格納(ステップ608)が繰り返し実行される。
【0051】
すなわち、例えば図8(a)の例であれば、照明要素L11だけを点灯して、その状態でシャッタスピードの仮設定(ステップ607)及び撮像と画像の格納を行い(ステップ608)、続いて照明要素L12だけを点灯して、同様にシャッタスピード仮設定(ステップ607)及び撮像と画像格納(ステップ608)を行い、以後同様にして、照明要素L15まで以上の動作が繰り返される。
【0052】
こうして、ポインタnの値がNに達すると(ステップ609YES)、撮像と画像格納(ステップ608)は終了して、図7のフローチャートへ進み、今度は、格納された画像の読み出し(ステップ701)、デコード処理の実行(ステップ702)、コントラストの算出(ステップ703)、処理結果の記憶(ステップ704)が全ての取得した画像について繰り返し実行される(ステップ706)。
【0053】
こうしてポインタnの値がNまで達し(ステップ705)、メモリに格納された全ての画像に関して、デコード処理実行(ステップ702)、コントラスト算出(ステップ703)、処理結果記憶(ステップ704)が終了すると、以後ステップ707に進んで、デコードOK及びコントラスト最大画像の照明及びシャッタスピードの選択処理が行われる。
【0054】
すなわち、処理結果記憶(ステップ704)においては、読み出された画像のそれぞれに関して、デコードの可否並びにコントラスト(白レベルと黒レベルの差)が記憶されているため、それらの記憶結果を参照することで、ステップ707においては、デコードが可能でありかつコントラストが最大である画像に対応した照明方向及びシャッタスピードがそれぞれ最適なものとして選択されるわけである。このようにして照明及びシャッタスピードの選択が終了すると、このフローチャートは完了する(ステップ708)。
【0055】
このように、図6及び図7に示される処理によれば、ユーザからの設定モードへの変更入力を待って、設定モードへ移行した後、照明器を構成する照明要素を択一的に1つずつ選択して、各方向別にシャッタスピード並びに画像を撮像並びにメモリへの格納を行い、しかる後、それら格納された画像を1つずつ読み出して、デコード処理を試みると共に、コントラストの算出を行い、それらの結果を記憶させた後、こうして得られた処理結果に基づいて、デコードOK及びコントラスト最大画像の照明方向及びシャッタスピードを選択するのである。これにより、どの方向からの照明が最適であってかつどのようなシャッタスピードが適切であるかが認識されるのである。
【0056】
尚、図6及び図7のフローチャートにおいて、2つ目以降の照明要素によるシャッタスピードの設定は、1つ前に選択したスピードを初期値とすると、比較的早く決定を行うことができる。
【0057】
ところで、複数の画像について読取りが可能であった場合に、それぞれの画像の背景あるいは対象物内に読取りに影響を及ぼす可能性のある明るさのばらつきがあれば、それぞれの画像同士を加算して、そのばらつきを抑えられるかを検証し、複数の照明要素を組み合わせて用いることも可能である。ここで、『影響を及ぼす可能性がある』とは、読取に必要な白黒差を確保できない場合が生じることを意味する。具体的には、画像内の明るさのばらつきはデコードしたそれぞれの画像に対して、図11(d)に示されるように、4本の走査線(1)〜(4)に沿って、画素レベルの走査を行い、そのレベルと勾配を確認し、影響を及ぼす可能性があれば、その他の読取が可能であった画像のスキャン結果と比較し、その勾配を緩和できる組み合わせをそれぞれのライン同士の加算にて比較することで探し出す。さらに、その組み合わせの画像同士の平均を演算した上で、演算結果に対してデコードを実施して、その照明選択の確からしさを確認しても良い。もちろん、走査線の数は4本でなくても良い。以上の流れが図10のフローチャートに示されている。
【0058】
すなわち、同図において、処理が開始されると、既に格納された複数の画像の1つが読み出され(ステップ1001)、デコードが試みられる(ステップ1002)。しかる後、コントラスト及びグラデーションの算出が行われ(ステップ1003)、デコードの可否、コントラスト、グラデーションがそれぞれ処理結果として記憶される(ステップ1004)。以上の処理(ステップ1002〜1004)が、順次全ての画像に対して繰り返され(ステップ1006)、全ての画像に関して処理が完了するのを待って(ステップ1005YES)、次の処理への移行が行われる。
【0059】
次の処理においては、まず、デコードOK及び最大コントラスト画像の選択が行われる(ステップ1007)。しかる後、先に算出されたグラデーションに関して、その度合いが基準値を満足するかどうかの判定が行われる(ステップ1008)。ここで、デコードOK及び最大コントラスト画像において、グラデーションが適切範囲に入っていれば(ステップ1008YES)、照明選択は終了する。これに対して、グラデーションに『影響を及ぼす可能性がある』と判定されると(ステップ1008NO)、次いでデコードOKの画像のグラデーションライン同士の加算が行われ(ステップ1009)、それらの加算によって画像の平準化が達成されるかどうかの判定が繰り返される(ステップ1010)。ここで、2以上の画像同士のグラデーションライン加算によって、画像が平準化されたと判定されれば(ステップ1010YES)、シャッタスピードの補正処理(ステップ1011)を行った後、照明選択が終了する(ステップ1012)。このとき、シャッタスピードの補正に加えて(ステップ1013)、照明光量の補正も行ってもよい(ステップ1014)。
【0060】
各画素平均化による読取対象画像生成処理(I)の説明図(その1)が図11に示されている。この例にあっては、同図(d)に示されるように、4本の走査線(1)〜(4)に沿って画素値の走査が行われる。又、同図(a−1)に示される第1画像は、上下方向のグラデーションを有し、上部が明るく下部が暗い。同図(b−1)に示される第2画像にあっては、同様な上下方向へのグラデーションを有するが、上部が暗く下部が明るい。このことが、同図(a−2)の位置/画素レベルグラフと、同図(b−2)に示される位置/画素レベルグラフでも表されている。一方、同図(c−1)に示される読取対象画像にあっては、第1画像と第2画像とを加算して平均化した結果、画像の平準化が達成されており、このことが同図(c−2)に示される位置/画素レベルグラフによっても表されている。このように、第1画像と第2画像とを加算して平均化することによって、画像の平準化が達成した読取対象画像を得ることができる。
【0061】
各画素平均化による読取対象画像生成処理(I)の説明図(その2)が図12に示されている。この例にあっては、第1画像は左右方向のグラデーションを有し、左側が暗く右側が明るい。同図(b)に示される第2画像にあっては、同様な左右方向のグラデーションを有するものの、左側が明るく右側が暗い。そのため、同図(c)に示される読取対象画像にあっては、第1画像と第2画像とを加算して平均化した結果、画像の平準化が達成されている。
【0062】
一方、背景ではなく、対象物内に明るさのばらつきがある場合には、2次元コードの場合、デコード後の各セルの画素レベル同士を加算し、勾配やレベルが平準化される組み合わせを見つける。照明を複数選択する場合、それぞれの画像取得時のシャッタスピードが異なれば、その中で最も遅いシャッタスピードを選択し、シャッタスピードの比率分だけ照明光量を小さくすることで、最適な照明設定を実現することができる。
【0063】
照明光量を変更できる回路例が図15に示されている。この回路は、1個の発光ダイオードDと、3個のトランジスタTR1〜TR3と、3個の抵抗R1〜R3とで構成される。抵抗値に関しては、R1=R2、R3=R1/2と設定されている。そのため、トランジスタTR1のみをオンとしたときに最も発光パワーが小さく、トランジスタTR1とTR2とをオンしたときに発光パワーはトランジスタTR1のみをオンしたときの2倍となり、全てのトランジスタをオンすると発光パワーは4倍となる。このような回路を、各照明要素を構成する発光ダイオードに適用し、トランジスタTR1〜TR3を適宜選択的にオンオフさせることによって、照明光量を変更して、補正処理を行うことができる。
【0064】
斜め方向に明るさのばらつきがある場合の読取対象画像生成処理が図13に示されている。この例にあっても、4本の走査線(1)〜(4)が使用される。同図(a−1)に示される第1画像にあっては、左上から右下に向かう対角線に沿ったグラデーションを有し、左上が明るく右下が暗い。又、画像の中心部分には、2次元コードに起因する明るさのばらつきが存在する。このことが、同図(a−2)のグラフにも示されている。同図(b−1)に示される第2画像にあっては、左上から右下へ向かう対角線に沿ったグラデーションを有するものの、左上が暗く右下が明るい。又、画像の中心部には、2次元コードに起因する明るさのばらつきが存在する。このことが、同図(b−2)のグラフにも示されている。同図(c−1)に示される読取対象画像にあっては、第1画像と第2画像とを加算して平均化した結果、画素の平準化が達成されている。このことが同図(c−2)のグラフにも示されている。なお、2次元コード等が存在すると、走査線に沿った画素操作は演算が複雑化するため、その領域を無視して背景の演算を行えば演算の複雑化を回避することができる。
【0065】
読取対象処理を(加算÷3)と(加算÷2)とで比較して示す説明図が図14に示されている。同図(a)〜(c)に示される画像は水平方向のグラデーションを有する。もっとも、同図(a)の画像は、左側2/3の領域が明るく、右側1/3の領域が暗い。同図(b)に示される画像は、左側1/3の部分が暗く、右側2/3の部分が明るい。同図(c)に示される画像は、左右1/3の領域が暗く、中央1/3の領域が明るい。同図(d)に示される画像は、同図(a)〜(c)に示される3枚の画像を加算して3で除したものであり、その結果画像の平準化が達成されている。
【0066】
一方、同図(e)及び(f)に示される2枚の画像は、いずれも右上から左下に向かう対角線に沿ったグラデーションを有する。もっとも、同図(e)に示される画像は、左上並びに右下1/3の領域が明るく、中央1/3の領域が暗い。同図(f)の画像は、左上並びに右下1/3の領域が暗く、中央が明るい。同図(g)に示される画像は、同図(e)及び(f)に示される2枚の画像を加算しこれを2で除した結果、平準化が達成されている。なお、画像の加算による平準化は、背景のグラデーションを基に演算をする他に、2次元コードの存在する領域のみのグラデーションを基に演算しても良い。この場合、白または黒レベルのみのグラデーションを基に演算をすればよい。
【0067】
次に、図16〜図18を参照しながら、シャッタスピードの最適化について説明する。照明に外部照明を用いる場合、通常はシャッタスピードを固定にして照明光量を調整するか、照明光量を一定にしてシャッタスピードを調整する。しかし、仮に対象物の読取りが可能でも、その照明光量あるいはシャッタスピードの組み合わせは最適かどうかをユーザが判断するのは困難である。そこで、この実施形態にあっては、照明光量を固定して、シャッタスピードを自動設定できるようにすることで、調整工数の削減と最適化を図るようにしている。
【0068】
すなわち、図17のフローチャートにおいて処理が開始されると、まず、先に図5を参照して説明した処理に従って、シャッタスピード仮設定を行った後(ステップ1701)、そのシャッタスピードとそれよりも遅い複数のシャッタスピードでそれぞれ画像を取得する。
【0069】
次に取得した画像のうち、最も早いシャッタスピードで取得した画像にてデコード処理を行い、対象物の白レベルと黒レベル及びその差を取得する。デコードできなければ次に速いシャッタスピードで取得した画像にてデコード処理を行い、同じく対象物の白レベルと黒レベル及びその差を取得し、デコードができなければ、次の取得画像にて同様の処理を行い、全ての取得画像でデコードできなければデコードできない旨を表示あるいは出力して終了する。
【0070】
すなわち、ティーチングが開始された後(ステップ1702)、変数nの値を0から(ステップ1703)1つずつ歩進させながら(ステップ1707)、シャッタスピードn段遅く設定(ステップ1704)及び撮像と画像格納(ステップ1705)を繰り返し、変数nの値がNに達するのを待って(ステップ1706YES)、デコード処理への移行が行われる。
【0071】
デコード処理への移行が行われると、各シャッタスピードに対応してデコード対象メモリnの取得(ステップ1708)及びデコード処理実行(ステップ1709)が行われ、何れかの画像に関しデコードOKと判定されるのを待って(ステップ1710YES)、残りの画像に関するデコード処理を行うことなく、次の処理への移行が行われる。一方、全ての画像に関しデコード処理を試みた結果、デコードOKが判定されないと(ステップ1711YES)、照明選択は失敗として終了する(ステップ1713)。
【0072】
続いて、図18のフローチャートに移って、白レベルと黒レベル及びその差の取得が行われ(ステップ1801)、それらの結果が記憶される(ステップ1802)。しかる後、図16に示されるように、白レベルと黒レベル及びその差の値に応じて場合分けが行われる。
【0073】
ここでは、シャッタスピードの設定は、1/125sec、1/250sec、1/500sec、…と倍数の関係に設定されている。この例では、場合を5通りに分けているが、ケース1は白レベルがダイナミックレンジの3/4以上でデコードができている場合、ケース2は白レベルが1/2〜3/4でデコードができていてかつ黒レベルが1/4〜1/2の間の場合、ケース3は白レベルが1/2〜3/4の間でデコードできかつ黒レベルが1/4以下の場合、ケース4は白レベルが1/8〜1/4でデコードできている場合、ケース5は白レベルが1/8以下でデコードできている場合である。
【0074】
ケース1の場合はシャッタスピードを1段遅くすると、白レベルがハレーションを起こし、黒レベルは現状の2倍の値となるので、結果として白黒差が小さくなるためシャッタスピードを遅くすることはできない。逆に、シャッタスピードを1段速くすると白レベルも黒レベルも値が現状の1/2となるので、白黒差が小さくなるので速くしないほうが良い。
【0075】
ケース2の場合は、シャッタスピードを1段遅くすると白レベルがハレーションを生じるので結果としてさほど白黒差が拡大しない場合が多いのでシャッタスピードはそのままが最適である。
【0076】
ケース3では逆にシャッタスピードを遅くすることで白黒差を少し拡大できることが多いのでシャッタスピードを1段遅くすると最適である。
【0077】
ケース4ではシャッタスピードを2段階遅くしても、白レベルがハレーションを起こさない上、白黒差が4倍となるのでシャッタスピードを2段階遅くするのが最適である。ケース5ではさらにシャッタスピードを遅くしても白レベルがハレーションを起こさない上、白黒差も8倍となる見込みがあるので、シャッタスピードは3段階遅くするのが最適である。
【0078】
撮像素子の性能やデコードアルゴリズムの状況によりケース5の中でも白レベルがダイナミックレンジの1/16以下でデコードできている場合が、仮にあれば、シャッタスピードは4段遅くする設定も追加する。
【0079】
ケース2以外では十分な白黒差が得られているので、デコードが不安定になることは考えられないが、ケース2の場合は、白黒差があまりないことが想定されるため、白黒の差が余裕をもってデコードできるレベルかどうかを判定する処理を実施して、ある一定以上の差がなければ画像モニタに表示したり、I/Oから何らかの信号を出力したりすることで、ユーザに、例えば照明を再設定してもらうとか、マーキング状態を見直してもらうとかなどの改善をしてもらえる。以上の流れの例を図18のフローチャートに示す。ここで、『設定モード』とは、シャッタスピードだけでなく、対象物を短時間で読み取るため、あるいは安定的に読み取るために装置内部に必要な情報を取り込んで保存するモードであり、シャッタスピードの設定はその一部である。
【0080】
すなわち、図18のフローチャートにおいて、処理が開始されると、まず白レベル、黒レベル、白黒差の取得(ステップ1801)及び処理結果の記憶(ステップ1802)が行われた後、白レベル並びに黒レベルが図16に示されるどの領域に存在するかの判定が行われる(ステップ1803,1804,1805,1806,1807,1809)。そして、それらの判定結果に応じて、シャッタスピードの制御が適宜に行われ(ステップ1808,1810,1811,1812,1813)、これによりシャッタスピードの適正化が達成される。
【0081】
次に、シャッタスピードと照明の同時最適化について説明する。照明を最適化した後、シャッタスピードを図17及び図18のフローチャートに従って最適化すると、照明とシャッタスピードの最適化を同時に行うことができる。
【0082】
シャッタスピード最適化の際に使用する画像は照明要素を1つだけ用いる場合は照明要素を決定したそのままの画像を用いて、そのときのシャッタスピードに対してどれだけシャッタスピードを変化させるかを判別する。照明要素を複数選択した場合は、加算(平均化)した画像を用いて、基準となるシャッタスピードは設定し直したものを用いる。
【0083】
次に、読取時の最適化について説明する。以上述べた実施の形態は、読取装置の初期設定時の処理についてであるが、通常稼働時にも適用できる。すなわち、シャッタスピードの条件を初期設定時に最適化しても、稼働時には様々な対象物が現れる可能性があり、初期設定時と異なる条件が必要となる場合も考えられるので、最適化したシャッタスピードに対して1段速いシャッタスピードと1段遅いシャッタスピードでそれぞれ、トリガが入力された直後に合計3枚の画像を取り込み、まず、最適化されたシャッタスピードで取り込まれた画像についてデコード処理を施し、その段階で読みとれない場合にデコード処理の結果に応じて速いシャッタスピードの画像か遅いシャッタスピードの画像かを選んでデコード処理をすることで、読み取る対象物の自由度を拡げることができる。又、予め複数の画像を取得しなくても、1枚の取得画像で読み取れなかった場合に、シャッタスピードの条件を変更して読取をリトライすることで、対象物が静止していれば上記と同じ効果が得られる。
【0084】
さらに、照明についても、設定時にいくつかの照明要素で読取が可能であった場合は、それぞれを記憶しておき、トリガが入力されたときに、それぞれの照明要素で、それぞれ撮像しておき、設定時に最も状態が良かった画像を用いてデコードを行い、読取ができなければ別の照明で撮像した画像にてデコードを行うようにすることで、読取対象物の自由度を拡げることができる。
【0085】
【発明の効果】
以上の説明で明らかなように、本発明によれば、ワークの表面性状に拘わらず、それに付される光学コードの読取に最適な撮影条件を的確に取得することが可能な光学コード読取装置における撮影条件決定方法を提供することができる。
【図面の簡単な説明】
【図1】本発明装置のシステム構成を示す外観図である。
【図2】コントローラの内部構成を中心として示すブロック図である。
【図3】コントローラから照明器へ至る信号経路の説明図である。
【図4】本発明装置の機能構成を概略的に示すブロック図である。
【図5】ティーチング前のシャッタスピード仮設定処理を示すフローチャートである。
【図6】照明に関する最適化処理(I)を示すフローチャート(その1)である。
【図7】照明に関する最適化処理(I)を示すフローチャート(その2)である。
【図8】照明器内における照明要素の配置例の説明図である。
【図9】2次元コード内の白い部分と黒い部分の説明図である。
【図10】照明に関する最適化処理(II)を示すフローチャートである。
【図11】各画素平均化による読取対象画像生成処理(I)の説明図(その1)である。
【図12】各画素平均化による読取対象画像生成処理(I)の説明図(その2)である。
【図13】各画素加算による読取対象画像生成処理の説明図である。
【図14】読取対象処理を(加算÷3)と(加算÷2)とで比較して示す説明図である。
【図15】照明光量を変更できる回路例を示す図である。
【図16】白レベルと黒レベル及びその差に応じた場合分けの説明図である。
【図17】シャッタスピードと照明との双方同時最適化処理を示すフローチャート(その1)である。
【図18】シャッタスピードと照明との双方同時最適化処理を示すフローチャート(その2)である。
【符号の説明】
1 コントローラ
2 カメラ
3 照明器
3a トリガ入力
4 ワーク
5 2次元コード
6 トリガセンサ
7 ハンディコンソール
8 ビデオモニタ
9a プログラマブルコントローラ
9b パソコン
101 CPU
102 メモリ
103 画像メモリ
104 画像入出力制御部
105 コンソールインタフェース
106 カメラインタフェース
107 モニタインタフェース
108 照明インタフェース
109 トリガセンサ
110 画像処理部
111 CPUバス
112 内部バス
201 シリアル/パラレル変換器
202,203 信号線
204−1〜204−n 信号線
205 レンズ
206 撮像素子
301−1〜301−n 照明要素
F1 撮像制御機能
F2 照明制御機能
F3 A/D変換機能
F4 画像保存機能
F5 画像処理機能
F6 デコード処理機能
F7 I/O処理機能
F8 データ出力機能
L11〜L15,L21〜L23,L31〜L33 照明要素
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a method for determining photographing conditions in an optical code reader for optical codes such as bar codes and two-dimensional codes.
[0002]
[Prior art]
This type of optical code reader (for example, a two-dimensional code reader, etc.) includes a camera with a built-in image sensor, an illuminator for illuminating a subject, an image memory for storing an image obtained by photographing with the camera, and reading from the image memory. Decoding means for decoding an optical code included in the image obtained by performing image processing on the output image in accordance with a predetermined rule. Has been adopted. As the material of the work to which the optical code is attached, there are glass, plastic, and wood having various reflectances, such as wood, so that the optical code attached to the work is surely read. Must set appropriate shooting conditions.
[0003]
2. Description of the Related Art Conventionally, in a two-dimensional code reader, as a technique for setting photographing conditions, a plurality of gains of a gain with good reading conditions and a gain with bad reading conditions are prepared, and n is set to a gain with good reading conditions. In the case where decoding is not successful even after repeated reading, a method is known in which reading conditions are switched to reading with a poor gain (see Patent Document 1).
[0004]
[Patent Document 1]
JP-A-10-187870
[0005]
[Problems to be solved by the invention]
By the way, typical elements that define the shooting conditions include a shutter speed and an illumination mode. These factors affect each other and, in addition, affect the imaging conditions depending on the surface properties (mirror surface, rough surface, brightness, color, unevenness, etc.) of the work to which the optical code is attached. For this reason, it is extremely difficult to manually adjust them independently to obtain optimal photographing conditions.
[0006]
SUMMARY OF THE INVENTION The present invention has been made in view of the above-described problems, and an object of the present invention is to automatically and automatically determine the optimum photographing conditions for reading an optical code attached to a workpiece regardless of the surface properties of the workpiece. An object of the present invention is to provide a method for determining a photographing condition in an optical code reading device which can be obtained by using the method.
[0007]
Still other objects and operational effects of the present invention will be easily understood by those skilled in the art from the following description of the specification.
[0008]
[Means for Solving the Problems]
A method for determining an imaging condition in an optical code reader according to the present invention includes a camera with a built-in image sensor, an illuminator for illuminating a subject, an image memory for storing an image obtained by imaging with the camera, and an image read from the image memory. Decoding means for decoding an optical code included in an image obtained by performing image processing on the optical code reading apparatus in accordance with a predetermined rule. And detecting a pixel-level predetermined feature in the acquired image, and determining a shutter speed in the next camera shooting based on the detected pixel-level predetermined feature. Optimum shutdown is achieved by continuously repeating this as a cycle for a plurality of cycles. Determining the speed, characterized in that.
[0009]
According to such a configuration, the shutter speed in the next camera shooting is determined based on the predetermined feature of the pixel level in the image obtained by performing the camera shooting at the predetermined shutter speed. By continuously repeating a plurality of cycles, it is possible to accurately acquire the most suitable photographing condition for reading the optical code attached to the work regardless of the surface property of the work. In other words, if the surface properties of the workpiece are different, images corresponding to the respective surface properties are actually obtained, so if the processing for determining the shutter speed in the next camera shooting based on the obtained images is repeated, The shutter speed that matches the surface property of the work at that time is automatically determined.
[0010]
Here, the maximum value of the pixel level can be adopted as the predetermined characteristic of the pixel level. That is, by comparing the maximum value of the pixel level in the acquired image with a reference value (for example, a dynamic range of the image), the quality of the image is determined, and the shutter speed is increased or By reducing the speed, the shutter speed in the next camera shooting is determined. Further, as the predetermined feature of the pixel level, an absolute value of each of the white level and the black level in the code area of the image and a difference between the white level and the black level can be adopted.
[0011]
By employing such a configuration, the shutter speed in the next camera shooting is determined based on the image quality in the code area of the image to be actually read, so that the optimal shutter speed is more accurately obtained. It becomes possible. At this time, the possible values of the shutter speed in camera shooting may be set in advance in a geometric progression. If such a configuration is adopted, the shutter speed can be changed stepwise by a predetermined amount, so that digital control becomes easy.
[0012]
In a preferred embodiment, the optical code reader includes an illuminator that can select one of a plurality of illumination directions, and performs a plurality of shootings while switching the illumination direction of the illuminator. Acquiring a plurality of images, and detecting a predetermined feature at the pixel level of each of the plurality of acquired images or a pixel-level feature of an image obtained by appropriately adding the plurality of acquired images. And determining an optimum illumination direction or an illumination direction combination based on the detected pixel-level predetermined feature.
[0013]
According to such a configuration, while selectively selecting one of the plurality of illumination directions, a predetermined characteristic of each pixel level of a plurality of images obtained by imaging in each selected state, or an acquired characteristic is obtained. The optimal illumination direction or the combination of the illumination directions is determined based on a pixel-level predetermined characteristic of an image obtained by appropriately adding a plurality of images together, so that the optimal illumination direction or the surface inclination of the workpiece is determined irrespective of the surface property of the workpiece or the surface inclination of the workpiece. A proper illumination direction can be obtained accurately. Here, as the illuminator that can select a plurality of illumination directions alternatively, an illuminator having a plurality of illumination elements having different illumination directions can be adopted. Here, each of the lighting elements can be constituted by one light source or a plurality of light sources.
[0014]
Here, the meaning of “an image obtained by appropriately adding a plurality of acquired images” is such that when there is a regular gradation in the density of the acquired image, a gradation in a direction opposite to that of the gradation, Alternatively, an image having a gradation having a complementary relationship with the image is searched for, and the two are added, thereby taking into consideration a case where a uniform image at a pixel level in which the gradation is mutually canceled can be obtained. When the pixel level can be made uniform by adding or combining a plurality of images in this way, it means that the combination of the illumination directions of the respective images on which it is based becomes the optimal illumination mode. .
[0015]
Here, as the predetermined feature of the pixel level, the maximum value of the pixel level can be adopted as in the case of the previous shutter speed. Further, as the predetermined feature of the pixel level, as in the case of the previous shutter speed, the absolute value of each of the white level and the black level in the code area of the image and the difference between the white level and the black level are adopted. You can also.
[0016]
In a preferred embodiment, the method of the present invention may be performed at the time of initial setting of the optical code reader. By adopting such a configuration, it is possible to appropriately set photographing conditions at the time of operation of the device before the operation of the device.
[0017]
In a preferred embodiment, the method of the present invention may be executed when the optical code reader is retried. According to such a configuration, during the operation of the apparatus, when the surface quality of the workpiece changes, the illumination mode changes, or other disturbances, etc., when the image quality of the acquired image is reduced, By performing a retry operation, the optimum photographing condition can be reset.
[0018]
At this time, in addition to the determined optimal shutter speed, a high-speed shutter speed and a low-speed shutter speed that have a prescribed relationship therewith may be automatically determined for acquiring a preliminary image. According to such a configuration, the optical code to be read thereafter is photographed at three kinds of shutter speeds. By switching to an image corresponding to the speed and the low shutter speed, reliable reading can be performed without retrying again.
[0019]
In addition, in the process of adding the previous images to make the pixel level uniform, if the pixel level of the image obtained by the addition of the images exceeds the dynamic range of the pixel level, the set shutter speed is equal. The shutter speed may be re-determined by dividing by the series ratio. Further, the light amount of the illuminator may be appropriately adjusted according to the shutter speed determined again at this time.
[0020]
The method of the present invention can also be performed when the user performs the initial setting of the optical code reader so that the user can position the object while watching the video monitor. At that time, when the maximum value of the acquired pixel level indicates the dynamic range, the shutter speed at the time of acquiring the next image is increased by one step, while the maximum pixel level of the acquired image is equal to or less than a predetermined value. In some cases, the shutter speed at the time of acquiring the next image may be reduced by one step.
[0021]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, a preferred embodiment of the present invention will be described in detail with reference to the accompanying drawings. It should be noted that the following embodiments merely show a part of the present invention, and it goes without saying that the technical scope of the present invention is defined only by the description of the claims in the specification.
[0022]
FIG. 1 is an external view showing the system configuration of the apparatus of the present invention. In the figure, 1 is a controller, 2 is a camera having a built-in image sensor such as a CCD, 3 is an illuminator attached to the tip of the camera 2, 4 is a work, 5 is a two-dimensional code attached on the work. , 6 is a trigger sensor that detects that the work 4 has reached the field of view of the camera 2 and generates a trigger input, 7 is a handy console that forms a human-machine interface, 8 is a video monitor that forms a human-machine interface, and 9a is A programmable controller 9b for controlling the production line including the apparatus of the present invention is a personal computer which gives various instructions to the programmable controller 9a.
[0023]
In contrast to the controller 1, the programmable controller 9a and the personal computer 9b function as the host system 9. The camera 2 is fixed on a line on which the work 4 is transported. In this example, the camera 2 photographs the work 4 from directly above. As described later with reference to FIG. 8, a plurality of lighting elements are provided in the lighting device 3. Each of these lighting elements has a unique lighting direction. Each lighting element is constituted by one or a plurality of light sources.
[0024]
FIG. 2 is a block diagram mainly showing the internal configuration of the controller. In the figure, the same components as those of FIG. 1 are denoted by the same reference numerals, and description thereof is omitted.
[0025]
In the controller 1, a CPU 101, a memory 102, an image memory 103, an image input / output control unit 104, a console interface 105, a camera interface 106, a monitor interface 107, a lighting interface 108, a trigger sensor interface 109 , An image processing unit 110, a CPU bus 111, an internal bus 112, and a communication interface 113.
[0026]
The CPU 101 is mainly configured by a microprocessor, and controls the entire controller 1 by executing a system program stored in the memory 102. That is, data generated by operating the console 7 is taken into the CPU 101 via the console interface 105, the image input / output control unit 104, and the CPU bus 111. Similarly, a signal from the trigger sensor 6 is taken into the CPU 101 via the trigger sensor interface 109, the image input / output control unit 104, and the CPU bus 111. Data for the video monitor 8 is output to the video monitor 8 via the CPU 101, the CPU bus 111, the image input / output control unit 104, and the monitor interface 107. Image data generated by the photographing operation of the camera 2 is stored in the image memory 103 via the camera interface 106, the image input / output control unit 104, the internal bus 112, and the image processing unit 110. A lighting / light-off signal for each lighting element included in the lighting device 3 is output to the lighting device 3 via the CPU 101, the CPU bus 111, the image input / output control unit 104, the lighting interface 108, and the camera 2. . Thereby, one or more selected ones of the plurality of lighting elements constituting the illuminator 3 are turned on, and a desired lighting mode is realized. The image processing unit 110 receives a command from the CPU 101, reads a designated image from the image memory 103, performs image processing on the designated image, extracts a two-dimensional code, and decodes the two-dimensional code according to a predetermined rule.
[0027]
The host system 9 and the CPU 101 exchange data via the communication interface 113. As a result, a command from the host system 9 is sent to the controller 1, and the CPU 101 decodes the command, so that various commands from the host system 9 are executed on the controller 1 side.
[0028]
An explanatory diagram of a signal path from the controller to the illuminator is shown in FIG. As shown in FIG. 1A, the controller 1 and the camera 2 are connected by a cable C1, and the camera 2 and the illuminator 3 are connected by a cable C2. As shown in FIG. 2B, a serial / parallel converter 201 is built in the camera 2. The serial / parallel converter 201 receives a clock signal via a signal line 202 and receives a control signal via a signal line 203. On the other hand, the serial / parallel converter 201 sends an on / off signal to each lighting element (illumination group) constituting the lighting device via the signal lines 204-1 to 204-n. As described above, the serial / parallel converter 201 converts the control signal transmitted serially from the controller 1 into a parallel signal, so that each lighting element included in the lighting device 3 is selectively turned on / off.
[0029]
FIG. 4 is a block diagram schematically showing the functional configuration of the apparatus of the present invention described above. As is clear from the figure, when the trigger input 3a arrives, the imaging control function F1 and the illumination control function F2 operate. Then, by the operation of the illumination control function F2, one or more of the n illumination elements 301-1 to 301-n each having a unique illumination direction are selectively driven, and the object 4 is moved from one direction. Alternatively, illumination is performed from a plurality of directions. The reflected light from the object 4 forms an image on the image sensor 206 via the lens 205. Then, an analog image is output from the imaging element 206 by the operation of the imaging control function F1. This analog image is converted into a digital image by the A / D conversion function F3, and is stored in the memory by the operation of the image storage function F4. The image thus stored in the memory is appropriately subjected to image processing by the operation of the image processing function F5, and then attempted to be decoded according to a certain rule by the decoding processing function F6, and the decoding result obtained in this way is used as an I / O processing function. It is sent to the host system 9 via F7 and the data output function F8. The above is the basic operation of the two-dimensional code reader according to this embodiment.
[0030]
Next, a flowchart showing the shutter speed temporary setting process before teaching is shown in FIG. The optimization of the shutter speed before setting will be described with reference to this flowchart. In a device for reading an optical code (including characters), various conditions are optimized in accordance with an optical code to be processed in order to speed up and stabilize a normal process. At that time, first, it is necessary to take an image of the object (work) to which the optical code is attached and display it on the image monitor, and determine whether the object is in the field of view, in focus, and whether the brightness is high. It is to check whether there is no unevenness or the like in the imaging state. At that time, if the shutter speed is fixed, if it is too dark or too bright, it must be changed each time. Therefore, in this embodiment, if the apparatus shifts to the condition setting mode, the image is continuously acquired, and the level of each pixel in the image (between the image acquisition and the next image acquisition) Check the value after A / D conversion), and if the maximum value indicates the maximum value of the dynamic range, increase the shutter speed by one step. Conversely, if the maximum value is less than half the dynamic range, The shutter speed is constantly changed so as to lower the shutter speed by one step.
[0031]
In this embodiment, the shutter speed is set so as to change by a factor of two, such as 1/125 sec, 1/250 sec, 1/500 sec, 1/1000 sec,..., And the mode has shifted to the condition setting mode. The shutter speed immediately after is set to the slowest, and the shutter speed is changed until the maximum value of the pixel level does not exceed the dynamic range of imaging. Since the shutter speed and the pixel level to be imaged are proportional if the amount of light is constant, the shutter speed is changed under the above conditions. If the shutter speed is changed by a factor of 1.5 from 1/100 sec, 1/150 sec, 1/225 sec,..., The lower limit of the maximum value can be set to 1 / 1.5 ≒ 67% of the dynamic range. Thus, the lower limit level of the maximum value is determined according to the shutter speed setting interval.
[0032]
The acquisition of the maximum value of the pixel level may be performed over all the pixels of the image. However, in order for the user to have a feeling as if watching a real-time image, only about 10 msec is available for this processing. The maximum value may be obtained by skipping a pixel instead of a pixel. If continuous imaging is performed in this state, it is possible to obtain a substantially real-time image, and the user does not feel uncomfortable.
[0033]
That is, in the flowchart of FIG. 5, when the process is started, first, the process is in a state of waiting for a mode change input (step 501). In this state, when a mode change input by the user arrives, a transition to the setting mode is performed (step 502).
[0034]
When the mode is shifted to the setting mode, the shutter speed is set to the slowest state (step 503), and imaging (image capture) is performed in that state (step 504), and then the maximum pixel level in the captured image is set. Is detected (step 505).
[0035]
Here, if the pixel level is determined to be “255” which is the upper limit of the dynamic range (step 506 YES), since the image is saturated at that time, the shutter speed is increased by one step (step 508). The image is taken in and the maximum pixel level is detected again (step 505). Thereafter, the shutter speed is increased until the maximum pixel level becomes a value smaller than "255" (step 508).
[0036]
On the other hand, if the maximum pixel level becomes a value smaller than "255" (step 506NO), the condition is that the maximum pixel level is larger than a half value "127" of the saturated pixel level "255" (step 507NO). ), The change of the shutter speed is stopped (step 510), and thereafter the shutter speed is maintained at that state. In this state, when a trigger input is received from the user (step 511 YES), the temporary setting process of the shutter speed is terminated and teaching is started.
[0037]
On the other hand, following the image capture (step 504) and the detection of the maximum pixel level (step 505), if it is determined that the maximum pixel level is less than or equal to half the saturated pixel level “127” (step 507 YES), The shutter speed is reduced by one step (step 509), and thereafter, the processing for reducing the shutter speed is repeated until the maximum pixel level becomes “127” or more (step 509).
[0038]
In this state, if the maximum pixel level exceeds half the value “127” of the saturated pixel level (NO in step 507), the shutter speed is maintained in that state thereafter (step 510) in the same manner as above, and the trigger input by the user is performed. After the arrival (YES in step 511), teaching is started.
[0039]
As described above, according to the shutter speed temporary setting process before teaching, the value of the maximum pixel level of the acquired image is set to fall between the saturation level “255” and the half level “127”. Controlled. Therefore, it is possible to avoid the possibility that an extremely saturated image or an extremely dark image is obtained at the start of teaching, which will be described later. In the above-described processing, the condition that a pixel having a pixel level of “255” exists for a certain level or more may be a condition for increasing the shutter speed by one step.
[0040]
Next, a flowchart (No. 1) showing the optimization process (I) related to illumination is shown in FIG. 6, and a flowchart (No. 2) showing the optimization process (I) related to illumination is shown in FIG. Hereinafter, illumination optimization will be described with reference to these flowcharts.
[0041]
Since the two-dimensional code is marked on a metal rough surface, a metal mirror surface, and various other surfaces, a plurality of lighting elements are prepared in advance as shown in FIG. If you make it selectable, the range of correspondence will be expanded.
[0042]
That is, FIG. 8A shows an arrangement example in which directions can be selected, and has five illumination elements L11 to L15 having different illumination directions. Each of the lighting elements L11 to L15 includes one light source or a plurality of light sources, and the colors of these five lighting elements L11 to L15 are the same. Therefore, by turning on one or a plurality of selected ones of the illumination elements L11 to L15, light can be applied to the two-dimensional code as the object from various directions.
[0043]
FIG. 8B shows an example (part 1) in which wavelengths can be selected. In this example, three illumination elements L21 to L23 having different illumination directions are provided. The illumination element L21 emits blue light, L22 emits red light, and L23 emits green light. Therefore, it is possible to illuminate the object with light of different colors from three directions.
[0044]
FIG. 8C shows a wavelength selectable example (No. 2). In this example, three illumination elements L31 to L33 are made coaxial via dichroic mirrors M1 and M2, It is possible to selectively illuminate light of three colors from the same direction. When the configuration of FIG. 8C is combined with the configuration of FIG. 8A, light of various colors can be emitted to the object from five directions.
[0045]
By the way, if it is left to the user to determine which lighting element is turned on, it is not easy. In addition, when there are a large number of lighting elements provided and a plurality of lighting elements must be used, a number of combinations must be tried. Even if the combination is verified one by one, an enormous amount of time and internal memory are required.
[0046]
Therefore, in this embodiment, an image is acquired in the following procedure, and an optimal lighting element is selected. That is, an arbitrary one of all the lighting elements is selected, an image is acquired, the image is stored in the image memory 103, and another arbitrary one of the lighting elements is selected, and the image is selected. Is acquired and stored in the image memory 103, and this process is executed for each of all the lighting elements. When acquiring an image, after selecting a lighting element, a shutter speed is provisionally determined according to the procedure described above with reference to FIG. 5 to acquire an image, and the shutter speed is stored.
[0047]
When only one optimal illumination element is selected, decoding processing is performed for each image, and among the images that could be decoded, the illumination element and shutter speed that provided the image with the largest black-and-white difference of the object. Select Here, the difference between black and white means, for example, as shown in FIG. 9, a difference between the pixel value level of the level of the black portion B and the level of the white portion W in the two-dimensional code area in the image. If there is unevenness in the portion, the difference between the average values or the difference between the minimum value of the white portion W and the minimum value of the black portion B is used. In the example of FIG. 9A, the pixel value of the white area W is substantially the same as the background color of the image, and the pixel value of the black portion B is significantly darker than the background color. Further, in the example of FIG. 9B, the pixel value of the black portion B is almost the same as the background color, and the pixel value of the white portion W is significantly brighter than the background color. The above flow is shown in the flowcharts of FIGS.
[0048]
That is, when the processing is started in FIG. 6, the apparatus enters a mode change input standby state (step 601). In this state, when a mode change input is received by the user, a transition to the setting mode is performed (step 602).
[0049]
When the setting mode is started, only the illumination elements (n = 1) are turned on (step 603), and in this state, the shutter speed is temporarily set according to the procedure described above with reference to FIG. (Step 604). Thereafter, the teaching is started after the trigger input by the user is received (step 605).
[0050]
When the teaching is started, the temporary setting of the shutter speed (step 607) and the imaging and the image storage (step 608) are repeatedly executed while incrementing the value of the pointer n indicating the illumination element by 1 from 1 to N. .
[0051]
That is, for example, in the example of FIG. 8A, only the illumination element L11 is turned on, and in that state, the shutter speed is temporarily set (step 607), and imaging and image storage are performed (step 608). Only the illumination element L12 is turned on, the shutter speed is temporarily set (step 607), and the image pickup and image storage (step 608) are performed in the same manner, and thereafter, the above-described operations up to the illumination element L15 are repeated.
[0052]
Thus, when the value of the pointer n reaches N (step 609 YES), the imaging and the image storage (step 608) are completed, and the process proceeds to the flowchart of FIG. 7, and the stored image is read out (step 701). The execution of the decoding process (step 702), the calculation of the contrast (step 703), and the storage of the processing result (step 704) are repeatedly executed for all the acquired images (step 706).
[0053]
In this way, when the value of the pointer n reaches N (step 705), and the decoding processing execution (step 702), contrast calculation (step 703), and processing result storage (step 704) are completed for all the images stored in the memory, Thereafter, the process proceeds to step 707, where decoding OK and selection processing of illumination and shutter speed of the maximum contrast image are performed.
[0054]
That is, in the processing result storage (step 704), whether or not decoding is possible and the contrast (the difference between the white level and the black level) are stored for each of the read images. In step 707, the illumination direction and the shutter speed corresponding to the image that can be decoded and have the maximum contrast are respectively selected as the optimum ones. When the selection of the illumination and the shutter speed is completed in this way, this flowchart is completed (step 708).
[0055]
As described above, according to the processes illustrated in FIGS. 6 and 7, after the user inputs a change to the setting mode, the mode shifts to the setting mode, and then the lighting elements constituting the illuminator are selectively set to one. One by one, the shutter speed and the image are taken for each direction and stored in the memory. Thereafter, the stored images are read out one by one, decoding is attempted, and the contrast is calculated. After storing those results, the illumination direction and shutter speed of the decoding OK and maximum contrast image are selected based on the processing results obtained in this way. As a result, it is recognized which illumination from which direction is optimal and what shutter speed is appropriate.
[0056]
In the flowcharts of FIGS. 6 and 7, the setting of the shutter speed for the second and subsequent lighting elements can be determined relatively quickly if the speed selected immediately before is set as the initial value.
[0057]
By the way, when it is possible to read a plurality of images, if there is a variation in brightness that may affect the reading in the background or the object of each image, each image is added. It is also possible to verify whether the variation can be suppressed and use a plurality of lighting elements in combination. Here, “may have an effect” means that a black-and-white difference required for reading cannot be secured. Specifically, as shown in FIG. 11D, the variation in the brightness in the image is determined for each decoded image along the four scanning lines (1) to (4) as shown in FIG. Scan the level, check the level and gradient, and if there is a possibility that it will have an effect, compare it with the scan results of other readable images. Find out by comparing with the addition of. Furthermore, after calculating the average of the images of the combination, decoding may be performed on the calculation result to confirm the certainty of the illumination selection. Of course, the number of scanning lines need not be four. The above flow is shown in the flowchart of FIG.
[0058]
That is, in the figure, when the processing is started, one of a plurality of stored images is read out (step 1001), and decoding is attempted (step 1002). Thereafter, the contrast and the gradation are calculated (step 1003), and whether or not decoding is possible, the contrast and the gradation are stored as processing results (step 1004). The above processing (steps 1002 to 1004) is sequentially repeated for all the images (step 1006), and after the processing is completed for all the images (step 1005 YES), the process proceeds to the next processing. Is
[0059]
In the next processing, first, decoding OK and selection of the maximum contrast image are performed (step 1007). Thereafter, it is determined whether the degree of the previously calculated gradation satisfies the reference value (step 1008). Here, if the gradation is within the appropriate range in the decoding OK and the maximum contrast image (step 1008 YES), the illumination selection ends. On the other hand, when it is determined that there is a “possible effect” on the gradation (step 1008 NO), the gradation lines of the decoded OK image are added together (step 1009), and the addition is performed. The determination as to whether or not leveling is achieved is repeated (step 1010). If it is determined that the images have been leveled by adding gradation lines between two or more images (YES in step 1010), a shutter speed correction process (step 1011) is performed, and the illumination selection ends (step 1011). 1012). At this time, in addition to the correction of the shutter speed (step 1013), the correction of the illumination light amount may be performed (step 1014).
[0060]
FIG. 11 is an explanatory diagram (No. 1) of the reading target image generation process (I) by averaging each pixel. In this example, as shown in FIG. 3D, scanning of pixel values is performed along four scanning lines (1) to (4). Further, the first image shown in FIG. 11A has a vertical gradation, and the upper part is bright and the lower part is dark. The second image shown in FIG. 11B has the same vertical gradation, but the upper part is dark and the lower part is bright. This is also shown in the position / pixel level graph shown in FIG. 2A and the position / pixel level graph shown in FIG. On the other hand, in the image to be read shown in FIG. 3C, as a result of adding and averaging the first image and the second image, image leveling has been achieved. It is also represented by a position / pixel level graph shown in FIG. As described above, by adding and averaging the first image and the second image, it is possible to obtain an image to be read in which image leveling has been achieved.
[0061]
FIG. 12 is an explanatory diagram (No. 2) of the reading target image generation process (I) by averaging each pixel. In this example, the first image has a left-right gradation, with the left side dark and the right side bright. In the second image shown in FIG. 7B, although the left and right gradations are similar, the left side is bright and the right side is dark. Therefore, in the image to be read shown in FIG. 3C, the first image and the second image are added and averaged, and as a result, image leveling is achieved.
[0062]
On the other hand, if there is a variation in brightness not in the background but in the object, in the case of a two-dimensional code, pixel levels of each cell after decoding are added to find a combination in which the gradient or level is leveled. . When selecting multiple illuminations, if the shutter speed at the time of acquiring each image is different, select the slowest shutter speed among them, and reduce the amount of illumination by the ratio of the shutter speed to realize the optimal illumination setting can do.
[0063]
FIG. 15 shows an example of a circuit capable of changing the illumination light amount. This circuit includes one light emitting diode D, three transistors TR1 to TR3, and three resistors R1 to R3. As for the resistance values, R1 = R2 and R3 = R1 / 2 are set. Therefore, when only the transistor TR1 is turned on, the light emission power is the smallest, when the transistors TR1 and TR2 are turned on, the light emission power is twice as high as when only the transistor TR1 is turned on, and when all the transistors are turned on, the light emission power is increased. Is quadrupled. Such a circuit is applied to a light emitting diode constituting each lighting element, and by selectively turning on and off the transistors TR1 to TR3 as appropriate, the amount of illumination light can be changed and a correction process can be performed.
[0064]
FIG. 13 shows a reading target image generation process in the case where the brightness varies in an oblique direction. Also in this example, four scanning lines (1) to (4) are used. The first image shown in FIG. 11A has a gradation along a diagonal line from the upper left to the lower right, with the upper left being bright and the lower right being dark. Further, in the central part of the image, there is a variation in brightness due to the two-dimensional code. This is also shown in the graph of FIG. The second image shown in FIG. 11B has a gradation along a diagonal line from the upper left to the lower right, but the upper left is dark and the lower right is bright. Further, there is a variation in brightness at the center of the image due to the two-dimensional code. This is also shown in the graph of FIG. In the image to be read shown in FIG. 13C, the first image and the second image are added and averaged, and as a result, pixel leveling is achieved. This is also shown in the graph of FIG. If a two-dimensional code or the like is present, the operation of pixels along a scanning line becomes complicated. Therefore, if the region is ignored and the operation of the background is performed, the complexity of the operation can be avoided.
[0065]
FIG. 14 is an explanatory diagram showing the read target process in comparison with (addition # 3) and (addition # 2). The images shown in FIGS. 7A to 7C have a horizontal gradation. However, in the image shown in FIG. 3A, the left 2/3 region is bright and the right 1/3 region is dark. In the image shown in FIG. 3B, the left 1/3 part is dark and the right 2/3 part is bright. In the image shown in FIG. 3C, the left and right 1/3 regions are dark, and the central 1/3 region is bright. The image shown in FIG. 9D is obtained by adding the three images shown in FIGS. 9A to 9C and dividing by 3 and as a result, image leveling has been achieved. .
[0066]
On the other hand, the two images shown in FIGS. 7E and 7F both have gradation along a diagonal line from upper right to lower left. However, in the image shown in FIG. 11E, the upper left and lower right 1/3 regions are bright, and the central 1/3 region is dark. In the image of FIG. 11F, the upper left and lower right 1/3 regions are dark and the center is bright. In the image shown in FIG. 11G, the two images shown in FIGS. 11E and 11F are added, and the result is divided by two. As a result, leveling has been achieved. The leveling by adding images may be performed based on the gradation of only the area where the two-dimensional code exists, in addition to the calculation based on the gradation of the background. In this case, the calculation may be performed based on the gradation of only the white or black level.
[0067]
Next, optimization of the shutter speed will be described with reference to FIGS. When external illumination is used for illumination, normally, the shutter speed is fixed and the illumination light amount is adjusted, or the illumination light amount is fixed and the shutter speed is adjusted. However, even if the object can be read, it is difficult for the user to determine whether the combination of the illumination light amount or the shutter speed is optimal. Thus, in this embodiment, the amount of illumination is fixed and the shutter speed can be automatically set, thereby reducing and optimizing the number of adjustment steps.
[0068]
That is, when the process is started in the flowchart of FIG. 17, first, the shutter speed is temporarily set according to the process described above with reference to FIG. 5 (step 1701), and then the shutter speed and the slower shutter speed are set. Images are acquired at a plurality of shutter speeds.
[0069]
Next, a decoding process is performed on the image acquired at the fastest shutter speed among the acquired images, and the white level and the black level of the object and the difference therebetween are acquired. If the decoding is not possible, the decoding process is performed on the image acquired at the next faster shutter speed, and the white level and the black level of the object are acquired, and the difference is acquired. If the processing is not completed for all the acquired images, a message indicating that decoding is not possible is displayed or output, and the processing ends.
[0070]
That is, after the teaching is started (step 1702), the value of the variable n is incremented from 0 (step 1703) one by one (step 1707), and the shutter speed is set to be n steps slower (step 1704). The storage (step 1705) is repeated, and after waiting for the value of the variable n to reach N (step 1706 YES), the transition to the decoding process is performed.
[0071]
When the shift to the decoding process is performed, acquisition of the decoding target memory n (Step 1708) and execution of the decoding process (Step 1709) are performed corresponding to each shutter speed, and it is determined that any one of the images is decoded OK. (Step 1710 YES), and the process proceeds to the next process without performing the decoding process on the remaining images. On the other hand, if decoding OK is not determined as a result of attempting decoding processing for all images (step 1711 YES), the illumination selection ends as failure (step 1713).
[0072]
Subsequently, the processing shifts to the flowchart of FIG. 18, where the white level and the black level and their difference are obtained (step 1801), and the results are stored (step 1802). Thereafter, as shown in FIG. 16, the cases are classified according to the white level, the black level, and the value of the difference therebetween.
[0073]
Here, the shutter speed is set to a multiple of 1/125 sec, 1/250 sec, 1/500 sec,.... In this example, the cases are divided into five cases. Case 1 is decoded when the white level is 3/4 or more of the dynamic range, and case 2 is decoded when the white level is 1/2 to 3/4. And the black level is between 1 / and ケ ー ス, case 3 is a case where the white level can be decoded between 2〜 and / and the black level is 1 / or less. No. 4 indicates a case where the white level can be decoded at 1/8 to 1/4, and case 5 indicates a case where the white level can be decoded at 1/8 or less.
[0074]
In case 1, if the shutter speed is reduced by one step, the white level causes halation, and the black level becomes twice the current value. As a result, the difference between black and white is reduced, so that the shutter speed cannot be reduced. Conversely, if the shutter speed is increased by one step, the value of both the white level and the black level becomes 1/2 of the current value, and the difference between black and white becomes small.
[0075]
In Case 2, if the shutter speed is reduced by one step, the white level causes halation, and as a result, the black and white difference often does not increase so much. Therefore, the shutter speed is optimal as it is.
[0076]
Conversely, in case 3, the difference in black and white can often be slightly increased by lowering the shutter speed. Therefore, it is optimal to lower the shutter speed by one step.
[0077]
In case 4, even if the shutter speed is reduced by two steps, the white level does not cause halation and the black-and-white difference becomes four times. Therefore, it is optimal to reduce the shutter speed by two steps. In Case 5, the white level does not cause halation even if the shutter speed is further reduced, and the black-and-white difference is likely to be eight times. Therefore, it is optimal to reduce the shutter speed by three steps.
[0078]
Depending on the performance of the image sensor and the state of the decoding algorithm, in case 5, if the white level can be decoded at 1/16 or less of the dynamic range, if it is supposed, the setting to reduce the shutter speed by four steps is added.
[0079]
In cases other than Case 2, a sufficient black-and-white difference is obtained, so it is unlikely that decoding will be unstable. However, in Case 2, it is assumed that there is not much black-and-white difference. By performing a process of determining whether or not the level is a level that can be decoded with a margin, if there is no difference exceeding a certain level, the image is displayed on an image monitor, or a signal is output from an I / O to provide a user with, for example, lighting. You can ask them to re-set or to review their markings. An example of the above flow is shown in the flowchart of FIG. Here, the “setting mode” is a mode in which not only shutter speed but also information necessary for reading an object in a short time or for stable reading is taken and stored in the apparatus, and the shutter speed is set. Settings are part of that.
[0080]
That is, in the flowchart of FIG. 18, when the processing is started, first, the white level, the black level, and the black-and-white difference are obtained (step 1801) and the processing result is stored (step 1802), and then the white level and the black level are obtained. Is determined in which region shown in FIG. 16 exists (steps 1803, 1804, 1805, 1806, 1807, 1809). The shutter speed is appropriately controlled in accordance with the results of these determinations (steps 1808, 1810, 1811, 1812, 1813), thereby achieving the appropriate shutter speed.
[0081]
Next, simultaneous optimization of shutter speed and illumination will be described. If the shutter speed is optimized according to the flowcharts of FIGS. 17 and 18 after the illumination is optimized, the illumination and the shutter speed can be optimized at the same time.
[0082]
When using only one illumination element as the image to be used for optimizing the shutter speed, use the image as determined with the illumination element and determine how much the shutter speed should be changed with respect to the shutter speed at that time I do. When a plurality of illumination elements are selected, the reference (shutter speed) that has been reset is used using the added (averaged) image.
[0083]
Next, optimization at the time of reading will be described. The above-described embodiment relates to the processing at the time of initial setting of the reading apparatus, but can also be applied during normal operation. That is, even if the shutter speed condition is optimized at the time of the initial setting, various objects may appear during operation, and it is possible that different conditions from those at the time of the initial setting may be required. Immediately after the trigger is input, a total of three images are captured at the shutter speed one step faster and one step slower, respectively. First, decoding processing is performed on the image captured at the optimized shutter speed. If the image cannot be read at that stage, the degree of freedom of the object to be read can be increased by performing decoding processing by selecting an image having a high shutter speed or an image having a low shutter speed according to the result of the decoding processing. Also, if a single acquired image could not be read without acquiring a plurality of images in advance, changing the shutter speed condition and retrying the reading would make it possible to read the above if the object was stationary. The same effect is obtained.
[0084]
Furthermore, for the lighting, if reading was possible with some lighting elements at the time of setting, each is stored, and when a trigger is input, each lighting element is imaged, Decoding is performed using the image in the best condition at the time of setting, and if reading is not possible, decoding is performed using an image captured with another illumination, so that the degree of freedom of the reading object can be increased.
[0085]
【The invention's effect】
As apparent from the above description, according to the present invention, there is provided an optical code reading apparatus capable of accurately acquiring an optimum photographing condition for reading an optical code attached thereto regardless of the surface property of the work. A method for determining a photographing condition can be provided.
[Brief description of the drawings]
FIG. 1 is an external view showing a system configuration of a device of the present invention.
FIG. 2 is a block diagram mainly showing an internal configuration of a controller.
FIG. 3 is an explanatory diagram of a signal path from a controller to a lighting device.
FIG. 4 is a block diagram schematically showing a functional configuration of the device of the present invention.
FIG. 5 is a flowchart illustrating a shutter speed temporary setting process before teaching.
FIG. 6 is a flowchart (part 1) illustrating an optimization process (I) related to illumination.
FIG. 7 is a flowchart (part 2) showing optimization processing (I) relating to illumination.
FIG. 8 is an explanatory diagram of an example of arrangement of lighting elements in a lighting device.
FIG. 9 is an explanatory diagram of a white portion and a black portion in a two-dimensional code.
FIG. 10 is a flowchart showing illumination optimization processing (II).
FIG. 11 is an explanatory diagram (I) of a reading target image generation process (I) based on pixel averaging.
FIG. 12 is an explanatory view (No. 2) of a reading target image generation process (I) by averaging each pixel.
FIG. 13 is an explanatory diagram of a reading target image generation process by adding pixels.
FIG. 14 is an explanatory diagram showing a comparison between read target processes (addition # 3) and (addition # 2);
FIG. 15 is a diagram illustrating an example of a circuit that can change the amount of illumination light.
FIG. 16 is an explanatory diagram of a case division according to a white level and a black level and a difference between the black level and the black level.
FIG. 17 is a flowchart (part 1) illustrating a process for simultaneously optimizing both the shutter speed and the illumination.
FIG. 18 is a flowchart (part 2) illustrating a process of simultaneously optimizing both the shutter speed and the illumination.
[Explanation of symbols]
1 Controller
2 Camera
3 illuminator
3a Trigger input
4 Work
5 2D code
6 Trigger sensor
7 Handy console
8 Video monitor
9a Programmable controller
9b PC
101 CPU
102 memory
103 Image memory
104 Image input / output control unit
105 Console interface
106 Camera Interface
107 Monitor interface
108 Lighting interface
109 trigger sensor
110 Image processing unit
111 CPU bus
112 internal bus
201 Serial / Parallel Converter
202, 203 signal line
204-1 to 204-n signal line
205 lens
206 Image sensor
301-1 to 301-n Lighting elements
F1 Imaging control function
F2 Lighting control function
F3 A / D conversion function
F4 image storage function
F5 image processing function
F6 decode processing function
F7 I / O processing function
F8 data output function
L11 to L15, L21 to L23, L31 to L33 Lighting element

Claims (13)

イメージセンサ内蔵カメラと、被写体を照らす照明器と、カメラによる撮影により得られる画像を記憶する画像メモリと、画像メモリから読み出された画像に対して画像処理を施すことにより得られた画像に含まれる光学コードを所定の規則に従ってデコードするデコード手段と、を有する光学コード読取装置における撮影条件決定方法であって、
所定のシャッタスピードにてカメラ撮影を行って画像を取得するステップと、取得された画像内の画素レベルの所定特徴を検出するステップと、検出された画素レベルの所定特徴に基づいて次回のカメラ撮影におけるシャッタスピードを決定するステップとからなる一連の処理を1サイクルとして、これを複数サイクル連続的に繰り返すことにより最適シャッタスピードを決定する、ことを特徴とする光学コード読取装置における撮影条件決定方法。
A camera with a built-in image sensor, an illuminator for illuminating the subject, an image memory for storing an image obtained by shooting with the camera, and an image obtained by performing image processing on an image read from the image memory. Decoding means for decoding an optical code according to a predetermined rule, and a photographing condition determining method in an optical code reading device,
Obtaining an image by performing camera shooting at a predetermined shutter speed, detecting a pixel level predetermined feature in the obtained image, and performing next camera shooting based on the detected pixel level predetermined feature. A series of processes including the step of determining a shutter speed in step 1), and determining the optimum shutter speed by continuously repeating a plurality of cycles to determine an optimal shutter speed.
画素レベルの所定特徴が、画素レベルの最大値である、ことを特徴とする請求項1に記載の光学コード読取装置における撮影条件決定方法。2. The method according to claim 1, wherein the predetermined feature at the pixel level is a maximum value at the pixel level. 画素レベルの所定特徴が、画像のコード領域内における白レベルと黒レベルのそれぞれの絶対値、及び、白レベルと黒レベルとの差である、ことを特徴とする請求項1に記載の光学コード読取装置における撮影条件決定方法。The optical code according to claim 1, wherein the predetermined feature at the pixel level is an absolute value of each of a white level and a black level in a code area of an image, and a difference between the white level and the black level. A method for determining a photographing condition in a reading device. カメラ撮影におけるシャッタスピードの採りうる値が予め等比級数的に段階設定されている、ことを特徴とする請求項1〜3に記載の光学コード読取装置における撮影条件決定方法。4. The method according to claim 1, wherein the shutter speed in camera photographing is predetermined in a geometric progression. 光学コード読取装置には、複数の照明方向を択一的に選択可能な照明器が含まれており、
照明器の照明方向を切り替えつつ複数回の撮影を行って複数枚の画像を取得するステップと、取得された複数枚の画像のそれぞれの画素レベルの所定特徴、又は取得された複数枚の画像同士を適宜加算してなる画像の画素レベルの所定特徴を検出するステップと、検出された画素レベルの所定特徴に基づいて最適照明方向又は照明方向組合せを決定するステップと、を有することを特徴とする請求項1に記載の光学コード読取装置における撮影条件決定方法。
The optical code reader includes an illuminator that can selectively select a plurality of illumination directions,
A step of acquiring a plurality of images by performing a plurality of shots while switching the illumination direction of the illuminator; and a predetermined feature of each pixel level of the acquired plurality of images, or a plurality of acquired images. And a step of determining an optimal illumination direction or an illumination direction combination based on the detected pixel-level predetermined features. A method for determining photographing conditions in the optical code reader according to claim 1.
画素レベルの所定特徴が、画素レベルの最大値である、ことを特徴とする請求項5に記載の光学コード読取装置における撮影条件決定方法。6. The method according to claim 5, wherein the predetermined feature at the pixel level is a maximum value at the pixel level. 画素レベルの所定特徴が、画像のコード領域内における白レベルと黒レベルのそれぞれの絶対値、及び、白レベルと黒レベルとの差である、ことを特徴とする請求項6に記載の光学コード読取装置における撮影条件決定方法。7. The optical code according to claim 6, wherein the predetermined feature at the pixel level is an absolute value of each of a white level and a black level in a code area of an image, and a difference between the white level and the black level. A method for determining a photographing condition in a reading device. 当該光学コード読取装置の初期設定時に実行される、ことを特徴とする請求項1〜7のいずれかに記載の光学コード読取装置における撮影条件決定方法。8. The method according to claim 1, wherein the method is performed at the time of initial setting of the optical code reader. 当該光学コード読取装置のリトライ時に実行される、ことを特徴とする請求項1〜7のいずれかに記載の光学コードの読取装置における撮影条件決定方法。8. The method according to claim 1, wherein the method is performed when the optical code reader is retried. 決定された最適シャッタスピードの他に、それと規定の関係をなす高速シャッタスピードと低速シャッタスピードとを予備画像取得のために自動的に決定する、ことを特徴とする請求項9に記載の光学コードの読取装置における撮影条件決定方法。10. The optical code according to claim 9, wherein, in addition to the determined optimal shutter speed, a high-speed shutter speed and a low-speed shutter speed that have a prescribed relationship with the determined optimal shutter speed are automatically determined for acquiring a preliminary image. A method for determining photographing conditions in a reading device according to the present invention. 画像同士の加算により得られた画像の画素レベルが画素レベルのダイナミックレンジを越える場合には、設定したシャッタスピードの等比級数の比により割り算を行い、シャッタスピードを決定し直す、ことを特徴とする請求項5に記載の光学コード読取装置における撮影条件決定方法。When the pixel level of the image obtained by adding the images exceeds the dynamic range of the pixel level, the shutter speed is divided by the ratio of the geometric series of the set shutter speed, and the shutter speed is determined again. A method for determining a photographing condition in the optical code reader according to claim 5. 決定し直されたシャッタスピードに応じて、照明器の光量を調整する、ことを特徴とする請求項11に記載の光学コード読取装置における撮影条件決定方法。12. The method according to claim 11, wherein the light amount of the illuminator is adjusted according to the determined shutter speed. 使用者が対象物の位置合わせを行うために、当該光学コード読取装置の初期設定時に実行され、かつ取得された画素レベルの最大値がダイナミックレンジを越えるときには、次の画像取得時のシャッタスピードを一段階高速化する一方、取得された画像の画素レベル最大値が所定値以下のときには、次の画像取得時のシャッタスピードを一段階低速化する、ことを特徴とする請求項2に記載の光学コード読取装置における撮影条件決定方法。When the user performs the alignment of the object, the operation is performed at the time of initial setting of the optical code reader, and when the maximum value of the acquired pixel level exceeds the dynamic range, the shutter speed at the time of acquiring the next image is changed. 3. The optical system according to claim 2, wherein when the pixel level maximum value of the acquired image is equal to or less than a predetermined value while the speed is increased by one step, the shutter speed at the time of acquiring the next image is decreased by one step. A method for determining photographing conditions in a code reader.
JP2002362082A 2002-12-13 2002-12-13 Method for determining photographing condition in optical code reader Expired - Lifetime JP3944732B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002362082A JP3944732B2 (en) 2002-12-13 2002-12-13 Method for determining photographing condition in optical code reader

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002362082A JP3944732B2 (en) 2002-12-13 2002-12-13 Method for determining photographing condition in optical code reader

Publications (2)

Publication Number Publication Date
JP2004194172A true JP2004194172A (en) 2004-07-08
JP3944732B2 JP3944732B2 (en) 2007-07-18

Family

ID=32760634

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002362082A Expired - Lifetime JP3944732B2 (en) 2002-12-13 2002-12-13 Method for determining photographing condition in optical code reader

Country Status (1)

Country Link
JP (1) JP3944732B2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006163858A (en) * 2004-12-08 2006-06-22 Omron Corp Optical information code reader
JP2008059194A (en) * 2006-08-30 2008-03-13 Keyence Corp Apparatus, system, method and program for setting optical code reader
WO2017168473A1 (en) * 2016-03-28 2017-10-05 パナソニックIpマネジメント株式会社 Character/graphic recognition device, character/graphic recognition method, and character/graphic recognition program

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10187870A (en) * 1996-12-20 1998-07-21 Denso Corp Two-dimensional code reader
JPH11120284A (en) * 1997-10-15 1999-04-30 Denso Corp Optical information reader and recording medium
JPH11175882A (en) * 1997-12-16 1999-07-02 Furuno Electric Co Ltd Vehicle number reader

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10187870A (en) * 1996-12-20 1998-07-21 Denso Corp Two-dimensional code reader
JPH11120284A (en) * 1997-10-15 1999-04-30 Denso Corp Optical information reader and recording medium
JPH11175882A (en) * 1997-12-16 1999-07-02 Furuno Electric Co Ltd Vehicle number reader

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006163858A (en) * 2004-12-08 2006-06-22 Omron Corp Optical information code reader
US7475822B2 (en) 2004-12-08 2009-01-13 Omron Corporation Device for reading optical data code
DE102005058740B4 (en) * 2004-12-08 2009-07-16 Omron Corp. Device for reading an optical data code
JP2008059194A (en) * 2006-08-30 2008-03-13 Keyence Corp Apparatus, system, method and program for setting optical code reader
WO2017168473A1 (en) * 2016-03-28 2017-10-05 パナソニックIpマネジメント株式会社 Character/graphic recognition device, character/graphic recognition method, and character/graphic recognition program
CN109074494A (en) * 2016-03-28 2018-12-21 松下知识产权经营株式会社 Character and graphic identification device, character and graphic recognition methods and character and graphic recognizer
JPWO2017168473A1 (en) * 2016-03-28 2019-02-07 パナソニックIpマネジメント株式会社 Character graphic recognition apparatus, character graphic recognition method, and character graphic recognition program

Also Published As

Publication number Publication date
JP3944732B2 (en) 2007-07-18

Similar Documents

Publication Publication Date Title
US8526683B2 (en) Image editing apparatus, method for controlling image editing apparatus, and recording medium storing image editing program
JP4228520B2 (en) Iris photography device
US7826662B2 (en) Digital camera provided with gradation correction function
US6002429A (en) Image input device in which the image sensing conditions are changed depending on a data format required by an external device
US7929025B2 (en) Automatic white balance control system, automatic white balance module, and method thereof
JP2004274299A (en) Image scanner and image reading method
JP5358384B2 (en) Optical information reading apparatus and imaging condition setting method thereof
JP2009272676A (en) Image processing apparatus, control method of image processing apparatus, and program
US6433859B1 (en) Distance measuring apparatus and distance measuring method
JP3944732B2 (en) Method for determining photographing condition in optical code reader
JP4586548B2 (en) Object detection apparatus and object detection method
JP5042453B2 (en) Strobe control device, strobe control program, strobe control method
JP2003309854A (en) Digital camera
US20030117659A1 (en) Image reading device and method
US8233192B2 (en) Control circuit of image reader, image reader, control method of image reader, and program
JP2009276610A (en) Device and method for displaying image, and image-pickup device
US6008910A (en) Film image reading apparatus and method in which multiple images are simultaneously displayed
JP2009025686A (en) Photographing apparatus and method of controlling of the same, and program
JP7567383B2 (en) Scanner, image data production method, and control program
JP2019080181A (en) Scanner, display device, scan control program, display control program, and scan data production method
JP2006059162A (en) Tooth image correction method and device
CN117278867B (en) Image sensor chip imaging system, exposure method and device thereof and storage medium
JPH04266261A (en) Picture reader
JP2016170768A (en) Code reader, code reading method, and program
JPH11252311A (en) Image reader and record medium with image read control procedures recorded therein

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20051212

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051220

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060213

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20070314

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070327

R150 Certificate of patent or registration of utility model

Ref document number: 3944732

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110420

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130420

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130420

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140420

Year of fee payment: 7

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term