(57)【要約】【課題】撮像部からの距離が異なる複数の位置に選択的に保持される検体容器に付されたコード記号の情報を、高精度で能率よく読み取れ、安価で設計変更も容易にする。【解決手段】光学的情報読取装置１の撮像部に距離が異なる複数の位置にそれぞれ対応して、その各位置に保持される検体容器の外面に付されたコード記号を撮像して画像情報を生成する複数のカメラ２２，３２，４２を配設し、そのいずれかによって撮像されたコード記号の画像の大きさを判定し、その判定結果に応じて複数のカメラ２２，３２，４２のいずれか１つを選択し、その選択したカメラによって撮影されたコード記号の画像情報をデコード処理するようにした。【選択図】        図４
2005025417.tif 000002
【特許請求の範囲】
【請求項１】
撮像部からの距離が異なる複数の位置に選択的に保持される検体容器の外面に付されたコード記号を撮像してその情報を読み取る光学的情報読取装置であって、
前記撮像部に前記距離が異なる複数の位置にそれぞれ対応して設けられ、その各位置に保持される検体容器の外面に付されたコード記号を撮像して画像情報を生成する複数のカメラと、
該複数のカメラのいずれかによって撮像された前記コード記号の画像の大きさを判定する画像サイズ判定手段と、
該画像サイズ判定手段の判定結果に応じて、前記複数のカメラのいずれか１つを選択するカメラ選択手段と、
該カメラ選択手段によって選択されたカメラによって撮影された前記コード記号の画像情報をデコード処理するデコード手段と
を備えたことを特徴とする光学的情報読取装置。
【請求項２】
回転台上に同心円状の複数列に配設された各ホルダに保持される検体容器の外面に付されたコード記号を撮像してその情報を読み取る光学的情報読取装置であって、
前記各列のホルダに対応して固定位置に設けられ、それぞれ各列のホルダに保持される検体容器の外面に付されたコード記号を該列と交差する方向から撮像して画像情報を生成する複数のカメラを備えた撮像部と、
該撮像部の複数のカメラのいずれかによって撮像された前記コード記号の画像の大きさを判定する画像サイズ判定手段と、
該画像サイズ判定手段の判定結果に応じて、前記複数のカメラのいずれか１つを選択するカメラ選択手段と、
該カメラ選択手段によって選択されたカメラによって撮影された前記コード記号の画像情報をデコード処理するデコード手段と
を備えたことを特徴とする光学的情報読取装置。
【請求項３】
直線方向に移動する台上にその移動方向に沿う平行な複数列に配設された各ホルダに保持される検体容器の外面に付されたコード記号を撮像してその情報を読み取る光学的情報読取装置であって、
前記各列のホルダに対応して固定位置に設けられ、それぞれ各列のホルダに保持される検体容器の外面に付されたコード記号を該列と交差する方向から撮像して画像情報を生成する複数のカメラを備えた撮像部と、
該撮像部の複数のカメラのいずれかによって撮像された前記コード記号の画像の大きさを判定する画像サイズ判定手段と、
該画像サイズ判定手段の判定結果に応じて、前記複数のカメラのいずれか１つを選択するカメラ選択手段と、
該カメラ選択手段によって選択されたカメラによって撮影された前記コード記号の画像情報をデコード処理するデコード手段と
を備えたことを特徴とする光学的情報読取装置。
【請求項４】
前記カメラ選択手段は、前記画像サイズ判定手段によって判定された画像の大きさが大きいほど前記撮像部に近い位置又は列のホルダに対応するカメラを選択し、該判定された画像の大きさが小さいほど前記撮像部から遠い位置又は列のホルダに対応するカメラを選択することを特徴とする請求項１乃至３のいずれか一項に記載の光学的情報読取装置。
【請求項５】
前記撮像部の複数のカメラが、それぞれ対応する位置又は列のホルダに保持される検体容器に対して同じ撮影距離になるように位置をずらして配置された同じ固定焦点のカメラであることを特徴とする請求項３記載の光学的情報読取装置。
【請求項６】
請求項１乃至５のいずれか一項に記載の光学的情報読取装置において、前記撮像部の複数のカメラのいずれかによって撮像された画像情報の一部によって、コード記号の種類を判定するためのプレデコードを行うプレデコード手段を設けたことを特徴する光学的情報読取装置。
【請求項７】
前記プレデコード手段は、プレデコードの結果によって所望のコード記号の種類を判定できなかったときには、前記撮像された画像情報のうちの使用する情報部分を変更して再度プレデコードを行う機能を有することを特徴とする請求項６記載の光学的情報読取装置。
【請求項８】
前記カメラ選択手段は、前記プレデコード手段が所定回数プレデコードを行っても所望のコード記号の種類を判定できなかったとき、または前記デコード手段がデコードに失敗したときにも、使用するカメラを切り替える機能を有することを特徴する請求項７記載の光学的情報読取装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、医療検査、あるいは薬品や化学物質の検査等に使用される検体容器の外面に付されたバーコードや二次元コードのようなコード記号を撮像して、その情報を読み取る光学的情報読取装置に関する。
【０００２】
【従来の技術】
各種の医療検査、あるいは薬品や化学物質の検査等において、検体（サンプル）を収納するために使用される試験管等の検体容器に、その検体に関する情報を記したバーコードを付し、それを読み取ってその検体の内容を識別することが行われている。
そのバーコードを効率的に読み取るために、回転する円盤状の置台上に同心円状に複数列配設された多数のホルダに、それぞれ試験管等の検体容器を保持させ、バーコードスキャナ等の光学的情報読取装置をその置台の外側の定位置に固定し、その置台を所定角度ずつステップ回転させながら、各検体容器に付されたバーコードの情報を読み取るようにした装置が多く使われている。
その一例として、特許文献１に示すようにものがあり、その光学的情報読取装置としては特許文献２に示すようなものがある。
【０００３】
【特許文献１】
特開平９−７２９１５号公報
【特許文献２】
特開２０００−２８３８２４号公報
【０００４】
近年は検体の内容が多様で複雑になり、コード記号に表示する内容も多くなってきた。そのため、コード記号としてバーコードより情報容量が大きな二次元コードを使用する頻度が高くなってきている。
バーコードが２０文字以上の容量であるに対して二次元コードの殆どが２，０００文字以上の容量を持っている。また、二次元コードではバーコードで扱われない漢字やカナも使用される。さらに、二次元コードは、高密度印刷が可能であり、同じ面積領域であってもバーコードの２０〜１００倍の記録密度を持つものである。
【０００５】
二次元コードには、大別してスタック式とマトリックス式がある。スタック式は、バーコードを縮小して縦に複数段積み重ねた形態をしており、水平方向に長い長方形をしているものが多い。
このスタック式コードの代表的なものとしてＰＤＦ４１７が上げられる。ＰＤＦ４１７は図１９に示すように、コードを画定するためにその長手方向の両端部に、スタート（開始）パターンＳｔａとストップ（停止）パターンＳｔｏと呼ばれる特定パターンである垂直方向の黒バーと白バーを有する。そのスタートパターンＳｔａの右側とストップパターンＳｔｏの左側に、具体的な内容データの始まり及び終わりを示す標識である左インディケータＬｉと右インディケータＲｉを有する。
【０００６】
そして、スタートパターンＳｔａとストップパターンＳｔｏを除いたコードは、列と行から成り、コードワードと呼ばれるブロックによって構成される。スタートＳｔａとストップパターンＳｔｏを除いたコードの大きさは、そのコードワード単位で、列は最小１列、最大３０列（スタートパターンＳｔａからストップパターンＳｔｏの方向）、行は最小３行、最大９０行（スタートパターンＳｔａおよびストップパターンＳｔｏに沿う方向）と規定されている。
この二次元コードを撮影した画像情報をデコード処理する際、スタートパターンＳｔａとストップパターンＳｔｏを検索することにより、コード記号の画像がＰＤＦ４１７であることを判別し、たとえコード記号がスキャナに対して定位置でなくとも、容易に正しい位置を判断して正確にデコードすることができる。
【０００７】
マトリックス式は、概ね正方形の領域が碁盤の目のごとく細かく区切られた表示領域に黒と白のセルによって表示される。一例として図２０に示すようなＱＲコードがある。
このＱＲコードは、四角形の角の四隅のうち三隅に比較的大きな四角形のセルＣｅを配置し、そのセルＣｅを位置検出パターンとして用いる。これにより、コード記号が傾いて配置されていても正しい読取位置を早く発見でき、デコード処理を高速化できる。
【０００８】
そして、このような二次元コードを読み取る際には、ＣＣＤイメージセンサやＣＭＯＳイメージセンサ等の固体撮像素子によってコード記号を撮影して、その画像情報をデコード処理する方法が多く用いられている。特に、ＣＭＯＳイメージセンサは、一昔前までは、解像度の低い撮像画面しか得られなかったが、近年では安価で精度のよいものが、汎用光学部材として市場に多く出ている。
【０００９】
二次元コードは、前述したように記録密度が高く、白及び黒のブロックまたセルの大きさが非常に細かいため、通常はスキャナとコード記号（二次元コード）をかなり近接させないと読み取りが難しい。そのため、非接触型と言われるスキャナであっても、スキャナと被読取対象物とをかなり近づけて読み取っている。すなわち、手持ち式スキャナの場合は、その投光口をコード記号が付された物体に近づけ、定置式スキャナの場合は、コード記号が付された物体をスキャナの投光口に近づける。
【００１０】
また、前述した文献１に示されている被検出部材配置手段は、試験管等の被検体を収容した容器（被検出部材）を、同心円状に設けられた複数の環状回転台上にそれぞれ保持して、同心円状の３列に配列できるようにし、その最外列の外側に固定配置した符号読取装置によって、各被検出部材に付されたコード記号を読み取るようにしている。このように、被検出部材を読取装置からの距離が異なる２列、３列、４列等の複数列に保持して、その各被検出部材に付されたコード記号を順次自動的に読み取るようにすことも珍しくない。
【００１１】
【発明が解決しようとする課題】
このような場合、全ての列に保持された各被検出部材にのコード記号特に二次元コードを１台の共通の光学的情報読取装置で読み取れるようにするには、その光学的情報読取装置の撮像部（カメラ）がオートズーム機能及びオートフォーカス機能を有し、読み取り対象の被検出部材のコード記号に対してピントのあった鮮明な画像が得られるように、ズーミングやフォーカス調整をすることが必要になる。
【００１２】
しかしながら、このような撮像部のオートズームやオートフォーカス機能はフィードバック制御であるため、各被検出部材の読み取りピッチを速めようとすると制御が間に合わないこともあり、長時間稼働することによって誤差が累積的に増加し、正常に機能しなくなる恐れもある。
また、コードの種類や読み取る環境によって、オートズーム及びオートフォーカスの構成も異なるため、それらの条件ごとに最適のものを設計していくことは多大な人件費や時間がかかってしまうことになる。
特に、自動分析装置や容器情報計測装置などの医療用検査装置は全体的に高価であり、少しでも安く、かつ精度が高い光学的情報読取装置を搭載するのが望ましい。
【００１３】
この発明はこのような問題を解決するためになされたものであり、撮像部からの距離が異なる複数の位置に選択的に保持される検体容器（被検出部材）に付されたコード記号の情報を、高精度で能率よく読み取ることができ、しかも安価で設計変更も容易な光学的情報読取装置を提供することを目的とする。
【００１４】
【課題を解決するための手段】
この発明は、撮像部からの距離が異なる複数の位置に選択的に保持される検体容器の外面に付されたコード記号を撮像してその情報を読み取る光学的情報読取装置であって、上記の目的を達成するため、上記撮像部に上記距離が異なる複数の位置にそれぞれ対応して設けられ、その各位置に保持される検体容器の外面に付されたコード記号を撮像して画像情報を生成する複数のカメラと、その複数のカメラのいずれかによって撮像されたコード記号の画像の大きさを判定する画像サイズ判定手段と、その判定結果に応じて上記複数のカメラのいずれか１つを選択するカメラ選択手段と、その選択されたカメラによって撮影されたコード記号の画像情報をデコード処理するデコード手段とを備えたものである。
【００１５】
また、回転台上に同心円状の複数列に配設された各ホルダに保持される検体容器の外面に付されたコード記号を撮像してその情報を読み取る光学的情報読取装置の場合には、上記撮像部の複数のカメラを上記各列のホルダに対応する固定位置に設け、それぞれ各列のホルダに保持される検体容器の外面に付されたコード記号を該列と交差する方向から撮像するように配置すればよい。
直線方向に移動する台上にその移動方向に沿う平行な複数列に配設された各ホルダに保持される検体容器の外面に付されたコード記号を撮像してその情報を読み取る光学的情報読取装置の場合も、上記と同様に撮像部の複数のカメラを配置すればよい。
【００１６】
これらの光学的情報読取装置において、上記カメラ選択手段は、上記画像サイズ判定手段によって判定された画像の大きさが大きいほど撮像部に近い位置又は列のホルダに対応するカメラを選択し、該判定された画像の大きさが小さいほど撮像部から遠い位置又は列のホルダに対応するカメラを選択するようにするとよい。
上記撮像部の複数のカメラは同じ固定焦点のカメラでよく、それをそれぞれ対応する位置又は列のホルダに保持される検体容器に対して同じ撮影距離になるように位置をずらして配置すればよい。
【００１７】
上記撮像部の複数のカメラのいずれかによって撮像された画像情報の一部によって、コード記号の種類を判定するためのプレデコードを行うプレデコード手段を設けることができる。
そのプレデコード手段は、プレデコードの結果によって所望のコード記号の種類を判定できなかったときには、撮像された画像情報のうちの使用する情報部分を変更して再度プレデコードを行う機能を有するとよい。
上記カメラ選択手段は、上記プレデコード手段が所定回数プレデコードを行っても所望のコード記号の種類を判定できなかったとき、または上記デコード手段がデコードに失敗したときにも、使用するカメラを切り替える機能（リトライ機能）を有することができる。
【００１８】
【発明の実施の形態】
以下、この発明の好ましい実施の形態を図面を参照して説明する。
＜検体検査装置全体の構成＞
まず、この発明による光学的情報読取装置を搭載した装置の一例として医療用の検体査装置について、図１によって説明する。図１はその検体検知装置の概略を上部カバーを開いた状態で示す平面図である。
図１に示す検体検査装置１００は、円盤状の回転台１２０に垂直に多数のホルダユニット１１０が円周方向に所定の間隔で放射状に設置され、その各ホルダユニット１１０に、サンプル（検体）の入った角筒状の検体容器（試験管）８０が１個から３個保持される。その各検体容器８０の表面には、それぞれ収容したサンプルの内容を示す二次元コード記号が印刷されたラベルが貼られている。
【００１９】
この検体検査装置１００の中央部の固定位置に、この発明による光学的情報読取装置１の少なくとも撮像部が、各列の所定位置のホルダユニット１１０に向けて、そこに保持される検体容器に付されたコード記号を撮像できるように設置されている。この撮像部を含む光学的情報読取装置１の詳細については後述する。この例では、光学的情報読取装置１を検体検査装置１００の中央部に設置しているが、検体検査装置１００の外側の固定位置に設置してもよい。さらに、光学的情報読取装置１の撮像部のみを所定位置のホルダユニット１１０に対向する位置に設け、信号処理部などは別に設けてもよい。
【００２０】
また、この例では、回転台１２０上の各ホルダユニット１１０に、回転台１２０の径方向に位置をずらしてそれぞれ３個のホルダ１１０ａ，１１０ｂ，１１０ｃが設けられ、その最も内側のホルダ１１０ａは検体容器８０ａを、中間位置のホルダ１１０ｂは検体容器８０ｂを、最も外側のホルダ１１０ｃは検体容器８０ｃをそれぞれ保持する。その内側の各ホルダ１１０ａは内側のホルダ列を形成し、中間の各ホルダ１１０ｂは中間位置のホルダ列を形成し、外側の各ホルダ１１０ｃは外側のホルダ列を形成している。
【００２１】
そして、回転台１２０が回転することにより、順次撮像部の撮像位置にきた検体容器のコード記号を撮像してその情報を読み取る。ここで、各ホルダユニット１１０に何個の検体容器８０（前述の８０ａ〜８０ｃを区別しないときは８０とする）を保持させるかは任意であるが、３個保持されているときは一番内側のホルダ１１０ａに保持された検体容器８０ａに付されたコード記号のみを読み取る。
なお、この実施形態の検体検査装置１００は、円盤状の回転台１２０上に同心円状に複数列（図１の例では３列）のホルダを配設したが、図２に示す検体検査装置２００のように構成してもよい。
【００２２】
この図２に示す検体検査装置２００は、ベルトコンベアのように直線方向（矢印方向）に移動する移動台２２０上にその移動方向に所定の間隔で多数のホルダユニット２１０を配設し、その各ホルダユニット２１０に移動台２２０の移動方向に直交する方向に位置をずらして複数（図２では３個）のホルダ２１０ａ〜２１０ｃを設け、そこにそれぞれ検体容器８０ａ〜８０ｃを保持させることができるようにしたものである。したがって、各ホルダユニット２１０のホルダ２１０ａ〜２１０ｃによって、移動台２２０の移動方向に沿う平行な複数列（図２の例では３列）のホルダ列を形成している。
【００２３】
各ホルダユニットにそれぞれ検体容器を保持可能な４個以上のホルダを設けて、４列以上のホルダ列を形成することもできる。
そして、所定位置のホルダユニット２１０に対向するように、固定位置にこの発明による光学的情報読取装置１の少なくとも撮像部（スキャナ）を配設し、その最前列のホルダに保持される検体容器に付されたコード記号を撮像してその情報を読み取れるようにする。
上述したいずれの検体検知装置の場合にも、各列のホルダをそれぞれ個別に回転あるいは直線移動できる台上に設けて、撮像部に対向する位置の内側の列のホルダには検体容器を保持させずに空けておき、その後方の列のホルダに検体容器を保持して移動させるようにすれば、その検体容器に付されたコード情報も読取ることができる。
【００２４】
また、上述した各実施形態では、光学的情報読取装置を固定位置に設置して、検体容器を保持するホルダ側（検体容器保持部材）を移動させる構成にしたが、それとは反対に検体容器保持部材を固定して、光学的情報読取装置あるいはその撮像部のみを回転あるいは直線移動させるようにしてもよい。すなわち、光学的情報読取装置の撮像部と検体容器保持部材とは相対的に順次移動して、各ホルダユニットに保持された検体容器に付されたコード記号を順次読み取れるようにすればよい。
【００２５】
＜光学的情報読取装置の構成＞
図１，図２に示した光学的情報読取装置（スキャナ）１の構成を図３から図５によって説明する。図３は光学的情報読取装置の内部を同じホルダユニットに保持される３個の検体容器と共に示す平面図、図４はその側面図、図５はそのメインボードの構成を示すブロック図である。
この光学的情報読取装置１は、図３および図４に示すように、投光口２ａを有する筐体２内に、メインボード１０と支持板３とが平行に立設され、その支持板３に撮像部を構成する３個のカメラボード２１、３１，４１とＬＥＤボード５０が取り付け固定されている。筐体２は組み立ておよび保守、点検などを容易に行えるように、開閉可能に構成されている。メインボード１０と支持板２も筐体２に対して着脱可能に取り付けられる。
【００２６】
各カメラボード２１、３１，４１には、それぞれカメラ２２，３２，４２が搭載されており、そのカメラ２２，３２，４２は、それぞれ撮像デバイスとして１／４インチ３３万画素ＶＧＡ対応Ａ／Ｄコンバータ内蔵のＣＭＯＳイメージセンサ４と、そのＣＭＯＳイメージセンサ４のイメージエリアに検体容器に付されたコード記号の画像を結像するように、焦点距離及び位置が設定されたレンズ５とを備えている。
【００２７】
そして、カメラ２２が投光口２ａに対して一番近い場所に位置し、その数十ミリメートル後方にカメラ３２が、さらに数十ミリメートル後方にカメラ４２がそれぞれ配置されている。当然のことながら、カメラボード２１，３１，４１は、互いに他のカメラの撮像の障害にならないように、図４に示すように各カメラ２２，３２，４２の視野をずらして配置している。この実施例では、後方のカメラほど垂直位置を高くするように配置しているが、互いのカメラが撮像の障害にならなければどのような配置にしてもよい。
【００２８】
さらに、各カメラ２２，３２，４２によって適切な撮像を行えるようにするため、投光口２ａに近いカメラボード２１には投光用ＬＥＤ２３が搭載されている。さらに読取角度（位置）によって異なる投光を補うために、ＬＥＤボード５０に２個のＬＥＤ５１，５２が搭載されている。これらのＬＥＤ２３とＬＥＤ５１，５２は各カメラ２２，３２，４２に共用であり、その発光のタイミングは全てが同期して発光される。
【００２９】
この実施例では、各カメラ２２，３２，４２は、いずれも同じ固定焦点のカメラであり、カメラ２２は最外列のホルダに保持される検体容器８０ｃ、カメラ３２は中間列のホルダに保持される検体容器８０ｂ、カメラ４２は最内列のホルダに保持される検体容器８０ａに、それぞれ付されたコード記号に合焦する位置に配設されている。したがって、フォーカス調整が不要なため、構造が簡単な小型で安価なカメラを使用することができる。
しかし、これに限るものではなく、それぞれフォーカス調整が可能なカメラ任意の位置に配置し、それらを検体容器８０ａ〜８０ｃに個別に合焦するようにフォーカス調整しておくようにしてもよい。
【００３０】
また、図３の平面図における３個の検体容器８０ａ〜８０ｃの並び方向（一点鎖線Ｌａで示す）と３個のカメラ２２，３２，４２の光軸方向（一点鎖線Ｌｂで示す）とは、角度θだけ傾けており、検体容器の表面による正反射光がカメラ２２，３２，４２に入射しないようにしている。
メインボード１０には図５に示すように、３２ビットＲＩＳＣ（縮小命令セットコンピュータ）のＣＰＵ１１と、二次元コードの画像データに対する二値化処理、それに伴う閾値算出処理、平滑化処理、エッジ強調処理及びランレングス処理などデコード処理を行うプログラムが記憶されるＦＰＧＡ（フィールド・プログラマブル・ゲートアレイ）１２が搭載されている。
【００３１】
さらにメモリとして、画像処理のワークメモリとしてのＳＤＲＡＭ１３と、ソフトウェア及びメモリスイッチ情報を格納するフラッシュＲＯＭ１４とが搭載されている。
そして、カメラボード２１，３１，４１及びＬＥＤボード５０が、それぞれケーブル２５，３５，４５，４６及びコネクタ２６，３６，４６，５６を介してメインボード１０に接続され、内部の制御線やデータ線によってＣＰＵ１１およびＦＰＧＡ１２に接続される。
【００３２】
ＣＰＵ１１によってデコードされたデータは、コネクタ１６に適宜接続されるホストコンピュータへ送られる。そのホストコンピュータとのデータ通信は通信ポートであるＲＳ２３２Ｃインタフェースによって、例えば９６００ｂｐｓの速度で行う。このホストコンピュータとの通信方式はこれに限らず、高速シリアルバスであるＵＳＢポートなどを用いてもよい。
メインボード１０にはこの他に、コネクタ１６から電源として供給される５Ｖの直流を３．３Ｖの直流に変換するＤＣ／ＤＣコンバータ１７、それをさらにＣＰＵ１１に供給するための１．９Ｖの直流に変換するＤＣ／ＤＣコンバータ１８、ＦＰＧＡ１２に供給する２．５Ｖの直流に調整する３端子レギュレータ１９と、ＣＰＵ１１のクロックパルス（１３．９ＭＨｚ）を発振する水晶発振器２７およびリセット回路２８等が搭載されている。
【００３３】
＜ＣＭＯＳイメージセンサの構成及び動作＞
次に、各カメラボード２１，３１，４１に各カメラ２２，３２，４２の撮像デバイスとして搭載されているＣＭＯＳイメージセンサ（以降「ＣＭＯＳセンサ」称す）４について、図６を参照しながら説明する。
このＣＭＯＳセンサ４は、各カメラ２２，３２及び４２において全て同じ構成になっており、イメージエリア２２１、ＣＤＳ（二重相関サンプリング）回路２２２、ＡＧＣ回路２２３、Ａ／Ｄ変換回路２２４、タイミングジェネレータ２２５、およびコマンドデコーダ回路２２６と基準電圧発生回路（ＶＲＥＦ）２２７を備えている。
【００３４】
イメージエリア２２１は、多数のフォトダイオードが配列された受光部であり、ＣＭＯＳセンサで取り込むべき画像は図３及び図４に示したレンズ５によってここに結像される。そして、その画像情報はフォトダイオードに電荷として蓄積され、増幅トランジスタを介して電圧信号として取り出される。
ＣＤＳ回路２２２は、このイメージエリア２２１から取出される電圧信号のノイズを低減させるためにサンプリング処理を行う。ＡＧＣ回路２２３はそのサンプリング後の信号がＡ／Ｄ変換回路２２４で適正に処理されるように、基準電圧発生回路（ＶＲＥＦ）２２７からの基準電圧によってゲイン調整する回路である。Ａ／Ｄ変換回路２２４はそのゲイン調整後の信号をＡ／Ｄ変換し、変換後のデジタル信号を図５に示したＦＰＧＡ１２へ送信する回路である。また、そのデジタル信号を制御信号として基準電圧発生回路（ＶＲＥＦ）２２７を介してＡＧＣ回路２２３に帰還させる。
【００３５】
これらのＣＭＯＳセンサ４の各回路の制御は、図５に示したＣＰＵ１１によって行われる。ＣＭＯＳセンサ４で処理された画像情報に相当するデジタル信号はＦＰＧＡ１２に入力され、そこで後述するプレデコードが行われ、それらのデータが一度ＳＤＲＡＭ１３に記憶される。ＣＰＵ１１はこれらのデータを元にデコード（本デコード）処理を行う。その結果がＲＳ２３２Ｃ１５によって図示していないホストコンピュータに送信される。
【００３６】
＜スキャナの動作・ハードウエア＞
次に、この光学的情報読取装置（以下ここでは「スキャナ」と称す）１がどのように各検体容器に付された二次元コード記号の読み取りを行うかについて説明する。なお、以下の説明において、信号名に括弧書きで付記する名称は、図１４に示すタイミングチャートに使用している信号の名称である
スキャナ１は、ＣＰＵ１１から出力される図１４に示すトリガ信号（ＴＲＧ１ｎ）をローレベルにするとコード記号の読み取り開始状態になる。あるいは、いずれかの検体容器８０に貼付されたコード記号が印刷されたラベルいずれかのカメラが捕らえ、その画像をＣＰＵ１１が検知することによって、コード記号の読み取りを開始するオートトリガの機能を設けてもよい。
【００３７】
この実施例では、トリガ信号（ＴＲＧ１ｎ）の立下りエッジを検出すると、コード記号の読取シーケンスに入る。そして、３箇所の異なる位置に配置されたカメラ２２，３２，４２のどれでコード記号を撮像するのが最適かを検索する。
その検索のためのカメラの選択（切替え）は、前述した検体容器８０ａ〜８０ｃに近い方から、カメラ２２（一番近い）→カメラ３２（中間）→カメラ４２（一番遠い）の順番で行う。
ＦＰＧＡ１２内のカメラ２２の選択信号（Ｃ３＿ＳＥＬ）、カメラ３２選択信号（Ｃ２＿ＳＥＬ）及びカメラ４２選択信号（Ｃ１＿ＳＥＬ）の何れかがローレベルの時に、その信号に対応したカメラが選択される。この選択はＦＰＧＡ１２の内部レジスタによってソフトウェアの切り替え制御で行う。
【００３８】
＜スキャナの動作・ソフトウエア＞
○ソフトウエア処理の概要
次に具体的に、コード記号の読取シーケンスのソフトウエアに切り替わった時、カメラの切り替えから画像情報のデコードまでがどのように行われるかを説明する。なお、ここで読み取るコード記号は、図２１によって前述した二次元コードのＰＤＦ４１７とし、以後単に「ＰＤＦ」と略称する。
この実施例では、コード記号を３つのカメラ２２，３２，４２のうちどれで撮像した画像情報をデコードするのが最適で精度が高いかを判断するために、撮像からプレデコードまで行ってみる。そして、後述するコードサイズ比較のとき、以下のケースによって選択したカメラが適しているかどうか判断する。
図７〜図９は、それぞれＣＭＯＳセンサで撮像したときの画像の画面を示す。
【００３９】
○カメラと画像の対応
（１）  画像が図７のように小さければ、一番外側の検体容器８０ｃに付されたコード記号と認識し、それに最適の距離にあるカメラ２２を選択する。
（２）  画像が図８のように中程度の大きさであれば、中間位置の検体容器８０ｂに付されたコード記号と認識し、それに最適の距離にあるカメラ３２を選択する。
（３）  画像が図９に示すように大きければ、一番内側の検体容器８０ａに付されたコード記号と認識し、それに最適の距離にあるカメラ４２を選択する。
適切なカメラを確実に選択するために、この実施例ではこの（１）〜（３）の切替を４巡回する（３×４＝１２回切り替える）ように設定している。
【００４０】
○メインフローの処理
次に、図１０のフローチャートを参照しながら、この実施例のＣＰＵ１１を中心とするソフトウエアによる処理について説明する。なお、図１０およびその説明において「ステップ」を「Ｓ」と略称する。
このスキャナ１が図１０に示す処理を開始すると、ＣＰＵ１１は最初にＳ１１でカメラの切替設定を行う。１回目はカメラボード２１のカメラ２２を選択設定する。次にＳ１２でトリガ信号（ＴＲＧ１ｎ）の検出をチェックし、検出されればＳ１３でカメラ２２のスイッチをオンして画像撮影を実行させ、検出されなければエラーなので処理を終了する。ここでは、検体容器８０ａ〜８０ｃのいずれかの表面に付されたＰＤＦを撮像する。
【００４１】
画像の撮影は、カメラ２２によって図１１に示されるように行われる。すなわち、一画面が６４０×４８０画素で構成され、画面の左上隅から右に水平方向に撮像され、１ラインが終わると順次垂直下方向のラインに移り、全画面を撮影する。なお、この実施例では後述する本デコードを高速化するために、図１２に示すように画像をブロックに分ける。具体的には、直前に撮影された２つの水平ラインを図５に示したＦＰＧＡ１２のバッファメモリに格納し、その際、６４０画素のデータから成る水平ラインを３２画素から成る２０個のブロックに分けるものである。これをノーマル画像と設定する。
【００４２】
さらに、撮像しながらエッジ強調をしたエッジ強調画像を作成する。これは、上述の方法で撮像しながら、ラプラシアンフィルタを用いる。
ｘ，ｙの関数はｆ（ｘ，ｙ）に対するラプラシアンは、数１で定義される。
【００４３】
【数１】
2005025417.tif 000003
【００４４】
２次微分することで緩やかな濃度勾配でも、濃度が変化するエッジ部分が強調され、優れたエッジ強調処理が行われる。
ｘに対する２次微分は、数２により１回目はｉ＋１とｉ、２回目はｉとｉ−１で行う。２次元におけるラプラシアンは、数３で示される。
【００４５】
【数２】
2005025417.tif 000004
【００４６】
【数３】
2005025417.tif 000005
【００４７】
このような数式で示されるフィルタを用いることによって、白ブロック／セルと黒ブロック／セルとの境界、あるいはコード記号とそれが添付されている物体表面との境界が明確になる画像が設定される。
また、さらに上述の撮像を行いながら、二値化処理画面も作成していく。その際、誤差拡散方法を用いて、周辺の画素と比較しながら閾値を設定していくプログラムを用いる。
【００４８】
具体的には、画像撮影のときに説明した３２画素を１ブロックとする６ブロックのコントラストのマトリックスを考える。それは、図１５に示すように一つの画素ｗ０に注目し、その周辺の左上ｗ１、真上ｗ２、右上ｗ３、左横ｗ４、右横ｗ５の５方との比較を行う。画素ブロックｗ０〜ｗ５のそれぞれの明るさＶの最大値Ｖｍａｘと最小値Ｖｍｉｎとを求め、その差Ｖｍａｘ−ＶｍｉｎをコントラストＣｗ０〜Ｃｗ５とする。
なお、この演算は先に説明したＣＭＯＳセンサによって図１０におけるＳ１４の光量測定で行われ、撮像情報とともにＦＰＧＡ１２のメモリバッファに格納されている。また、この時、基準となるコントラストを予め設定する。ここでは仮にＣｃ＝３０とする。
【００４９】
そして、画素ｗ０の周辺画素、つまりｗ０に対して左上ｗ１、真上ｗ２、右上ｗ３、左横ｗ４、右横ｗ５の閾値計算に用いる係数を設定する。
この閾値設定は常に隣接した画素、特に右横のｗ５と比較して重み係数を設定するものである。これは、常に走査し終えたブロック及び次に走査するブロックと比較しながら閾値を設定していくので、正確な二値化が望める。図１５の下部に示すｃａｓｅ１〜ｃａｃｅ４は、各画素ブロックｗ０〜ｗ５の重み係数の例を示している。
このように、撮像の際には、ノーマル画像、エッジ強調画像、及び二値化処理画像の３つが作成され、ＳＤＲＡＭ１３に記憶される。これら３つの画像の作成は、後述する本デコードを行うために必要な処理である。
【００５０】
図１０のフローチャートに戻って、次にＳ１４で撮像した画像データの光量を計測する。なお、各カメラのゲイン値及びシャッタスピードを予め設定しておく。また、後述する本デコードに必要なコントラストもここで計測される。
次のＳ１５はカメラの切替回数が４巡回以上か否かをチェックする判断であるが、今回はカメラ２２の初回の切替であるので、そのままＳ１６のプレデコードの処理に進む。
【００５１】
Ｓ１６のプレデコードの処理では、前述した二次元コードＰＤＦのスタートパターンとストップパターン、つまりコード記号の両端を検出する。なお、ここで使用する画像は、基本的に前述したノーマル画像である。そのため、撮影された画像に仮想的に３つの基準ラインを設定する。例えば、その基準ラインは、図１３に示されるように、画像の上端から１／３程度の位置に一つ（Ｌ１）、そこから下方に少しずつ離れた位置に２つ（Ｌ２，Ｌ３）で基本的に３つ設定されている。但し図１３においては水平な直線に見えるが、必ずしもそうである必要はなく、基準ライン自体は傾きを持っていてもかまわない。この３つの基準ラインの画像データを順次用いて、コードの特徴を検出するためのプレデコードを３回まで行う。
【００５２】
前述したようにＰＤＦは両端のパターンに特徴があるので、スタートパターンとストップパターンが見つかりさえすればＰＤＦであることが認識できる。具体的にはスタートパターンは“８１１１１１１３”という黒バー及びスペースの並びで定義され、ストップパターンは黒バーで終わる“７１１３１１２１”という黒バー及びスペースの並びで定義される。
【００５３】
ここでは、詳細は省くが、この発明によるスキャナは、ＰＤＦ以外のコード記号の読み取りにも十分対応できる。例えば、前述したＱＲコードであればコードパターンの角にある３つの位置決めパターンを見つけることをプレデコードとして設定しておけば、ＱＲコードの読み取りであっても問題はない。もちろん、他の二次元コードあるいはバーコードであっても、そのコードの特徴となる部分を検出するように設定すれば同様にその種類を検出できる。さらに複数のコードが入り交じっている場合であってもこのプレデコードに数種のコードの特徴パターンを検出できるように設定しておけば、その判別が可能である。
【００５４】
コードの種類によって特徴となるパターンは異なるので、ＰＤＦ以外のコード記号を検出する場合の基準ラインは、図１３に示した例とは異なることになる。例えばＱＲコードを検出するのであれば、４５°に傾けた基準ラインも必要と考えられる。しかしながら、検体容器８０はホルダユニット１１０によって固定保持されているので、コード記号の向きや方向性を検索する必要はない。いかなるコード記号であっても上述した３回程度のプレデコードで判断が可能である。
【００５５】
次に、Ｓ１７でＰＤＦが検出できたか否かをチェックする。ステップＳ１６でスタートパターンとストップパターンが検出できれば、その画像はＰＤＦである可能性が高いと判断し、Ｓ１８のコードサイズの判定処理に進む。検出できなければＰＤＦでないと判断して、リトライループ１のＳ３１へ進む。
Ｓ１８のコードサイズの判定処理では撮像した画像の大きさを判定する。すなわち画像サイズ判定手段の機能を果たす。そして、このときはカメラ２２が選択されているので、図７に示したような小さいサイズであることが確認できれば、このまま本デコードしてよいのでＳ２３の本デコード処理に進む。画像サイズが図７に示したサイズよりも大きければ、カメラ２２による撮影画像を本デコードしても精度が期待できないので、再度プレデコードを行うために、リトライループ１のステップＳ３１へ進む。
【００５６】
Ｓ２３で本デコード処理を行った場合は、次にＳ２４で本デコードが正しく行われたか否かを検出し、成功していればＳ２５でそのデコード結果のデータをホストコンピュータへ送信して処理を終了する。
本デコードが成功しなければ、カメラの選択違いあるいはプレデコードが成功しなかったなど、エラーの可能性があるので、リトライループ１のステップＳ３２へ進む。本デコードの詳細については後述する。
【００５７】
○リトライループ１：カメラ切替設定
次にカメラの切替動作に係るリトライループ１について説明する。
前述したＰＤＦ検出（Ｓ１７）及びコードサイズの判定（Ｓ１８）の処理がＮＯだった場合は、カメラの選択が正しくなかった可能性がある。また、何らかの事情で画像が読み取れない場合もありうる。そこで、カメラの切替設定のＳ１１に戻るが、その前にリトライループ１にかけ、プレデコード以降の処理が正しく行われていたか否か判定する。
【００５８】
まず、Ｓ３１でプレデコードがプログラム通り３回まで行われたか否か判定する。このＳ３１では、Ｓ１６においてプレデコードを３回まで行った事実が確認できれば（３回以内でなくなると）、ステップＳ１１へ戻るが、３回以内であればもう一度プレデコード（Ｓ１６）に戻る。
また、Ｓ２３の本デコード後、Ｓ２４の判断でＮＧとなりＳ３２へ進むと、以前のステップにおいてカメラの切換が前述した４巡回行われたかどうかを確認する。４巡回行われていれば、Ｓ１３の画像撮影以降の処理に何からの不都合があったと判断しＳ１３の画像撮影に戻る。４巡回行われていなければ、Ｓ１１のカメラ切替設定に戻る。
【００５９】
Ｓ１１のにおける２回目のカメラ切替設定では、２番目のカメラ３２に切替設定する。その後のＳ１２以降の処理は前述した初回の処理と同じである。そして、Ｓ１７のＰＤＦ検出やＳ１８のコードサイズの判定でＮＯになるとＳ３１へ進み、Ｓ２４で本デコードに失敗した場合にはＳ３２へ進んで、それぞれリトライを行い、Ｓ３１又はＳ３２でＮＯになるとＳ１１へ戻り、次に３番目のカメラ４２に切替設定し、以下同様の処理を行う。
このように、本デコードが成功するまで、カメラ２２（近い）→カメラ３２（中間）→カメラ４２（遠い）の切替えの巡回を４回まで行う。その４巡回の時間は２〜２．５秒である。大抵の場合、この４巡回以内でデコードは成功する。
【００６０】
○リトライループ２：光量変化のときの処理
しかしながら、何らかの事情で撮像条件が変わってしまうということは十分に考えられる。例えば、検体検査装置のカバーが何らかの不都合で開いてしまい、光量条件が変わってしまう場合などである。また、読み取るコード記号の種類を変更するために故意にカバーを開ける場合もある。ＰＤＦの読み取りからＱＲコードの読み取りに変更したいような場合がその一例である。
そのような場合は、ステップＳ１５でカメラ切替が４巡回以上行われており、すなわち４巡回しても正確なデコードが行われない場合は、Ｓ４１〜Ｓ４３によるリトライループ２に向かう。
【００６１】
このリトライループ２では、まずＳ４１で光量が一定範囲内か否かを判定する。光量が一定範囲内か否かは事前に調べておいた明るさヒストグラムから判断される。例えば、よく用いられる白黒２５６階調において１４０以上２５０未満の場合であれば光量は適切である。この光量範囲内であれば、Ｓ１６のプレデコードに進み、この光量範囲外、すなわち１４０未満あるいは２５０以上であれば、Ｓ４２でゲイン調整を２０回以上行ったか否かを判断し、行っていなければＳ４３でゲイン再調整をする。ゲイン再調整では、光量を最適化するために事前に設定されたゲイン値となるようにゲイン調整を何回か行う。この例では２０回程まで行う。
【００６２】
そのゲイン再調整を行うごとにＳ１１のカメラ切替設定に戻って、撮影するカメラを切り替える。ゲイン再調整を２０回行ってもゲイン値が最適化されなければ、それ以上ゲイン再調整をせずにＳ１１のカメラ切替設定に戻って、撮影するカメラを切り替える。Ｓ４１の光量判定でＯＫになるまで、このリトライループ２の処理を繰返す。
この場合は、前述のように何らかの事情で撮像条件が変わっている場合が多いが、それが復旧すればＳ４１の光量判定でＯＫになり、以後のプレデコードおよび本デコードに成功するはずである。
【００６３】
＜カメラ切替のハードウエア信号処理＞
次に、上述のカメラ切り替えのハードウエアにおける信号処理について、図１にタイミングチャートを参照して説明する。
トリガ信号（ＴＲＧ１ｎ）の立下りエッジの検出後、最初に作動すべきカメラ２２を選択するために、ＦＰＧＡ１２内のカメラ２２の選択信号（Ｃ３＿ＳＥＬ）をローレベルにする。
この時、ＣＭＯＳセンサ４に対してクロック信号を同期させて、シリアルデータ（Ｃ＿ＳＤＡＴＡ）信号によりシャッタースピード及びゲイン値を設定する。この時のシャッタースピードとゲイン値が上述のソフトウエアで説明したリトライループ２の基準値となる。
【００６４】
クロック信号及びシリアルデータ（Ｃ＿ＳＤＡＴＡ）信号は、３つのカメラ２２，３２，４２に対して共通に与えられる。
また、カメラ２２のイネーブル信号（Ｃ３＿ＥＮ）、カメラ３２のイネーブル信号（Ｃ２＿ＥＮ）、カメラ４２のイネーブル信号（Ｃ１＿ＥＮ）がそれぞれ出力されることによって、それぞれの信号に対応するカメラ選択信号（Ｃ３＿ＳＥＬ），（Ｃ２＿ＳＥＬ），（Ｃ１＿ＳＥＬ）が出力され、このカメラ選択信号がローレベルのカメラが選択設定される。
【００６５】
まず、カメラ選択信号（Ｃ３＿ＳＥＬ）がローレベルになるので、カメラ２２を選択してそのシャッタースピード及びゲイン値を設定した後、そのカメラ２２が撮像した画像データを図５のＳＤＲＡＭ１３に転送する処理を行う。すなわち、カメラ２２の垂直同期信号がロー状態のとき、ＦＰＧＡ１２の内部レジスタのＤＭＡをスタートさせる。このときＦＰＧＡ１２は、カメラ２２の垂直同期信号の立ち上がりの状態で、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）リクエスト信号（ＤＲＥＱ０ｎ）をローレベルにする。これによってＣＰＵ１１はアクノリッジ信号をローレベルにして、ＦＰＧＡ１２からＳＤＲＡＭ１３へのデータ転送が行われる。
【００６６】
そのＳＤＲＡＭ１３に転送されたデータをもとに、ソフトウェアによってカメラ２２で撮像すべきデータであったかどうか判断する。つまり撮像された画像が図７に示した小サイズの画像であるか否か判断する。その判断をし終わるとカメラ選択信号（Ｃ３＿ＳＥＬ）はハイレベルになる。
このとき、撮像された画像のサイズが小サイズに該当しないと判断された場合は、次のカメラ切替設定を行う。すなわち、カメラ選択信号（Ｃ２＿ＳＥＬ）をローレベルにしてカメラ３２を選択し、そのシャッタスピード及びゲイン値を設定する処理を行う。
【００６７】
そして、カメラ３２の垂直同期信号の立ち上がりでＤＭＡリクエスト信号（ＤＲＥＱ０ｎ）をローレベルにし、ＦＰＧＡ１２からＳＤＲＡＭ１３へのデータ転送を行わせる。その転送されたデータに基づいて、カメラ３２によって撮像した画像のサイズが図８に示した中サイズか否か判断し、その判断をし終わるとカメラ選択信号（Ｃ２＿ＳＥＬ）はハイレベルになる。
ここで、撮像された画像のサイズが中サイズに該当しないと判断された場合は、さらに次のカメラ４２に切り替え、同様の処理を行う。この場合には、カメラ４２によって撮像した画像のサイズが図９に示した大サイズか否かを判断し、その判断をし終わるとカメラ選択信号（Ｃ１＿ＳＥＬ）はハイレベルになる。
【００６８】
以上が、カメラ切替設定の１巡のハードウエア上の説明である。
そして、図１４に示すタイミングチャートでは、カメラ４２で読める位置にコード記号がある場合、カメラ選択信号（Ｃ１＿ＳＥＬ）がローレベルで、カメラ４２によって撮像した画像のサイズが図９に示した大サイズで適切であると判断されたので、続いて本デコード処理を行い、その処理が完了したら、デコードしたデータを図５に示したインタフェース回路であるＲＳ２３２Ｃ１５を介して、ホストコンピュータに転送して処理が完了する。
【００６９】
＜本デコードの説明＞
次に、図１０のＳ２３で行う本デコードの処理について説明する。この本デコードは、コードの種類によって処理が異なる。ここでは、代表的な例としてＰＤＦ４１７とＱＲコードについて説明する。
【００７０】
○ＰＤＦ４１７の場合
ＰＤＦ４１７を本デコードする際には、前述したノーマル画像とエッジ強調画像とを使用する。ここでは、分解能を上げるためにランレングス符号化処理を行う。
まず、一般的に行われているランレングス処理について図１６及び図１７を参照して説明する。前述したように二次元コード画像は水平ラインを複数重ねることによって構成される図形と考えられる。具体的には、図１６の（ａ）に示すように、第１水平ラインがＡ、第２水平ラインがＢ、図示していない第３水平ラインがＣと続くものである。ここで、第１水平ラインＡは、左から順番に黒・黒・………・黒・白・白・黒・黒・黒・黒で表示され、第２水平ラインＢは、黒・白・白・黒・……・白・白・白・黒・……・黒と表示されるものであるとする。
【００７１】
このコード記号画面を上から垂直方向に１ラインずつランレングス符号処理を行うと、第１水平ラインＡは図１６の（ｂ）に示すように｛黒１０・白２・黒４｝というデータ列、第２水平ラインＢは図１６の（ｃ）に示すように、｛黒１・白２・黒５・白３・黒５｝というデータ列に変換される。
【００７２】
この符号化処理の際に閾値が必要となる。その閾値を求めるには、図１７に示すブロックａ自体を含む水平ラインの前後６４画素の明るさを用いる。つまり、ブロックａの閾値を求めるには、前方１６画素（プロックｂの後半）＋ブロックａ＋後方１６画素（ブロックｃの前半）からなるブロックＡ、ブロックｂの閾値を求めるには、前方１６画素（ブロックｄの後半）＋ブロックｂ＋後方１６画素（ブロックｃの前半）からなるブロックＢ、ブロックｃの閾値を求めるには、前方１６画素（ブロックａの後半）＋ブロックｃ＋後方１６画素（ブロックｅの前半からなるブロックＣの明るさを用いる。
【００７３】
そしてランレングスの閾値は、各ブロックＡ，Ｂ及びＣの平均値とする。
具体的には
ブロックａ：閾値ｔｈａ＝（ｍａｘＡ＋ｍｉｎＡ）／２
ブロックｂ：閾値ｔｈｂ＝（ｍａｘＢ＋ｍｉｎＢ）／２
ブロックｃ：閾値ｔｈｃ＝（ｍａｘＣ＋ｍｉｎＣ）／２
によって求められる。
以上の閾値に基づいて、前述したランレングス処理を行う
【００７４】
上述のように、ランレングス処理においても近接する画素及び複数の画素から構成されるブロックと関連づけて閾値を設定することによって、的確なランレングス処理を行ことができる。
また、対応ブロックの前方及び後方画素の数は、ブロック数の１／２の１６画素としているが、全体の画素数あるいは計算手段によって１／３あるいは１／４でもかまわない。
このような符号化処理をまず前述したノーマル画像で行ってみる。そのとき処理がうまくいかない場合には、前述のエッジ強調処理画像で行ってみる。実験の結果、上記いずれかの画像でランレングス符号化処理が成功することが判った。この処理が終われば、ＰＤＦ４１７としての解析処理を確実に行える。
【００７５】
ランレングス符号化は圧縮処理も伴なうが、図１７に示した方法によって二値化処理を行うことによって分解能（解像度）を上げることを目的としている。その後、ＰＤＦ４１７を実際に解析して情報を読み取る作業を行い、その読取った情報をホストコンピュータへ送信する。
【００７６】
○ＱＲコードの場合
次に、ＱＲコードの本デコード処理について説明する。ＱＲコードで本デコードする際には、前述したノーマル画像、エッジ強調画像、及び二値化処理画像を全て使用する。ここで、分解能を上げるためにランレングス符号化処理を行うことは、ＰＤＦ４１７で本デコードする場合と同様である。
四角形の位置検出パターンを見つけるために、図１０におけるＳ１６のプレデコードでランレングス符号化処理を行う場合もある。その場合には、本デコードで歪補正・セル抽出を行い、解析して情報を読み取り、その読取った情報をホストコンピュータへ送信する。
【００７７】
ここでは、読取対象のコード記号がＰＤＦ４１７とＱＲコードの場合の本デコードについて説明したが、いかなるバーコードあるいは二値化処理画像のうちのいずれかあるいは全てをデコードすることにより、そのコードを読むことが可能である。
以上が、この実施例で行う図１０におけるステップＳ２３の本デコードの処理である。Ｓ２４で本デコードの成功が確認されたら、Ｓ２５でその結果であるコードデータをホストコンピュータに送信する。
【００７８】
＜他の実施例のソフトウエア＞
この発明の他の実施例のソフトウエアについて、図１８に示すフローチャートによって説明する。この実施例では、メインカメラを設定して撮像を行い、その画像情報に基づいて直接的に３つのカメラの選択を行うようにする点が、図１０によって説明した前述の実施例と相違する。
この例では、メインカメラを読み取り対象から最も近いカメラ２２とする。まず、スキャナ１が作動するとＳ１１１でメインカメラとしてカメラ２２を選択設定する。Ｓ１１２のトリガ検出の判断からＳ１１７のＰＤＦの検出までの処理は、図１０におけるＳ１２からＳ１７までの処理と同様である。
【００７９】
次のＳ１１８のコードサイズの判定では、予めＳＤＲＡＭ１３に前述の「カメラと画像の対応」のプログラムを呼び出し、図７〜図８によって説明した前述の（１）（２）（３）のうちどの画像サイズと適合するか判定する。（１）の小サイズであれば、Ｓ１２０で現在使用しているカメラ２２をそのまま用いるように設定し、（２）の中サイズであれば、ステップ１２１でカメラ３２に切り替え、（３）の大サイズであれば、Ｓ１２２でカメラ４２に切り替える。
【００８０】
ただし、カメラ２２に設定した場合は画像撮影済みであるからそのままＳ１２５へ進んで本デコードの処理を行えばよいが、カメラ３２又はカメラ４２に設定した場合には、ステップ１２３で改めて画像撮影をし、Ｓ１２４で光量計測を行った後、Ｓ１２５の本デコードの処理を行う必要がある。ここでも、確実にデコードを行うために、カメラの切替は４巡回までできるように設定しておく（実際にはメインカメラ設定を４回まで行うということ）。
【００８１】
その他のリトライループ１を形成するＳ１３１とＳ１３２、リトライループ２を形成するＳ１４１〜Ｓ１４３の処理も、図１０におけるＳ３１とＳ３２、およびＳ４１〜Ｓ４３の処理と同じであるからそれらのステップの説明は省略する。この実施例では、前述したスキャナ１の構成およびハードウエアの設計を変更する必要はない。また、条件に応じてメインカメラとして他のカメラを選択設定するプログラムに変えてもよい。
【００８２】
【発明の効果】
以上説明してきたように、この発明による光学的情報読取装置は、撮像部からの距離が異なる複数の位置に選択的に保持される検体容器に付されたコード記号の情報を、高精度で能率よく読み取ることができ、しかも使用するカメラは特別なオートズーム機構やオートフォーカス機構が必要なく、構造が簡単で安価であり、プログラム的にも単純な構成であるから安価に提供でき、検体容器の保持列数や読取対象のコード記号の変更など、検体検査装置のシステムに合わせて設計変更が容易である。
【図面の簡単な説明】
【図１】この発明による光学的情報読取装置を搭載した検体検査装置の一例を上部カバーを開けた状態で示す平面図である。
【図２】この発明による光学的情報読取装置を搭載した検体検査装置の他の例を示す概略平面図である。
【図３】図１又は図２に示した光学的情報読取装置の内部を同じホルダユニットに保持される３個の検体容器と共に示す平面図である。
【図４】同じくその側面図である。
【図５】光学的情報読取装置のメインボードの構成例を示すブロック図である。
【図６】図５におけるＣＭＯＳセンサの構成例を示すブロック図である。
【図７】光学的情報読取装置のカメラが一番遠い位置の検体容器に付されたコード記号を撮像したときの画像（小画像）の例を示す図である。
【図８】光学的情報読取装置のカメラが中間位置の検体容器に付されたコード記号を撮像したときの画像（中画像）の例を示す図である。
【図９】光学的情報読取装置のカメラが一番近い位置の検体容器に付されたコード記号を撮像したときの画像（大画像）の例を示す図である。
【図１０】この発明の光学的情報読取装置によるコード記号読取処理の一実施例を示すフロー図である。
【図１１】カメラによる画像撮影時のＣＭＯＳセンサのイメージエリアでの撮像順序を説明するための説明図である。
【図１２】同じくその水平ラインのブロック分けの説明図である。
【図１３】プレデコードのために撮影画像に設定する基準ラインの例を示す図である。
【図１４】この発明の光学的情報読取装置によるコード記号読取処理中における各種信号波形の変化例を示すタイミングチャートである。
【図１５】画像データの二値化処理における誤差拡散方法の説明図である。
【図１６】画像データのランレングス符号化処理の説明図である。
【図１７】同じくその閾値を求める際のブロックの説明図である。
【図１８】この発明の光学的情報読取装置によるコード記号読取処理の他の実施例を示すフロー図である。
【図１９】二次元コードのＰＤＦ４１７の例を示すパターン図である。
【図２０】二次元コードのＱＲコードの例を示すパターン図である。
【符号の説明】
１：光学的情報読取装置    ２：筐体    ２ａ：投光口
３：支持板    ４：ＣＭＯＳイメージセンサ
５：レンズ    １０：メインボード
１１：ＣＰＵ    １２：ＦＰＧＡ
１３：ＳＤＲＡＭ    １４：フラッシュＲＯＭ
１５：ＲＳ２３２Ｃ（通信インタフェース）
１６：コネクタ    ２１，３１，４１：カメラボード
２２，３２，４２：カメラ
２３，５１．５２：ＬＥＤ    ５０：ＬＥＤボード
８０，８０ａ，８０ｂ，８０ｃ：検体容器
１００，２００：検体検査装置
１１０，２１０：ホルダユニット
１１０ａ，１１０ｂ，１１０ｃ：ホルダ
１２０：回転台    ２２０：移動台
【図１】
2005025417.tif 000006
【図２】
2005025417.tif 000007
【図３】
2005025417.tif 000008
【図４】
2005025417.tif 000009
【図５】
2005025417.tif 000010
【図６】
2005025417.tif 000011
【図７】
2005025417.tif 000012
【図８】
2005025417.tif 000013
【図９】
2005025417.tif 000014
【図１０】
2005025417.tif 000015
【図１１】
2005025417.tif 000016
【図１２】
2005025417.tif 000017
【図１３】
2005025417.tif 000018
【図１４】
2005025417.tif 000019
【図１５】
2005025417.tif 000020
【図１６】
2005025417.tif 000021
【図１７】
2005025417.tif 000022
【図１８】
2005025417.tif 000023
【図１９】
2005025417.tif 000024
【図２０】
2005025417.tif 000025