(57)【要約】【課題】バーコードの読み取り性能を向上させる。【解決手段】データ判定装置は、バーコードの画像データを構成する複数の画素のうちの隣接する画素ごとに、当該隣接する画素の信号値の差分を算出する算出部２３と、前記算出部２３が算出した複数の差分の加算値と基準値とを比較し、比較結果に基づき、前記画像データを構成する複数の画素における、画素の信号値が第１及び第２の値の一方から他方に切り替わる境界位置の画素を検出する検出部２５と、をそなえる。【選択図】図１２
2019061527.tif 000002
【特許請求の範囲】
【請求項１】
バーコードの画像データを構成する複数の画素のうちの隣接する画素ごとに、当該隣接する画素の信号値の差分を算出する算出部と、
前記算出部が算出した複数の差分の加算値と基準値とを比較し、比較結果に基づき、前記画像データを構成する複数の画素における、画素の信号値が第１及び第２の値の一方から他方に切り替わる境界位置の画素を検出する検出部と、をそなえる
データ判定装置。
【請求項２】
前記算出部は、前記画像データを構成する複数の画素のうちの連続する所定数の画素における隣接する画素ごとに、当該隣接する画素の信号値の差分を算出し、
前記検出部は、前記算出部が算出した前記連続する所定数の画素における複数の差分の加算値と前記基準値とを比較し、比較結果に基づき、前記連続する所定数の画素における判定対象の画素の信号値が、前記第１の値を示すか前記第２の値を示すかを判定する、
請求項１に記載のデータ判定装置。
【請求項３】
前記検出部による前記判定後、前記連続する所定数の画素の範囲を、前記所定数を維持した状態で、前記画像データを構成する複数の画素内で１画素分シフトさせ、
前記シフト後の連続する所定数の画素について、前記算出部の前記算出、並びに、前記検出部の前記比較及び前記判定を実行する、
請求項２に記載のデータ判定装置。
【請求項４】
前記基準値は、前記シフト前に判定対象であった画素の信号値の判定結果に応じて変化する、
請求項３に記載のデータ判定装置。
【請求項５】
前記判定対象の画素は、前記シフトにより前記連続する所定数の画素の範囲に含まれることになった画素であり、且つ、前記境界位置の画素の候補である、
請求項３又は請求項４に記載のデータ判定装置。
【請求項６】
前記所定数は、前記バーコードの画像データにおける幅の狭いバーの画素数よりも少ない数に制限される、
請求項２〜５のいずれか１項に記載のデータ判定装置。
【請求項７】
各々にバーコードが表示された複数の記録媒体を収納するライブラリ装置であって、
バーコードの読取指示に応じて一の記録媒体のバーコードを読み取る読取装置をそなえ、
前記読取装置が、
バーコードの画像データを構成する複数の画素のうちの隣接する画素ごとに、当該隣接する画素の信号値の差分を算出する算出部と、
前記算出部が算出した複数の差分の加算値と基準値とを比較し、比較結果に基づき、前記画像データを構成する複数の画素における、画素の信号値が第１及び第２の値の一方から他方に切り替わる境界位置の画素を検出する検出部と、をそなえる
ライブラリ装置。
【請求項８】
バーコードの画像データを構成する複数の画素のうちの隣接する画素ごとに、当該隣接する画素の信号値の差分を算出し、
前記算出した複数の差分の加算値と基準値とを比較し、
比較結果に基づき、前記画像データを構成する複数の画素における、画素の信号値が第１及び第２の値の一方から他方に切り替わる境界位置の画素を検出する、
処理をコンピュータに実行させる、データ判定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バーコードのデータ判定装置、ライブラリ装置、及びバーコードのデータ判定プログラムに関する。
【背景技術】
【０００２】
磁気テープカートリッジや光ディスクカートリッジ等の媒体カートリッジ（記録媒体）を複数収納するライブラリ装置が知られている。ライブラリ装置では、筐体内部に設けられた複数の収納セルに媒体カートリッジがセル単位で格納される。
【０００３】
ライブラリ装置は、ホストからの移動命令に基づき、搬送ロボットにより収納セルとドライブモジュールとの間で媒体カートリッジのピックアップ、運搬、及び投入（挿入）を行なうことで、ドライブモジュールに投入された媒体の記録又は再生を行なう。
【０００４】
媒体カートリッジのカートリッジ背面には、媒体管理情報を含むバーコードを記録したバーコードラベルが貼付され、搬送ロボットに搭載されたバーコードリーダによりバーコードが読み取られる。バーコードリーダは、ＬＥＤ（Light Emitting Diode）をライン配置したＬＥＤ照明ユニットとＣＣＤ（Charge Coupled Device）リニアセンサとをそなえる。ライブラリ装置は、搬送ロボットをカートリッジ背面（バーコードラベル）に対向させた状態で、ＬＥＤ照明ユニットを点灯してＣＣＤリニアセンサによるスキャンを行ない、スキャン結果をデコードすることで、バーコードの読み取り（媒体管理情報の取得）を行なうことができる。
【０００５】
ところで、ライブラリ装置では、装置の起動時やホストからの指示により、収納された媒体カートリッジについて、媒体管理情報と収納セルの位置情報とを対応付けて管理（登録）するインベントリ処理が行なわれる。
【０００６】
インベントリ処理では、ライブラリ装置は、装置内に収納されている多数の媒体カートリッジのバーコードラベルを連続的に読み取り、装置内のどの位置にどのような媒体カートリッジが収納されているかをホストに通知する。例えばライブラリ装置は、処理対象とするカラム（収納セルの縦方向の並び）の最上部又は最下部のセル位置に搬送ロボットを移動して位置付けた後に、バーコードリーダをスキャン動作させながら搬送ロボットを一定速度で下降又は上昇移動させて、媒体カートリッジのバーコードラベルを連続的に読み取る。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００１−１７５８０４号公報
【特許文献２】特開昭６０−１５７６７８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、バーコードリーダの読み取り環境における種々の要因により、読み取りエラー或いは誤認識等が発生し、バーコードを正しく読み取れない場合がある。この場合、再度読み取り動作を行なうリトライ処理を実施することもできるが、搬送ロボットの移動は機械的な動作であるため、リトライ処理によりホストへの応答時間は遅延し得る。
【０００９】
特に、大型のライブラリ装置では、収納する媒体カートリッジは数百巻となることもあり、収納する媒体カートリッジの数が多くなるほど、インベントリ処理にかかる時間は長期化する。このため、インベントリ処理においてバーコードが正しく読み取れずリトライ処理が頻発した場合には、ホストへの通知が大幅に遅延することになり、ライブラリ装置が利用可能になるまでに多大な時間がかかってしまう。
【００１０】
なお、上述した不都合は、ライブラリ装置に限られたものではなく、バーコードラベルを貼付された又はバーコードを印字された管理対象からバーコードを読み取る種々の装置においても同様に生じ得る。
【００１１】
１つの側面では、本発明は、バーコードの読み取り性能を向上させることを目的とする。
【課題を解決するための手段】
【００１２】
１つの態様では、本件のデータ判定装置は、算出部と、検出部と、をそなえてよい。前記算出部は、バーコードの画像データを構成する複数の画素のうちの隣接する画素ごとに、当該隣接する画素の信号値の差分を算出してよい。前記検出部は、前記算出部が算出した複数の差分の加算値と基準値とを比較し、比較結果に基づき、前記画像データを構成する複数の画素における、画素の信号値が第１及び第２の値の一方から他方に切り替わる境界位置の画素を検出してよい。
【発明の効果】
【００１３】
１つの側面では、バーコードの読み取り性能を向上させることができる。
【図面の簡単な説明】
【００１４】
【図１】一実施形態に係るライブラリ装置の一例を示す斜視図である。
【図２】図１に例示するライブラリ装置の正面図である。
【図３】図１に例示するライブラリ装置から搬送ロボットに関連する構成を抽出した斜視図である。
【図４】搬送ロボット及びその周辺の構成例を示す図である。
【図５】ライブラリ装置の動作の一例を説明する図である。
【図６】媒体カートリッジに貼付されたバーコードラベルの一例を示す図である。
【図７】ＬＥＤ照明ユニットとＣＣＤリニアセンサとの間に設けられるレンズの一例を示す図である。
【図８】バーコードリーダとバーコードラベルとの位置付け精度と、ＣＣＤリニアセンサからの出力信号との関係の一例を示す図である。
【図９】外乱光が発生したときのＣＣＤリニアセンサからの出力信号の一例を示す図である。
【図１０】バックセル及びサイドセルの板金及びネジを黒色塗装した例を示す図である。
【図１１】一実施形態に係るバーコードリーダの構成例を示す図である。
【図１２】一実施形態に係る判定装置の構成例を示す図である。
【図１３】判定装置による白／黒判定処理の一例を説明する図である。
【図１４】劣化したバーコードラベルの読取波形に対して、一実施形態に係る手法により白／黒判定処理を行なった場合の判定後の波形を例示する図である。
【図１５】一実施形態に係る判定装置による白／黒判定処理の動作例を説明するフローチャートである。
【発明を実施するための形態】
【００１５】
以下、図面を参照して本発明の実施の形態を説明する。ただし、以下に説明する実施形態は、あくまでも例示であり、以下に明示しない種々の変形や技術の適用を排除する意図はない。例えば、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。なお、以下の実施形態で用いる図面において、同一符号を付した部分は、特に断らない限り、同一若しくは同様の部分を表す。
【００１６】
〔１〕一実施形態
〔１−１〕ライブラリ装置について
はじめに、図１〜図５を参照しながら、一実施形態に係るライブラリ装置について説明する。
【００１７】
図１は、一実施形態に係るライブラリ装置１の一例を示す斜視図である。図１に示すように、ライブラリ装置１は、データセンタやサーバルーム等の施設に設置可能なラック型の装置とすることができる。なお、ライブラリ装置１として、他の態様、例えばより大規模なモジュラー型の装置が用いられてもよい。
【００１８】
図２は、図１に例示するライブラリ装置１の正面図である。ライブラリ装置１は、ラックの内側の正面奥にバックセル２をそなえ、ラックの内側の両側面にサイドセル３をそなえる。バックセル２及びサイドセル３にはそれぞれ媒体カートリッジが収納される複数の収納セルが設けられる。なお、一実施形態に係るライブラリ装置１（バックセル２及びサイドセル３）は、数百巻の媒体カートリッジ６を収納することができる。
【００１９】
また、ライブラリ装置１は、ドライブモジュール４と、上ロボット５−１及び下ロボット５−２（以下の説明においてこれらを区別しない場合には単に搬送ロボット５という）とをそなえる。
【００２０】
ドライブモジュール４は、後述するホスト７又は上位制御部８（図５参照）からの指示に応じて、投入（挿入）された媒体カートリッジ６（図５参照）内の媒体に対してデータの記録又は再生を行なう。
【００２１】
搬送ロボット５は、ホスト７又は上位制御部８からの指示に応じて、収納セルとドライブモジュール４との間で媒体カートリッジ６のピックアップ、運搬、及び投入（挿入）を行なう。
【００２２】
図３は、図１に例示するライブラリ装置１から搬送ロボット５に関連する構成を抽出した斜視図である。搬送ロボット５は、レール（Ｙ機構）５１をガイドとして、モータ駆動によりラック内を上下方向に移動することが可能である。なお、搬送ロボット５は、バランサ５２により水平姿勢を保つように制御される。
【００２３】
図４に搬送ロボット５及びその周辺の構成例を示す。搬送ロボット５は、モータによって駆動するＺ機構５３、Ｘ機構５４、及びスイブル機構５５により、ラック内の水平方向を自在に移動することができる。Ｚ機構５３は、搬送ロボット５をラックの奥行方向に移動させ、Ｘ機構５４は、搬送ロボット５をラックの左右方向に移動させる。スイブル機構５５は、搬送ロボット５をおよそ２７０°の範囲で水平面（Ｘ−Ｚ平面）において回転させるものである。搬送ロボット５は、ハンド機構５８により把持する媒体カートリッジ６を、レール５１、Ｚ機構５３、Ｘ機構５４により移動元から移動先へ運搬し、スイブル機構５５により移動先の収納セル又はドライブモジュール４に対向させることができる。
【００２４】
ＬＥＤ照明ユニット５６は、複数のＬＥＤをライン状に配置したものであってよく、媒体カートリッジ６のバーコードラベル６ａ（図６参照）に光を照射する光源の一例である。
【００２５】
ＣＣＤリニアセンサ５７はイメージセンサの一例である。ＣＣＤリニアセンサ５７は、複数のフォトダイオードをライン状に配置し、各フォトダイオードにＣＣＤを接続したものであってよく、ＬＥＤ照明ユニット５６の点灯によるバーコードラベル６ａからの反射光を検出し、電気信号、例えば電圧信号に変換する。ＣＣＤリニアセンサ５７は、ホスト７又は上位制御部８からのバーコードの読取指示に応じて、複数のデータにより構成されるバーコードの一連の読取データを出力する読取部の一例であるといえる。換言すれば、また、ＣＣＤリニアセンサ５７は、ＬＥＤ照明ユニット５６と協働して、バーコードを撮影しバーコードの画像を取得するといえる。
【００２６】
なお、図７に例示するように、ＬＥＤ照明ユニット５６とＣＣＤリニアセンサ５７との間には、ＬＥＤ照明ユニット５６によりバーコードラベル６ａに照射された光の反射光をＣＣＤリニアセンサ５７に結像するレンズ５９が設けられてよい。また、ＣＣＤリニアセンサ５７と後述するＡ／Ｄ変換部１３（図１１参照）との間には、ＣＣＤリニアセンサ５７の出力信号を増幅するアンプ（図示省略）が設けられてもよい。
【００２７】
ハンド機構５８は、媒体カートリッジ６を把持する爪又はアーム等のハンド部と、ハンド部が把持した媒体カートリッジ６を収容する収容部とをそなえる。ハンド機構５８は、媒体カートリッジ６を、移動元の収納セル又はドライブモジュール４からピックアップして（取り出して）搬送ロボット５内に収容し、移動先の収納セル又はドライブモジュール４に投入（挿入）する。
【００２８】
また、搬送ロボット５は、ＬＥＤ照明ユニット５６及びＣＣＤリニアセンサ５７の制御により媒体カートリッジ６のバーコードラベル６ａを読み取り、読取結果を上位制御部８へ送信する制御ボード５０をそなえる。制御ボード５０としては、例えば、ＣＰＵ、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＦＰＧＡ等の集積回路（ＩＣ）の少なくとも１つを含むプリント板（回路基板）が挙げられる。なお、ＣＰＵはCentral Processing Unitの略称であり、ＭＰＵはMicro Processing Unitの略称である。ＤＳＰはDigital Signal Processorの略称であり、ＡＳＩＣはApplication Specific Integrated Circuitの略称であり、ＦＰＧＡはField-Programmable Gate Arrayの略称である。
【００２９】
なお、制御ボード５０は、ＣＣＤリニアセンサ５７から出力された電気信号からバーコードラベル６ａに含まれるバー情報を抽出することで、バーコードラベル６ａのバー情報を認識してよい。
【００３０】
バーコードは、印刷されたバーの色（例えば、“黒”及び“白”の２値）の差や、幅（例えば“太”及び“細”の２種）の差によって情報を表現する。このため、制御ボード５０は、ＣＣＤリニアセンサ５７から出力された（画像の）電気信号からバーコードの白黒の境界を検出してよい。
【００３１】
このように、ＬＥＤ照明ユニット５６、ＣＣＤリニアセンサ５７、及び制御ボード５０は、バーコードの読取指示に応じて一の媒体カートリッジ６のバーコードを読み取るバーコードリーダ１０として機能することができる。
【００３２】
媒体カートリッジ６は、例えば磁気テープカートリッジや光ディスクカートリッジ等のデータを記憶する記録媒体の一例である。磁気テープカートリッジとしては例えばＬＴＯ（Linear Tape-Open Ultrium）テープが挙げられる。光ディスクカートリッジとしては、光ディスク、例えばＣＤ（Compact Disc）、ＤＶＤ（Digital Versatile Disc）、ブルーレイディスク、ＨＶＤ（Holographic Versatile Disc）等を格納するカートリッジが挙げられる。ＣＤとしては、ＣＤ−ＲＯＭ、ＣＤ−Ｒ（CD-Recordable）、ＣＤ−ＲＷ（CD-Rewritable）等が挙げられ、ＤＶＤとしては、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ、ＤＶＤ＋Ｒ、ＤＶＤ＋ＲＷ等が挙げられる。なお、これらの光ディスクのうち、書き換え可能な光ディスクが用いられることが好ましい。
【００３３】
以下、一実施形態においては、媒体カートリッジ６として、磁気テープカートリッジが用いられ、ドライブモジュール４はテープドライブであるものとして説明する。
【００３４】
図５は、ライブラリ装置１の動作の一例を説明する図である。ライブラリ装置１は、ＦＣ（Fibre Channel；ファイバチャネル）等の通信ケーブルを介して接続されたホスト７からの指示に応じて、搬送ロボット５やドライブモジュール４の制御を行なう。
【００３５】
ホスト７は、ライブラリ装置１に対して、収納セル及びドライブモジュール４における移動元から移動先への媒体カートリッジ６の投入、媒体カートリッジ６へのライトデータの記録又はリードデータの再生、及びインベントリ処理等の指示を行なう。なお、ホスト７としては、情報処理装置、例えばサーバやＰＣ（Personal Computer）等のコンピュータが挙げられる。
【００３６】
ライブラリ装置１は、図５に例示するように、上述したバックセル２、サイドセル３、ドライブモジュール４、及び搬送ロボット５に加えて、上位制御部８及びロボット制御部９をそなえる。
【００３７】
上位制御部８は、ホスト７からの指示に応じて、ロボット制御部９に対する搬送ロボット５の移動制御、搬送ロボット５に対するバーコードラベル６ａの読取制御、及びドライブモジュール４に対する媒体カートリッジ６の媒体への記録又は再生制御を行なう。上位制御部８としては、例えばＣＰＵ等のプロセッサ、ＲＡＭ（Random Access Memory）等のメモリ、ＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）等の記憶装置等をそなえる情報処理装置が挙げられる。情報処理装置としては、例えば、サーバやＰＣ等のコンピュータが挙げられる。
【００３８】
ロボット制御部９は、上位制御部８からの指示（制御）に応じて、搬送ロボット５を移動させる各モータの駆動を制御する。モータとしては、例えばレール５１に沿って上下方向に移動させるモータ、搬送ロボット５をＺ機構５３及びＸ機構５４によって奥行方向及び左右方向にそれぞれ移動させるモータ、搬送ロボット５をＸ−Ｚ平面で回転させるスイブル機構５５のモータ等が挙げられる。ロボット制御部９としては、例えばＡＳＩＣやＭＰＵ等の集積回路が挙げられる。
【００３９】
また、上位制御部８は、ライブラリ装置１の起動後又はホスト７からの指示に応じて、バックセル２及びサイドセル３に収納された媒体カートリッジ６を登録するためのインベントリ処理を行なう。
【００４０】
インベントリ処理において、上位制御部８は、ロボット制御部９及び搬送ロボット５に対して、収納セルに格納された媒体カートリッジ６の媒体管理情報、例えばボリューム番号を読み取り、ボリューム番号及び収納セルの位置情報を通知するよう指示する。ロボット制御部９は、処理対象とするカラム（収納セルの縦方向の並び）の最上部又は最下部のセル位置に搬送ロボット５を移動して位置付けた後に、搬送ロボット５を一定速度で下降又は上昇移動させる。
【００４１】
搬送ロボット５は、ロボット制御部９による搬送ロボット５の移動に合わせて、バーコードリーダ１０により媒体カートリッジ６の背面（バーコードラベル６ａ）を連続的にスキャンする。スキャン結果は、制御ボード５０から直接又はロボット制御部９を介して上位制御部８に送信される。上位制御部８は、スキャン結果をデコードし、バーコードの文字を認識して媒体管理情報（ボリューム番号）の取得を行なう。全ての収納セルのチェックが完了すると、上位制御部８は、収集したボリューム番号及び収納セルの位置情報をホスト７に通知し、インベントリ処理を完了する。
【００４２】
インベントリ処理により収集されたボリューム番号及び収納セルの位置情報は、ホスト７が媒体カートリッジ６へのアクセスを指示する際に、当該媒体カートリッジ６及びその収納セルを特定するために用いられる。
【００４３】
なお、図６に示すように、バーコードリーダ１０は、１つのバーコードラベル６ａに対して、搬送ロボット５を下降又は上昇移動させて、破線で示すような異なる位置で複数回のスキャンを行なってよい。この場合、上位制御部８は数回以上バーコードを認識できたときに読取成功と判断してよい。
【００４４】
ところで、上述のように、ライブラリ装置１では、数百巻の媒体カートリッジ６を収納可能である。インベントリ処理では、媒体カートリッジ６の収納巻数が多ければ多いほど、高速に処理が行なわれることが好ましい。
【００４５】
しかしながら、インベントリ処理をはじめとするバーコードリーダによる読み取りでは、種々の要因により、イメージセンサで取得された画像のコントラストが低下し、読み取りエラー或いは誤認識等が発生し、バーコードを正しく読み取れない場合がある。
【００４６】
図８に例示するように、可動する搬送ロボット５に取り付けられたバーコードリーダから照射される光は、バーコードラベル６ａにおいて反射され、ＣＣＤリニアセンサにより検出される。ＣＣＤリニアセンサからの出力信号は、バーコードラベル６ａからの反射光や種々の要因によって偏りが生じる。図８の例では、バーコードラベル６ａの左端の光強度が最も強く、右端に向かうにつれて徐々に光強度が弱くなる。
【００４７】
このような場合、ＣＣＤリニアセンサでの受信光の強度に応じた出力信号（電圧信号）が均一にならず、読み取り精度が低下してしまう。図８の例では、バーコードラベル６ａの左端から右端に向かうにつれて、出力信号が、バーコードの白／黒を判定する基準値に近づきマージンが小さくなる、換言すれば、コントラストが低下するため、白／黒判定において誤検出の可能性が高くなる。
【００４８】
このように、イメージセンサで取得された画像のコントラストが低下し、読み取りエラー或いは誤認識等が発生する要因としては、以下の（ａ）〜（ｄ）に例示する要因が挙げられる。
【００４９】
（ａ）バーコードラベル６ａの素材の違いに起因する光の反射率の違い
【００５０】
バーコードラベル６ａには、ライブラリ装置１（搬送ロボット５）のメーカごとに自社の装置に最適なラベルの母材が使用されており、バーコードリーダはバーコードラベル６ａを最適に読み取れるようチューニングされていることが多い。
【００５１】
モノクロＣＣＤリニアセンサを用いたバーコードリーダは、バーコードラベル６ａのバーの白／黒を判定するための基準レベルを1つの値としていることが多い。このため、１つのライブラリ装置１内で複数の異なるラベル母材のバーコードラベル６ａを貼り付けた媒体カートリッジ６を収納して使用する場合、バーコードラベル６ａの材質に起因して、光の反射率の違いが現れることがある。これにより、バーコードリーダで読み取りエラーが発生する場合がある。
【００５２】
この場合、読み取りレベルを変更して再度読み直す動作を繰り返すため、リトライ処理に時間を要する。また、１つのバーコードラベル６ａに対する複数回のスキャンを行なうようにしても、読み取りレベルを変更する場合には、複数回のスキャンをリトライすることになるため、ホストへの応答時間は遅延し得る。
【００５３】
（ｂ）バーコードリーダとバーコードラベル６ａとの位置付け精度
【００５４】
可動する搬送ロボット５に取り付けられたバーコードリーダから照射される光は、搬送ロボット５とバーコードラベル６ａの位置付け精度が悪い場合、バーコードラベル６ａからの反射光に偏りが生じる。例えば、図８において、ＬＥＤ照射ユニット５６の左端がバーコードラベル６ａに近く、右端がバーコードラベル６ａから遠い場合、バーコードラベル６ａの左端の光強度が最も強く、右端に向かうにつれて徐々に光強度が弱くなる。なお、位置付け精度が悪い場合としては、例えば、バーコードラベル６ａとＣＣＤリニアセンサ或いはレンズ（図７参照）との間の距離や角度等の位置関係にずれが生じている場合等が挙げられる。
【００５５】
（ｃ）バーコードラベル６ａのラベル面の明るさ
【００５６】
バーコードラベル６ａのラベル面において、照明の配光特性やラベル面の凹凸等により、明るさのムラが生じる場合がある。
【００５７】
（ｄ）バーコードラベル６ａのバーコード印刷の滲み
【００５８】
バーコードラベル６ａにおけるバーコード印刷に滲みが生じている場合、白黒の境界が不鮮明となる場合がある。
【００５９】
また、上記（ａ）〜（ｄ）で例示した要因によるコントラストの低下の他にも、以下の（ｅ）に例示するような要因により、バーコードリーダで読み取りエラー或いは誤認識が発生する場合がある。
【００６０】
（ｅ）収納セルの板金等による外乱光に起因する読み取りエラー或いは誤認識の発生
【００６１】
図９に例示するように、バーコードリーダは、バーコードラベル６ａ以外からの反射光（外乱光）を検出してしまう場合がある。反射光は、ＣＣＤリニアセンサにおいて、バーコードラベル６ａの端部の信号出力にノイズ（短い幅の信号）を発生させ、上位制御部８における読み取り時（デコード時）に誤認識を生じさせる可能性がある。
【００６２】
バーコードの誤認識を低減させ正確にバーコードを読み取るためには、バーコードラベル６ａの周辺において、ラベル以外の反射光を抑制させる反射対策を行なうことが有効である。反射対策としては、図１０に例示するように、バックセル２及びサイドセル３の板金２ａ，３ａやネジ２ｂ，３ｂ等を黒色塗装することが考えられるが、黒色塗装によりライブラリ装置１の部品が高価になってしまう。
【００６３】
以上のように、バーコードリーダにおいては、種々の要因によって、読み取りエラー或いは誤認識が発生する可能性がある。
【００６４】
これに対し、一実施形態に係るライブラリ装置１は、以下に詳述するバーコードリーダ１０により、バーコードの読み取り性能を向上させることができる。以下、一実施形態に係るバーコードリーダ１０の詳細について説明する。
【００６５】
〔１−２〕バーコードリーダについて
図１１は、一実施形態に係るバーコードリーダ１０の構成例を示す図である。バーコードリーダ１０は、例示的に、上位インタフェース部１１、コマンド処理部１２、Ａ／Ｄ変換部１３、白／黒判定部１４、ＬＥＤ照明ユニット５６、及びＣＣＤリニアセンサ５７をそなえる。なお、上位インタフェース部１１、コマンド処理部１２、Ａ／Ｄ変換部１３、及び白／黒判定部１４の少なくとも１つは、集積回路として制御ボード５０に実装されてよい。一例として、白／黒判定部１４は、回路の再構成が可能なＦＰＧＡにより構成されてもよい。
【００６６】
上位インタフェース部１１は、上位制御部８との通信を行なうものであり、例示的に、コマンド発行部１１１及びバーコード解析部１１２をそなえる。
【００６７】
コマンド発行部１１１は、上位制御部８から受け付けた指示（コマンド）に基づき、コマンド処理部１２にコマンドを発行する。
【００６８】
バーコード解析部１１２は、白／黒判定部１４から入力される各バーの白／黒の判定結果に基づきバーコードのデータを解析し、解析により得られたスキャン結果をデコードして上位制御部８に送信する。
【００６９】
コマンド処理部１２は、コマンド発行部１１１が受信した上位制御部８からの指示に応じて、ＬＥＤ照明ユニット５６の点灯及びＣＣＤリニアセンサ５７のスキャンを制御する。
【００７０】
Ａ／Ｄ変換部１３は、ＣＣＤリニアセンサ５７によるバーコードのスキャン結果、つまりＬＥＤ照明ユニット５６からの光強度に応じた１ライン（図６参照）分のスキャンデータ（出力信号、画像）を、アナログ−デジタル変換して白／黒判定部１４に供給する。
【００７１】
なお、スキャンデータは、例えば、電圧レベルのデジタル変換値であってよい。以下の説明では、ＣＣＤリニアセンサ５７からの出力信号が、Ａ／Ｄ変換部１３により０〜２５５の範囲のデータ値に変換されるものとする。
【００７２】
また、Ａ／Ｄ変換部１３は、出力するデータを一時的に格納するバッファをそなえ、バッファから例えば１ドットごとに順次データを出力してもよい。１ドットは、例えば、ＣＣＤリニアセンサ５７の１つの受光素子に対応してよい。
【００７３】
白／黒判定部１４は、Ａ／Ｄ変換部１３でデジタル信号に変換されたスキャンデータについて白／黒判定処理を行ない、判定結果をバーコード解析部１１２に供給する。つまり、白／黒判定部１４は、媒体カートリッジ６のバーコードのデータを判定する判定装置２０の一例である。例えば、白／黒判定部１４は、スキャンデータに含まれる１ドット分の読取値ごとに順次、当該１ドット分の読取値が白か黒かを判定してよい。
【００７４】
〔１−３〕判定装置について
次に、図１２を参照しながら、一実施形態に係る判定装置２０の詳細について説明する。図１２に示すように、判定装置２０は、例示的に、データ保持部２１、前データ保持部２２−０〜２２−４、差分算出部２３−０〜２３−４、差分加算部２４、基準値比較部２５、及び、前判定値記憶部２６をそなえてよい。以下の説明において、前データ保持部２２−０〜２２−４を区別しない場合には、単に前データ保持部２２と表記する。また、差分算出部２３−０〜２３−４を区別しない場合には、単に差分算出部２３と表記する。
【００７５】
データ保持部２１は、入力されるバーコードのスキャンデータのうちの今回の判定対象のデータ値、例えば、電圧レベルの情報を保持し、白／黒判定処理の際に、保持するデータを差分算出部２３−０に供給する。換言すれば、データ保持部２１は、Ｘ番目のドットのバーコード読取値を保持するといえる。なお、Ｘは１〜Ｎの範囲で変化する変数（整数）であり、Ｎは１ライン当たりの総ドット数である。
【００７６】
前データ保持部２２−０〜２２−４（以下、＃０〜＃４と表記する場合がある）は、過去に入力されたデータ値を保持し、白／黒判定処理の際に、保持する前データを差分算出部２３−０〜２３−４に供給する。
【００７７】
例えば、前データ保持部２２−０〜２２−４は、前データ保持部２２−０から前データ保持部２２−４に向かって順に、判定対象のタイミングが古い（過去の）ドットの読取値を保持してよい。一例として、データ保持部２１がＸ番目のドットの読取値を保持する場合、前データ保持部２２−０〜２２−４は、それぞれ、Ｘ−１番目〜Ｘ−（ｎ＋１）番目のドットの読取値を保持してよい。なお、「ｎ」は、後述する差分加算部２４において加算する差分値Δの個数を示す整数であり、１つのドットの判定に用いる過去の変化履歴の個数を表すといえる。
【００７８】
具体的な例を挙げると、データ保持部２１が６番目のドットの読取値を保持する場合、前データ保持部２２−０は５番目、前データ保持部２２−１は４番目、前データ保持部２２−２は３番目、のドットの読取値をそれぞれ保持してよい。また、前データ保持部２２−３は２番目、前データ保持部２２−４は１番目、のドットの読取値をそれぞれ保持してよい。
【００７９】
換言すれば、データ保持部２１、前データ保持部２２−０、２２−１、２２−２、２２−３、２２−４の順に、判定装置２０において１つのドットの白／黒判定処理が行なわれる都度、保持するドットの読取値が１つずつシフトするように制御されてよい。
【００８０】
以上のように、データ保持部２１及び前データ保持部２２−０〜２２−４は、今回の判定対象のドットから所定数ｎだけ前の（過去の）ドットまでの「ｎ＋１」個の連続するドットの読取値を保持するといえる。
【００８１】
なお、前データ保持部２２−０〜２２−４には、スキャンの開始前に、初期値として“２５５”（黒）が設定されてよい。
【００８２】
また、データ保持部２１及び前データ保持部２２−０〜２２−４は、保持するデータを差分算出部２３−０〜２３−４に供給してよい。データの供給は、差分算出部２３−０〜２３−４のそれぞれに連続する２つのドットの読取値が入力され、且つ、隣接する差分算出部２３間で１つずつドットが異なる（ずれる）ように、行なわれてよい。
【００８３】
例えば、差分算出部２３−０〜２３−４には、それぞれ、Ｘ番目及びＸ−１番目、Ｘ−１番目及びＸ−２番目、・・・、Ｘ−ｎ＋１番目及びＸ−ｎ番目、のドットの読取値が供給されてよい。
【００８４】
具体的な例を挙げると、データ保持部２１は保持する今回の入力データを差分算出部２３−０に供給し、前データ保持部２２−０は保持する１つ前のデータを差分算出部２３−０及び２３−１に供給してよい。前データ保持部２２−１は保持する２つ前のデータを差分算出部２３−１及び２３−２に供給し、前データ保持部２２−２は保持する３つ前のデータを差分算出部２３−２及び２３−３に供給してよい。前データ保持部２２−３は保持する４つ前のデータを差分算出部２３−３及び２３−４に供給し、前データ保持部２２−４は保持する５つ前のデータを差分算出部２３−４に供給してよい。
【００８５】
データ保持部２１及び前データ保持部２２−０〜２２−４は、それぞれ、レジスタ、ＲＡＭ（Random Access Memory）、フラッシュメモリ等の記憶装置により実現されてよい。
【００８６】
差分算出部２３−０〜２３−４（以下、＃０〜＃４と表記する場合がある）は、それぞれ、データ保持部２１及び前データ保持部２２から入力されたデータの差分ΔＸ〜Δ（Ｘ−ｎ＋１）を算出し、算出した差分を差分加算部２４に供給する。
【００８７】
例えば、差分算出部２３は、入力される２つの隣接するドットの読出値のうちの新しい（Ｘに近い）ドットの読出値から、古い（Ｘから遠い）ドットの読出値を減じることで、差分を算出してよい。
【００８８】
一例として、差分算出部２３−０は今回（Ｘ番目）の入力データから１つ前（Ｘ−１番目）のデータを減じて差分ΔＸを算出し、差分算出部２３−１は１つ前（Ｘ−１番目）のデータから２つ前（Ｘ−２番目）のデータを減じて差分Δ（Ｘ−１）を算出してよい。また、差分算出部２３−２は２つ前（Ｘ−２番目）のデータから３つ前（Ｘ−３番目）のデータを減じて差分Δ（Ｘ−２）を算出し、差分算出部２３−３は３つ前（Ｘ−３番目）のデータから４つ前（Ｘ−４番目）のデータを減じて差分Δ（Ｘ−３）を算出してよい。さらに、差分算出部２３−４は４つ前（Ｘ−４番目）のデータから５つ前（Ｘ−５番目）のデータを減じて差分Δ（Ｘ−４）を算出してよい。これにより、ｎ個の差分値が算出される。
【００８９】
以上のように、差分算出部２３は、バーコードの画像データを構成する複数の画素のうちの隣接する画素ごとに、当該隣接する画素の信号値の差分を算出する算出部の一例である。また、算出部の一例としての差分算出部２３は、画像データを構成する複数の画素のうちの連続する所定数の画素における隣接する画素ごとに、当該隣接する画素の信号値の差分を算出するといえる。
【００９０】
差分加算部２４は、差分算出部２３−０〜２３−４から入力される差分ΔＸ〜Δ（Ｘ−ｎ＋１）を加算することで差分加算値ΣＸを算出する。差分加算部２４から出力される差分加算値ΣＸは、基準値比較部２５に与えられる。
【００９１】
差分加算部２４により、現在の判定対象のドットからｎ個前のドットまでの区間における読取値（電圧レベル）の変動を相殺し、読取値のバラつきを吸収することができる。これにより、上記（ａ）〜（ｅ）のような要因によって、バーコードの白／黒が誤判定されることを抑制できる。
【００９２】
なお、「ｎ」の値は、前データ保持部２２の数と、差分算出部２３の数と一致しており、少なくとも“３”以上の値であることが好ましい。一実施形態では、「ｎ」の値は“５”である。「ｎ」の値が大きいほど、過去の多くのドットの読取値を白／黒判定で考慮することができるため、バーコードの白／黒が誤判定されることを抑制できる。
【００９３】
一方で、ＣＣＤリニアセンサ５７により取得されたデータにおける幅の狭いバーの幅よりもｎドット（画素）の幅が大きくなると、差分加算値において、幅の狭いバーの読取値である電圧レベルの増減が相殺されてしまう場合がある。この場合、幅の狭いバーが検出されず、バーコードの白／黒が誤判定される可能性がある。
【００９４】
このため、「ｎ」の値、換言すれば、差分値の加算数は、バーコードの画像データにおける幅の狭いバーの画素数よりも少ない数に制限されてよい。例えば、「ｎ」の値は、差分加算値が幅の狭いバーの幅を超えないように設定されることが好ましい。
【００９５】
なお、図１２に示す判定装置２０において、「ｎ」の値を変化させる場合、前データ保持部２２及び差分算出部２３の数を「ｎ」の数に変更すればよい。例えば、判定装置２０がＦＰＧＡにより構成される場合、ＣＣＤリニアセンサ５７の性能、或いは、ＬＥＤ照明ユニット５６、レンズ５９、及びＣＣＤリニアセンサ５７の位置関係等に応じて、適切な数の前データ保持部２２及び差分算出部２３が構成されてよい。また、判定装置２０がＬＳＩ等により構成される場合は、一部の前データ保持部２２及び差分算出部２３を無効化して、適切な数の前データ保持部２２及び差分算出部２３が動作するように構成されてもよい。
【００９６】
前判定値記憶部２６は、基準値比較部２５による前回（Ｘ−１番目）のドットの判定値、例えば、“２５５”（黒）又は“０”（白）の情報を記憶する。前判定値記憶部２６は、レジスタ、ＲＡＭ、フラッシュメモリ等の記憶装置により実現されてよい。なお、前判定値記憶部２６が記憶する情報は、前回のドットの判定において、過去から前回までの読取値により形成される波形が上向き（増加傾向）であるのか、下向き（減少傾向）であるのか、を示す情報等であってもよい。
【００９７】
基準値比較部２５は、差分加算部２４から入力される差分加算値ΣＸと、所定の基準値とに基づいて、バーの白／黒判定を行なう。基準値比較部２５により判定されたバーの白／黒判定結果は、上位インタフェース部１１のバーコード解析部１１２に出力されるとともに、前判定値記憶部２６に設定されてよい。なお、判定結果は、例えばレジスタ、ＲＡＭ、フラッシュメモリ等に保持され、１ライン分のバーコードに対する白／黒判定処理が完了してから１ライン分まとめて出力されてもよいし、１つのドットに係る白／黒判定処理が完了してから順次出力されてもよい。
【００９８】
なお、所定の基準値は、前回（Ｘ−１番目）のドットの判定値が、例えば“２５５”（黒）であるのか“０”（白）であるのかに応じて、異なる基準値が用いられてもよい。換言すれば、基準値は、シフト前に判定対象であった画素の信号値の判定結果に応じて変化してよい。以下の説明では、前回（Ｘ−１番目）のドットの判定値が“２５５”（黒）である場合に、負の値である第１基準値が用いられ、前回（Ｘ−１番目）のドットの判定値が“０”（白）である場合に、正の値である第２基準値が用いられるものとする。
【００９９】
第１及び第２基準値は、互いに絶対値が等しく正負が異なる値であってもよいし、互いに絶対値及び正負の双方が異なる値であってもよい。また、第１及び第２基準値の一方又は双方は、制御ボード５０、バーコードリーダ１０、搬送ロボット５、或いはライブラリ装置１の設置・動作環境等に応じて適応的に設定されてよい。設置・動作環境としては、例えば、ライブラリ装置１における搬送ロボット５と収納セル又はドライブモジュール４との位置関係、ＬＥＤ照明ユニット５６からＣＣＤリニアセンサ５７までの位置関係等の条件が含まれてもよい。また、設置・動作環境としては、例えば、ＬＥＤ照明ユニット５６／ＣＣＤリニアセンサ５７の発光／受光特性や、ＣＣＤリニアセンサ５７とＡ／Ｄ変換部１３との間に設けられるアンプのゲイン、白／黒判定部１４の回路特性等の条件が含まれてもよい。なお、第１及び第２基準値の一方又は双方は、「ｎ」の値に応じて設定されてよい。
【０１００】
例えば、基準値比較部２５は、前判定値記憶部２６に設定された情報、例えば、前回（Ｘ−１番目）のドットの判定値を取得し、前回（Ｘ−１番目）のドットの判定値が“２５５”（黒）であるのか、“０”（白）であるのかに応じて、以下の処理を行なってよい。一例として、基準値比較部２５は、以下の（Ａ）又は（Ｂ）の論理に従い、前回（Ｘ−１番目）のドットの判定値に応じて、差分加算値ΣＸが所定の基準値よりも大きい又は小さいか否かを判定してよい。そして、基準値比較部２５は、差分加算値ΣＸが所定の基準値よりも大きい又は小さいか否かに応じて、判定対象であるＸ番目のドットの白／黒判定処理の結果として“２５５”（黒）又は“０”（白）を設定してよい。
【０１０１】
（Ａ）  前回（Ｘ−１番目）のドットの判定値が“２５５”（黒）である場合。
基準値比較部２５は、差分加算値ΣＸが第１基準値（負の値）よりも小さいか否かを判定する。
【０１０２】
（Ａ−１）  上記（Ａ）において差分加算値ΣＸが第１基準値よりも小さい場合。
差分加算値ΣＸが第１基準値よりも小さい場合、波形が第１基準値を超えて下降（電圧レベルが減少）した場合に該当する。この場合、基準値比較部２５は、バーの色が黒から白に変化したと判断し、白／黒判定処理の結果として“０”（白）を設定してよい。
【０１０３】
（Ａ−２）  上記（Ａ）において差分加算値ΣＸが第１基準値以上の場合。
差分加算値ΣＸが第１基準値以上の場合、波形の下降又は上昇（電圧レベルの減少又は増加）が第１基準値を超えない場合に該当する。この場合、基準値比較部２５は、バーの色が黒のまま変化なしと判断し、白／黒判定処理の結果として“２５５”（黒）を設定してよい。
【０１０４】
（Ｂ）  前回（Ｘ−１番目）のドットの判定値が“０”（白）である場合。
基準値比較部２５は、差分加算値ΣＸが第２基準値（正の値）よりも大きいか否かを判定する。
【０１０５】
（Ｂ−１）  上記（Ｂ）において差分加算値ΣＸが第２基準値よりも大きい場合。
差分加算値ΣＸが第２基準値よりも大きい場合、波形が第２基準値を超えて上昇（電圧レベルが増加）した場合に該当する。この場合、基準値比較部２５は、バーの色が白から黒に変化したと判断し、白／黒判定処理の結果として“２５５”（黒）を設定してよい。
【０１０６】
（Ｂ−２）  上記（Ｂ）において差分加算値ΣＸが第２基準値以下の場合。
差分加算値ΣＸが第２基準値以下の場合、波形の上昇又は下降（電圧レベルの増加又は減少）が第２基準値に満たない場合に該当する。この場合、基準値比較部２５は、バーの色が白のまま変化なしと判断し、白／黒判定処理の結果として“０”（白）を設定してよい。
【０１０７】
以上のように、基準値比較部２５は、連続する所定数の画素における複数の差分の加算値と基準値とを比較し、比較結果に基づき、連続する所定数の画素における判定対象の画素の信号値が、第１の値を示すか第２の値を示すかを判定する検出部の一例である。
【０１０８】
また、判定装置２０は、基準値比較部２５による判定後、連続する所定数の画素の範囲を、所定数を維持した状態で、画像データを構成する複数の画素内で１画素分シフトさせる。そして、判定装置２０は、シフト後の連続する所定数の画素について、差分算出部２３による算出、並びに、基準値比較部２５による比較及び判定を実行する。これにより、範囲を１画素ずつシフトするごとに、バーの色の変化を検出でき、バーの色変化の検出漏れを抑制できる。
【０１０９】
次に、図１３を参照して、判定装置２０による白／黒判定処理の一例を説明する。図１３は、判定装置２０による白／黒判定処理の一例を説明する図であり、１つのラインについてＡ／Ｄ変換部１３から出力されたＴ１〜Ｔ２０のドットのデジタル値の一例を示す図である。
【０１１０】
図１３の例において、縦軸は電圧レベルを反映したデジタル値、横軸はＣＣＤリニアセンサ５７の画素データを走査方向に順次取得した時間（Ｔ１〜Ｔ２０）を表す。また、図１３の例において、黒画像に対応するデータは電圧レベルが高く、最大値は“２５５”を示し、白画像に対応するデータは電圧レベルが低く、最小値は“０”を示すものとする。
【０１１１】
図１３に例示するように、前の読取値との差分データΔＸを所定回数（ｎ回）加算したデータがΣＸとなり、Ａ／Ｄ変換部１３から次のドットの読取値（デジタルデータ）を受信するごとに加算対象となるドットが右側（最新の読取値側）にシフトしている。
【０１１２】
ここで、図１３において符号Ａを付した破線で囲った部分では、Ｔ１〜Ｔ６の区間におけるΔ２〜Δ６の差分加算値Σ６（符号Ａの高さに相当）は負の値であり、予め設定した第１基準値（負の値；符号Ａ′参照）よりも小さい。このため、基準値比較部２５は、Ｔ６の時点で読取値が“黒”から“白”に変化したと判断できる。
【０１１３】
なお、Σ１〜Σ４の算出に用いられるΔ−４〜Δ０の各値は、差分算出部２３により、初期値“２５５”−初期値“２５５”＝“０”として算出されてよく、Σ５の算出に用いられるΔ１の値は、“Ｔ１の読取値”−初期値“２５５”として算出されてよい。
【０１１４】
Ｔ７以降は、基準値比較部２５は、前回の判定値が“０”（白）であるため、差分加算値ΣＸと第２基準値とを比較する。
【０１１５】
例えば、図１３において符号Ｂを付した破線で囲った部分では、Ｔ５〜Ｔ１０の区間におけるΔ６〜Δ１０の差分加算値Σ１０（符号Ｂの高さに相当）は負の値であり、予め設定した第２基準値（正の値；符号Ｂ′参照）以下である。このため、基準値比較部２５は、Ｔ１０において、読取値は“白”のまま変化なしと判断できる。
【０１１６】
また、図１３において符号Ｃを付した破線で囲った部分では、Ｔ１１〜Ｔ１６の区間におけるΔ１２〜Δ１６の差分加算値Σ１６（符号Ｃの高さに相当）は“０”付近の値であり、予め設定した第２基準値（正の値；符号Ｃ′参照）以下である。このため、基準値比較部２５は、Ｔ１６において、読取値は“白”のまま変化なしと判断できる。なお、符号Ｃの部分では、種々の要因により波形が大きく変動しているが、差分加算値Σ１６を求めて基準値と比較することにより、種々の要因による波形の変動を相殺でき、この波形の変動によるバーの誤判定を抑制できる。
【０１１７】
図１３において符号Ｄを付した破線で囲った部分では、Ｔ１４〜Ｔ１９の区間におけるΔ１５〜Δ１９の差分加算値Σ１９（符号Ｄの高さに相当）は正の値であり、予め設定した第２基準値（正の値；符号Ｄ′参照）よりも大きい。このため、基準値比較部２５は、Ｔ１９の時点で読取値が“白”から“黒”に変化したと判断できる。
【０１１８】
換言すれば、基準値比較部２５は、差分加算値Σ６の値（高さ）と、差分加算値Σ６の対象区間（ドット、幅）とにより符号ａ〜ｄで示す直線の傾きをそれぞれ求め、傾きと基準値とにより、バーの色の変化の有無を判断するといえる。なお、直線の傾きは「ｎ」の値に応じて変化するため、基準値は、上述のように、「ｎ」の値に応じて設定されてもよい。例えば、基準値は、「ｎ」の値が大きいほど、大きい値となるように設定されてよい。
【０１１９】
以上のように、基準値比較部２５は、複数の差分の加算値と基準値とを比較し、比較結果に基づき、画像データを構成する複数の画素における、画素の信号値が第１及び第２の値の一方から他方に切り替わる境界位置の画素を検出するといえる。なお、境界位置の画素とは、シフトにより連続する所定数の画素の範囲に含まれることになった画素、すなわち、判定対象になったＸ番目の画素であって、バーの色が変化したと判定された画素である。例えば、図１３の例では、Ｔ６及びＴ１４のドットが境界位置の画素であるといえる。換言すれば、判定対象の画素は、境界位置の画素の候補である。
【０１２０】
ところで、図１３に示すように、従来の手法においては、バーの白／黒判定の閾値として固定値が用いられ、例えば、バーの読取値が閾値以上の場合は黒、閾値未満の場合は白、のようにバーの白／黒判定が行なわれる。しかし、この場合、バーコードラベル６ａの劣化や照明ムラ等の上述した種々の要因により、本来は黒である読取値と本来は白である読取値との間で読取波形の取得電圧レベル差が小さくなる場合がある。この場合、白／黒判定のマージンが減少してしまい、バーコードが正常に読み取れない可能性がある。
【０１２１】
これに対し、一実施形態では、複数の画素の読取値と直前の画素の判定値とに応じて閾値を可変とすることができる。例えば、図１３において符号Ａ′で示す第１基準値は、符号Ａで示す範囲に閾値（符号Ａ′の矢印の先端部分）を設定している。また、符号Ｂ′、Ｃ′、Ｄ′で示す基準値は、いずれも第２基準値であるが、それぞれ、符号Ｂで示す範囲、符号Ｃで示す範囲、符号Ｄで示す範囲に閾値（符号Ｂ′、Ｃ′、Ｄ′の各矢印の先端部分）を設定している。
【０１２２】
これにより、例えば、イメージセンサで取得された画像のコントラストが低下した場合や、外乱等が発生した場合等の種々の状況においても、読み取りエラー或いは誤認識等の発生を抑制でき、バーコードを正しく読み取れることができる。
【０１２３】
以上のように、差分算出部２３は、バーコードラベル６ａを撮影するＣＣＤリニアセンサ５７からの画素ごとの入力信号値について、隣接する画素ごとに差分値を取得する。また、差分加算部２４は、取得した複数の差分値を加算して差分加算値を取得する。そして、基準値比較部２５は、差分加算値と基準値とを比較することにより、バーコード読取画像からバーコードラベル６ａの白黒境界位置を検出する。
【０１２４】
これにより、バーコードラベル６ａの読み取りにおいて、ＣＣＤリニアセンサ５７からの入力画像データにおいて、コントラストが低下した場合であっても、高精度の白／黒判定を行なうことができ、バーコード読み取り精度を向上させることができる。
【０１２５】
図１４は、劣化したバーコードラベル６ａの読取波形に対して、一実施形態に係る手法により白／黒判定処理を行なった場合の判定後の波形を例示する図である。
【０１２６】
図１４に示すように、劣化したバーコードラベル６ａでは、黒バーの読取値と白バーの読取値との間で読取波形の取得電圧レベル差が小さく、さらに、照明ムラ等による取得電圧レベルの変動により、白／黒判定マージンが減少している（「読取波形」参照）。しかし、一実施形態の手法により白／黒判定処理を実施すると、バーコードを正常に読み取ることができる（「判定後波形」参照）。
【０１２７】
なお、劣化していないバーコードラベル６ａを読み取った場合は、読取波形の取得電圧レベル差が大きいため、従来の判定方法によってもバーコードを正常に読み取ることができる（「劣化していないバーコードラベルの読取波形」参照）。
【０１２８】
〔１−４〕動作例
次に、上述の如く構成されたバーコードリーダ１０の判定装置２０の動作例を、図１５を参照して説明する。
【０１２９】
なお、図１５に示す白／黒判定処理は、バーコードラベル６ａの１スキャンにより１ライン分の読取値がＡ／Ｄ変換部１３から判定装置２０に順次入力される場合を示すものである。
【０１３０】
図１５に示すように、判定装置２０は、上位制御部８からバーコードの走査（スキャン）開始を指示するバーコード読取コマンドを受信すると（ステップＳ１）、当該コマンドに従い、バーコード読取動作を開始する。
【０１３１】
なお、ステップＳ２では、本フローチャートの説明の便宜上、白／黒判定を行なうビットＸ及び差分加算数ｎについて、それぞれ、“Ｘ＝１”、“ｎ＝５”と定義する。
【０１３２】
判定装置２０は、操作開始前に、予め、前データ保持部２２−０〜２２−４に初期値として“２５５”（黒）のデータをセットし、前判定値記憶部２６に“黒”（或いは“２５５”）をセットする（ステップＳ３）。
【０１３３】
次いで、判定装置２０は、Ａ／Ｄ変換部１３から入力される、１ライン分のバーコード読取データのうちの、Ｘ番目のドットの読取値をデータ保持部２１に設定する（ステップＳ４）。
【０１３４】
差分算出部２３−０〜２３−４は、それぞれ、対応するデータ保持部２１又は前データ保持部２２−０〜２２−４から供給される読取値に基づいて、読取値の差分ΔＸ〜Δ（Ｘ−ｎ＋１）を算出する（ステップＳ５）。なお、差分ΔＸは、（Ｘ番目の読取値）−（Ｘ−１番目の読取値）により算出され、差分Δ（Ｘ−１）は、（Ｘ−１番目の読取値）−（Ｘ−２番目の読取値）により算出されてよい。同様に、差分Δ（Ｘ−ｎ＋１）は、（Ｘ−ｎ＋１番目の読取値）−（Ｘ−ｎ番目の読取値）により算出されてよい。
【０１３５】
差分加算部２４は、差分算出部２３が算出したｎ個の差分ΔＸ〜Δ（Ｘ−ｎ＋１）を加算して差分加算値ΣＸを算出する（ステップＳ６）。
【０１３６】
基準値比較部２５は、前判定値記憶部２６を参照して前回（Ｘ−１番目）の判定値が“黒”（例えば“２５５”）か否かを判定する（ステップＳ７）。前回の判定値が“黒”の場合（ステップＳ７でＹｅｓ）、基準値比較部２５は、差分加算値ΣＸが第１基準値よりも小さいか否かを判定する（ステップＳ８）。
【０１３７】
差分加算値ΣＸが第１基準値よりも小さくない場合（ステップＳ８でＮｏ）、基準値比較部２５は、バーが黒のまま変化なしと判断し、Ｘ番目の判定値に“２５５”（黒）を設定して（ステップＳ９）、処理がステップＳ１４に移行する。
【０１３８】
差分加算値ΣＸが第１基準値よりも小さい場合（ステップＳ８でＹｅｓ）、基準値比較部２５は、バーが黒から白に変化したと判断し、Ｘ番目の判定値に“０”（白）を設定して（ステップＳ１０）、処理がステップＳ１４に移行する。
【０１３９】
一方、ステップＳ７において、前回の判定値が“白”の場合（ステップＳ７でＮｏ）、基準値比較部２５は、差分加算値ΣＸが第２基準値よりも大きいか否かを判定する（ステップＳ１１）。
【０１４０】
差分加算値ΣＸが第２基準値よりも大きくない場合（ステップＳ１１でＮｏ）、基準値比較部２５は、バーが白のまま変化なしと判断し、Ｘ番目の判定値に“０”（白）を設定して（ステップＳ１２）、処理がステップＳ１４に移行する。
【０１４１】
差分加算値ΣＸが第２基準値よりも大きい場合（ステップＳ１１でＹｅｓ）、基準値比較部２５は、バーが白から黒に変化したと判断し、Ｘ番目の判定値に“２５５”（黒）を設定して（ステップＳ１３）、処理がステップＳ１４に移行する。
【０１４２】
ステップＳ１４では、基準値比較部２５は、ステップＳ９、Ｓ１０、Ｓ１２、又は、Ｓ１３で設定したＸ番目の判定値を、前判定値記憶部２６に設定する。また、基準値比較部２５は、Ｘ番目の判定値を上位インタフェース部１１のバーコード解析部１１２に出力する（ステップＳ１５）。
【０１４３】
判定装置２０は、ＸがＮと等しい（Ｎに達した）か否かを判定する（ステップＳ１６）。なお、Ｎは１ラインの最終ビットであり、一実施形態では、例えば“Ｎ＝１０２４”である。
【０１４４】
ＸがＮと等しくない場合（ステップＳ１６でＮｏ）、判定装置２０は、前データ保持部２２の（Ｘ−１）〜（Ｘ−ｎ＋１）のデータを（Ｘ−２）〜（Ｘ−ｎ）に設定（シフト）する（ステップＳ１７）。例えば、前データ保持部２２−０〜２２−３のデータのそれぞれが、前データ保持部２２−１〜２２−４に設定される。また、判定装置２０は、データ保持部２１のデータを前データ保持部２２の（Ｘ−１）に設定（シフト）する（ステップＳ１８）。例えば、データ保持部２１のデータが、前データ保持部２２−０に設定される。
【０１４５】
そして、判定装置２０は、Ｘの値を１増加（インクリメント）し（ステップＳ１９）、処理がステップＳ４に移行する。
【０１４６】
一方、ＸがＮと等しい場合（ステップＳ１６でＹｅｓ）、１ライン分のスキャンデータに対する白／黒判定処理が終了する。
【０１４７】
〔２〕その他
以上、本発明の好ましい実施形態について詳述したが、本発明は、かかる特定の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲内において、種々の変形、変更して実施することができる。
【０１４８】
例えば、図１２において判定装置２０は前データ保持部２２及び差分算出部２３をそれぞれ５つそなえるものとして説明したが、これに限定されるものではなく、前データ保持部２２及び差分算出部２３は、それぞれ３つ以上そなえられてよい。
【０１４９】
また、上述した説明において、白／黒の判定データとして、“０”が白を示し、“２５５”が黒を示すものとして説明したが、これに限定されるものではなく、例えば“０”が黒を示し、“２５５”が白を示してもよい。なお、バーコードを構成する２色として、白、黒以外の色が用いられてもよい。
【０１５０】
さらに、上述した説明において、判定装置２０（白／黒判定部１４）は搬送ロボット５のバーコードリーダ１０にそなえられる（実装される）ものとして説明したが、これに限定されるものではない。例えば判定装置２０は、上位制御部８にそなえられてもよい。この場合、Ａ／Ｄ変換部１３からのデジタルデータが上位制御部８に送信され、上位制御部８において判定装置２０が白／黒判定処理を行なえばよい。
【０１５１】
また、図１１及び図１２に示すバーコードリーダ１０及び判定装置２０の各機能ブロックは、それぞれ任意の組み合わせで併合してもよく、分割してもよい。
【０１５２】
さらに、上述した説明において、差分算出部２３は、入力される２つの隣接するドットの読出値のうちの新しい（Ｘに近い）ドットの読出値から、古い（Ｘから遠い）ドットの読出値を減じることで、差分を算出するものとしたが、これに限定されるものではない。例えば、差分算出部２３は、入力される２つの隣接するドットの読出値のうちの古い（Ｘから遠い）ドットの読出値から、新しい（Ｘに近い）ドットの読出値を減じることで、差分を算出してもよい。
【０１５３】
この場合、算出される差分の正負が上述した説明とは逆になる。そこで、第１及び第２基準値の符号をそれぞれ反転させるとともに、差分加算値と基準値との比較の際の不等号を逆にすればよい。例えば、図１５のステップＳ８の判定式における、第１基準値を負の値ではなく正の値とし、不等号“＜”を“＞”に変更すればよい。また、図１５のステップＳ１１における、第２基準値を正の値ではなく負の値とし、不等号“＞”を“＜”に変更すればよい。
【０１５４】
〔３〕付記
以上の実施形態に関し、更に以下の付記を開示する。
【０１５５】
（付記１）
バーコードの画像データを構成する複数の画素のうちの隣接する画素ごとに、当該隣接する画素の信号値の差分を算出する算出部と、
前記算出部が算出した複数の差分の加算値と基準値とを比較し、比較結果に基づき、前記画像データを構成する複数の画素における、画素の信号値が第１及び第２の値の一方から他方に切り替わる境界位置の画素を検出する検出部と、をそなえる
データ判定装置。
【０１５６】
（付記２）
前記算出部は、前記画像データを構成する複数の画素のうちの連続する所定数の画素における隣接する画素ごとに、当該隣接する画素の信号値の差分を算出し、
前記検出部は、前記算出部が算出した前記連続する所定数の画素における複数の差分の加算値と前記基準値とを比較し、比較結果に基づき、前記連続する所定数の画素における判定対象の画素の信号値が、前記第１の値を示すか前記第２の値を示すかを判定する、
付記１に記載のデータ判定装置。
【０１５７】
（付記３）
前記検出部による前記判定後、前記連続する所定数の画素の範囲を、前記所定数を維持した状態で、前記画像データを構成する複数の画素内で１画素分シフトさせ、
前記シフト後の連続する所定数の画素について、前記算出部の前記算出、並びに、前記検出部の前記比較及び前記判定を実行する、
付記２に記載のデータ判定装置。
【０１５８】
（付記４）
前記基準値は、前記シフト前に判定対象であった画素の信号値の判定結果に応じて変化する、
付記３に記載のデータ判定装置。
【０１５９】
（付記５）
前記判定対象の画素は、前記シフトにより前記連続する所定数の画素の範囲に含まれることになった画素であり、且つ、前記境界位置の画素の候補である、
付記３又は付記４に記載のデータ判定装置。
【０１６０】
（付記６）
前記所定数は、前記バーコードの画像データにおける幅の狭いバーの画素数よりも少ない数に制限される、
付記２〜５のいずれか１項に記載のデータ判定装置。
【０１６１】
（付記７）
各々にバーコードが表示された複数の記録媒体を収納するライブラリ装置であって、
バーコードの読取指示に応じて一の記録媒体のバーコードを読み取る読取装置をそなえ、
前記読取装置が、
バーコードの画像データを構成する複数の画素のうちの隣接する画素ごとに、当該隣接する画素の信号値の差分を算出する算出部と、
前記算出部が算出した複数の差分の加算値と基準値とを比較し、比較結果に基づき、前記画像データを構成する複数の画素における、画素の信号値が第１及び第２の値の一方から他方に切り替わる境界位置の画素を検出する検出部と、をそなえる
ライブラリ装置。
【０１６２】
（付記８）
前記算出部は、前記画像データを構成する複数の画素のうちの連続する所定数の画素における隣接する画素ごとに、当該隣接する画素の信号値の差分を算出し、
前記検出部は、前記算出部が算出した前記連続する所定数の画素における複数の差分の加算値と前記基準値とを比較し、比較結果に基づき、前記連続する所定数の画素における判定対象の画素の信号値が、前記第１の値を示すか前記第２の値を示すかを判定する、
付記７に記載のライブラリ装置。
【０１６３】
（付記９）
前記検出部による前記判定後、前記連続する所定数の画素の範囲を、前記所定数を維持した状態で、前記画像データを構成する複数の画素内で１画素分シフトさせ、
前記シフト後の連続する所定数の画素について、前記算出部の前記算出、並びに、前記検出部の前記比較及び前記判定を実行する、
付記８に記載のライブラリ装置。
【０１６４】
（付記１０）
前記基準値は、前記シフト前に判定対象であった画素の信号値の判定結果に応じて変化する、
付記９に記載のライブラリ装置。
【０１６５】
（付記１１）
前記判定対象の画素は、前記シフトにより前記連続する所定数の画素の範囲に含まれることになった画素であり、且つ、前記境界位置の画素の候補である、
付記９又は付記１０に記載のライブラリ装置。
【０１６６】
（付記１２）
前記所定数は、前記バーコードの画像データにおける幅の狭いバーの画素数よりも少ない数に制限される、
付記８〜１１のいずれか１項に記載のライブラリ装置。
【０１６７】
（付記１３）
バーコードの画像データを構成する複数の画素のうちの隣接する画素ごとに、当該隣接する画素の信号値の差分を算出し、
前記算出した複数の差分の加算値と基準値とを比較し、
比較結果に基づき、前記画像データを構成する複数の画素における、画素の信号値が第１及び第２の値の一方から他方に切り替わる境界位置の画素を検出する、
処理をコンピュータに実行させる、データ判定プログラム。
【０１６８】
（付記１４）
前記算出は、前記画像データを構成する複数の画素のうちの連続する所定数の画素における隣接する画素ごとに、当該隣接する画素の信号値の差分を算出し、
前記検出は、
前記算出した前記連続する所定数の画素における複数の差分の加算値と前記基準値とを比較し、
比較結果に基づき、前記連続する所定数の画素における判定対象の画素の信号値が、前記第１の値を示すか前記第２の値を示すかを判定する、
付記１３に記載のデータ判定プログラム。
【０１６９】
（付記１５）
前記判定後、前記連続する所定数の画素の範囲を、前記所定数を維持した状態で、前記画像データを構成する複数の画素内で１画素分シフトさせ、
前記シフト後の連続する所定数の画素について、前記算出、並びに、前記比較及び前記判定を実行する、
付記１４に記載のデータ判定プログラム。
【０１７０】
（付記１６）
前記基準値は、前記シフト前に判定対象であった画素の信号値の判定結果に応じて変化する、
付記１５に記載のデータ判定プログラム。
【０１７１】
（付記１７）
前記判定対象の画素は、前記シフトにより前記連続する所定数の画素の範囲に含まれることになった画素であり、且つ、前記境界位置の画素の候補である、
付記１５又は付記１６に記載のデータ判定プログラム。
【０１７２】
（付記１８）
前記所定数は、前記バーコードの画像データにおける幅の狭いバーの画素数よりも少ない数に制限される、
付記１４〜１７のいずれか１項に記載のデータ判定プログラム。
【符号の説明】
【０１７３】
１    ライブラリ装置
２    バックセル
２ａ，３ａ    板金
２ｂ，３ｂ    ネジ
３    サイドセル
４    ドライブモジュール
５    搬送ロボット
６    媒体カートリッジ
６ａ    バーコードラベル
７    ホスト
８    上位制御部
８ａ    不揮発性メモリ
９    ロボット制御部
１０    バーコードリーダ
１１    上位インタフェース部
１２    コマンド処理部
１３    Ａ／Ｄ変換部
１４    白／黒判定部
２０    判定装置
２１    データ保持部
２２、２２−０〜２２−４    前データ保持部
２３、２３−０〜２３−４    差分算出部
２４    差分加算部
２５    基準値比較部
２６    前判定値記憶部
５０    制御ボード
５１    レール
５２    バランサ
５３    Ｚ機構
５４    Ｘ機構
５５    スイブル機構
５６    ＬＥＤ照明ユニット
５７    ＣＣＤリニアセンサ
５８    ハンド機構
５９    レンズ
１１１    コマンド発行部
１１２    バーコード解析部
【図１】
2019061527.tif 000003
【図２】
2019061527.tif 000004
【図３】
2019061527.tif 000005
【図４】
2019061527.tif 000006
【図５】
2019061527.tif 000007
【図６】
2019061527.tif 000008
【図７】
2019061527.tif 000009
【図８】
2019061527.tif 000010
【図９】
2019061527.tif 000011
【図１０】
2019061527.tif 000012
【図１１】
2019061527.tif 000013
【図１２】
2019061527.tif 000014
【図１３】
2019061527.tif 000015
【図１４】
2019061527.tif 000016
【図１５】
2019061527.tif 000017