(57)【要約】      （修正有）【課題】作業対象物に付与されたコード情報を読み取る作業を効率化することができるコード情報読取装置、方法及びプログラムを提供する。【解決手段】コード情報読取装置において認識部は、動画データに含まれる複数のフレーム７０の各々から、矩形枠７４に囲まれたコード情報７２を検出すると共に、コード情報７２を認識する。判定部は、認識部により認識された認識結果の少なくとも一部が予め定めた文字に一致する場合、認識結果の文字数が予め定めた数と一致する場合及び２以上の連続するフレームから同一の認識結果が認識された場合の少なくとも１つの場合に、認識結果が適切であるとする。出力部は、判定部により適切と判定された認識結果を用いて、コード情報７２の読取結果を出力する。【選択図】図４
2020064374.tif 000002
【特許請求の範囲】
【請求項１】
動画データに含まれる複数のフレームの各々からコード情報を検出すると共に、前記コード情報を認識する認識部と、
前記認識部により認識された認識結果の特徴に基づいて、前記認識結果が適切か否かを判定する判定部と、
前記判定部により適切と判定された認識結果を用いて、前記コード情報の読取結果を出力する出力部と、
を含むコード情報読取装置。
【請求項２】
前記判定部は、前記認識結果の少なくとも一部が予め定めた文字に一致する場合、前記認識結果の文字数が予め定めた数と一致する場合、及び２以上の連続するフレームから同一の認識結果が認識された場合の少なくとも１つの場合に、前記認識結果が適切であると判定する請求項１に記載のコード情報読取装置。
【請求項３】
前記判定部により適切と判定された認識結果の種類毎に、前記認識結果の確からしさを統計的に算出する算出部をさらに含む請求項１又は請求項２に記載のコード情報読取装置。
【請求項４】
前記算出部は、前記複数のフレーム数のうち、前記判定部により適切と判定された認識結果が得られたフレーム数に対する、前記認識結果の種類毎の出現頻度を、前記認識結果の確からしさとして算出する請求項３に記載のコード情報読取装置。
【請求項５】
動画データに含まれる複数のフレームの各々からコード情報を検出すると共に、前記コード情報を認識し、
認識された前記コード情報の認識結果の特徴に基づいて、前記認識結果が適切か否かを判定し、
適切と判定された前記認識結果を用いて、前記コード情報の読取結果を出力する
ことを含む処理をコンピュータが実行するコード情報読取方法。
【請求項６】
動画データに含まれる複数のフレームの各々からコード情報を検出すると共に、前記コード情報を認識し、
認識された前記コード情報の認識結果の特徴に基づいて、前記認識結果が適切か否かを判定し、
適切と判定された前記認識結果を用いて、前記コード情報の読取結果を出力する
ことを含む処理をコンピュータに実行させるためのコード情報読取プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
開示の技術は、コード情報読取装置、コード情報読取方法、及びコード情報読取プログラムに関する。
【背景技術】
【０００２】
現在、例えば、製品を製造する工場において、製品の出荷ミス防止や、組み込んだ部品のトレーサビリティを取るために、製品や部品を、消費又は廃棄まで追跡可能な状態にすることが必須となっている。このような製品や部品の追跡のために、製品や部品の出荷及び受入れや製造ラインの現場において、段ボール、製品、部品等に付与されたバーコードやＱＲコード（登録商標）などのコード情報を読み取ることが行われている。
【０００３】
コード情報の読み取りに関する技術として、バーコードに含められた情報を読み出す方法が提案される。この方法は、第１の画質を有し、第１の領域を撮像した第１の画像に、バーコードが存在することを検出する工程を備える。また、この方法は、バーコードが存在することが検出された場合、第２の画質を有し、第２の領域を撮像した第２の画像であって、第２の画質は第１の画質よりも高く、第２の領域が少なくとも第１の領域と部分的に重なる第２の画像を取得する工程を備える。さらに、この方法は、情報を読み出すために、第２の画像に基づいてバーコードを復号する工程を備える。
【０００４】
また、移動物に貼り付けられたバーコードラベルを、不特定方向で通過した場合にも高精度に認識する技術が提案されている。この技術では、バーコードラベルを貼り付けた移動物を移動するためのベルトコンベアの上部に設置された複数のマルチカメラユニットから取り込まれた画像をバーコード認識装置へ送る。バーコード認識装置では、入力画像をフィルタリング処理してマルチカメラユニットから取り込んだ画像よりバーコードを抽出する。そして抽出されたバーコードの傾きを検出し、この傾きに応じてバーコードの特徴量を抽出し、この抽出された特徴量に基づいてバーコードを認識する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特表２０１１−５１３８０９号公報
【特許文献２】特開平９−１８５６７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上記のような製品や部品の追跡が必要な現場において、現状の方式では、ハンディタイプのコードリーダで一つ一つ作業員が手作業でバーコードやＱＲコード（登録商標）を読み取る方式を取っている。この場合、作業員は、製品の受け入れや組み込み等の本来の作業をいったん停止し、コードリーダを手に取ってバーコードやＱＲコード（登録商標）を読み取る必要があり、本来の作業の効率低下を招いている。
【０００７】
また、上記の従来技術のように、出荷などの現場で使用されることが多く、ベルトコンベア上に設置され、製品が流れ行くタイミングなどでバーコードを読み取る設置型のバーコードリーダもある。設置型のバーコードリーダは、一般的なハンディタイプのバーコードリーダより、撮影可能距離及び範囲が広く、ハード割り込み等のタイミングで１ショット（１フレーム）の画像を撮影して、バーコードを認識し、結果を出力する。
【０００８】
このように、ワンショット撮影した画像からバーコードやＱＲコード（登録商標）を読み取るためには、撮影タイミングには必ずバーコードやＱＲコード（登録商標）が、認識可能な状態でカメラに映っている必要がある。すなわち、認識すべきバーコードやＱＲコード（登録商標）に、作業員の映り込みや影などがかからない状態で撮影される必要がある。
【０００９】
しかし、多くの作業員が作業している組み込みラインや、製品の受け入れ及び出荷の現場では、本来の作業を行う中で、バーコードやＱＲコード（登録商標）の読み取りを作業員が意識することなく、撮影タイミングに上記のような状態を保つことは困難である。
【００１０】
一つの側面として、開示の技術は、作業対象物に付与されたコード情報を読み取る作業を効率化することができるコード情報読取装置、方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
一つの態様として、開示の技術は、動画データに含まれる複数のフレームの各々からコード情報を検出すると共に、前記コード情報を認識する認識部を備える。また、開示の技術は、前記認識部により認識された認識結果の特徴に基づいて、前記認識結果が適切か否かを判定する判定部を備える。また、開示の技術は、前記判定部により適切と判定された認識結果を用いて、前記コード情報の読取結果を出力する出力部を備える。
【発明の効果】
【００１２】
一つの側面として、作業対象物に付与されたコード情報を読み取る作業を効率化することができる、という効果を有する。
【図面の簡単な説明】
【００１３】
【図１】第１実施形態に係るコード情報読取装置の機能ブロック図である。
【図２】コード情報の検出及び認識を説明するための図である。
【図３】第１実施形態における記録テーブルの一例を示す図である。
【図４】複数のフレームにおける、コード情報の検出結果及び認識結果の一例を示す図である。
【図５】第１実施形態に係るコード情報読取装置として機能するコンピュータの概略構成を示すブロック図である。
【図６】第１実施形態におけるコード情報読取処理の一例を示すフローチャートである。
【図７】第２実施形態に係るコード情報読取装置の機能ブロック図である。
【図８】複数のフレームにおける、コード情報の検出結果及び認識結果の一例を示す図である。
【図９】第２実施形態における記録テーブルの一例を示す図である。
【図１０】第２実施形態に係るコード情報読取装置として機能するコンピュータの概略構成を示すブロック図である。
【図１１】第２実施形態におけるコード情報読取処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１４】
以下、図面を参照して、開示の技術に係る実施形態の一例を説明する。
【００１５】
＜第１実施形態＞
図１に示すように、第１実施形態に係るコード情報読取装置１０は、カメラ３０で撮影された動画データを取得し、取得した動画データからバーコードやＱＲコード（登録商標）などのコード情報を読み取った読取結果を出力する。
【００１６】
カメラ３０は、例えば、コード情報が付与された作業対象の製品の受け入れ及び出荷ラインの動線や組み込みライン上に設置され、作業員が製品に対して作業を行っている領域を継続的に動画撮影し、動画データを出力する。
【００１７】
コード情報読取装置１０は、機能的には、認識部１２と、判定部１４と、出力部１８とを含む。
【００１８】
認識部１２は、カメラ３０から取得した動画データに含まれる複数のフレームの各々からコード情報を検出すると共に、そのコード情報が示す文字列を認識する。コード情報の検出及び認識には、従来既知の手法を用いることができる。例えば、認識部１２は、図２に示すように、各フレーム７０からコード情報７２の外形を囲む矩形枠７４を検出する。また、認識部１２は、矩形枠７４内の画像を認識し、認識結果である文字列を取得する。
【００１９】
認識部１２は、フレーム７０毎の認識結果を、そのフレーム７０のフレーム番号に対応付けて、例えば図３に示すような記録テーブル８０に記録する。図３の例では、記録テーブル８０には、「フレーム番号」、「認識結果」、「先頭文字列」、「文字数」、「連続出現数」、及び「読取結果」が対応付けて記録されている。なお、「先頭文字列」、「文字数」、「連続出現数」、及び「読取結果」については後述する。
【００２０】
ここで、作業員がコード情報７２の読み取りを意識することなく、製品の受け入れや組み込みなどの本来の作業を行う場合、読取対象のコード情報７２の一部が見切れる、手で隠れる、影が出るなどにより、コード情報７２の検出及び認識をできない場合がある。さらに、フレーム７０内に映り込んだ作業員の手やコネクタ部などのコード情報７２ではない部位をコード情報７２と誤検出する場合もある。
【００２１】
図４に、複数のフレーム７０における、コード情報７２の検出結果及び認識結果の一例を示す。なお、以下では、動画データの開始フレーム７０から順に各フレーム７０に付与されるフレーム番号がｉ番のフレーム７０を「フレーム＃ｉ」と表記する。図４の例では、フレーム＃１、フレーム＃４、及びフレーム＃５の各々では、コード情報７２の検出及び認識が正しく行われている。一方、フレーム＃２では、作業員の手をコード情報７２と誤って検出しているため、コード情報７２の認識結果も誤ったものとなっている。さらに、フレーム＃３では、フレーム７０内に映り込んだ作業員の手によりコード情報７２が隠れてしまい、コード情報７２の検出自体が失敗し、認識結果も得られていない。
【００２２】
このように、複数のフレーム７０の各々について得た認識結果には、正しい認識結果と正しくない認識結果とが混在することになる。
【００２３】
そこで、判定部１４は、認識部１２により認識された認識結果の特徴に基づいて、認識結果が適切か否かを判定する。具体的には、判定部１４は、以下の少なくとも１つに該当する場合に、認識結果が適切であると判定する。１つ目は、認識結果の少なくとも一部が予め定めた文字に一致する場合である。２つ目は、認識結果の文字数が予め定めた数と一致する場合である。３つ目は、２以上の連続するフレーム７０から同一の認識結果が認識された場合である。
【００２４】
１つ目の場合の例として、例えば、コード情報７２の認識結果の先頭に必ず「ａｂｃ」が含まれることが既知の場合、判定部１４は、認識結果の先頭部分が「ａｂｃ」に一致する場合に、認識結果が適切であると判定する。そして、判定部１４は、認識結果を先頭文字列に基づいて適切であると判定した場合は、記録テーブル８０の「先頭文字列」欄に、認識結果が適切であることを示す「ＯＫ」を記録する。一方、判定部１４は、認識結果を先頭文字列に基づいて適切ではないと判定した場合は、記録テーブル８０の「先頭文字列」欄に、認識結果が誤認識であることを示す「ＮＧ」を記録する。
【００２５】
また、２つ目の例として、例えば、コード情報７２の認識結果が必ず５文字であることが既知の場合、判定部１４は、認識結果の文字数が５文字である場合に、認識結果が適切であると判定する。そして、判定部１４は、認識結果を文字数に基づいて適切であると判定した場合は、記録テーブル８０の「文字数」欄に「ＯＫ」を記録する。一方、判定部１４は、認識結果を文字数に基づいて適切ではないと判定した場合は、記録テーブル８０の「文字数」欄に「ＮＧ」を記録する。
【００２６】
また、３つ目の例として、例えば、判定部１４は、認識結果の種類毎に、各フレーム７０において、連続出現数をカウントし、記録テーブル８０の「連続出現数」欄に記録する。また、判定部１４は、前フレーム７０まで出現していた認識結果が現フレーム７０で出現しなかった場合には、連続出現数のカウントをクリアする。判定部１４は、連続出現数のカウントが、例えば「２」となった場合に、その認識結果が適切であると判定する。認識結果の誤認識は、例えば１フレーム又は２フレーム程度の連続性で一時的に発生する場合が多いため、連続出現数の閾値としては、２又は３などの値を定めておくことができる。
【００２７】
図４の例を用いてより具体的に説明する。フレーム＃１において、認識結果「ａｂｃｄｅ」が得られているため、判定部１４は、認識結果「ａｂｃｄｅ」の連続出現数のカウントを１とし、記録テーブル８０の「連続出現数」欄に記録する。フレーム＃２において、認識結果「ａｂｄｇ」が得られており、認識結果「ａｂｃｄｅ」は得られていないため、判定部１４は、認識結果「ａｂｄｇ」の「連続出現数」に１を記録し、認識結果「ａｂｃｄｅ」の「連続出現数」をクリアする。フレーム＃３において、いずれの認識結果も得られていないため、判定部１４は、認識結果「ａｂｄｇ」の「連続出現数」をクリアする。フレーム＃４において、認識結果「ａｂｃｄｅ」が得られているため、判定部１４は、認識結果「ａｂｃｄｅ」の「連続出現数」に１を記録する。そして、フレーム＃５において、認識結果「ａｂｃｄｅ」が得られているため、判定部１４は、認識結果「ａｂｃｄｅ」の連続出現数を１カウントアップし、認識結果「ａｂｃｄｅ」の「連続出現数」に２を記録する。この時点で、判定部１４は、認識結果「ａｂｃｄｅ」を適切であると判定する。
【００２８】
判定部１４は、上記３つの判定結果に基づいて、フレーム７０毎に、認識結果を適切であると判定した場合に、その認識結果を読取結果として出力する候補として、記録テーブル８０の「読取結果」欄に記録する。判定部１４は、図３のＰ行に示すように、３つ全ての判定で適切と判定した場合に、その認識結果を読取結果として出力すると判定してもよい（パターン１）。また、判定部１４は、図３のＱ行に示すように、いずれか１つの判定で適切と判定した場合に、その認識結果を読取結果として出力すると判定してもよい（パターン２）。また、判定部１４は、いずれか２つの判定で適切と判定した場合に、その認識結果を読取結果として出力すると判定してもよい。なお、３つ全ての判定で適切と判定した場合に、その認識結果を読取結果として出力すると判定する場合、いずれか１つの判定で適切ではない、すなわち誤認識であると判定した場合には、他の判定は省略してもよい。
【００２９】
出力部１８は、判定部１４により適切と判定された認識結果を用いて、コード情報７２の読取結果を出力する。具体的には、出力部１８は、記録テーブル８０の「読取結果」欄に記録された読取結果の候補に基づいて、最終的な読取結果を出力する。「読取結果」欄に複数種類の候補が存在する場合には、例えば、最も多く「読取結果」欄に記録されている候補を選択して、最終的な読取結果として出力してもよいし、全ての種類の候補を最終的な読取結果として出力してもよい。複数種類の候補を読取結果として出力する場合、候補毎に、「読取結果」欄に記録されている回数と合わせて出力するようにしてもよい。
【００３０】
コード情報読取装置１０は、例えば図５に示すコンピュータ４０で実現することができる。コンピュータ４０は、ＣＰＵ（Central Processing Unit）４１と、一時記憶領域としてのメモリ４２と、不揮発性の記憶部４３とを備える。また、コンピュータ４０は、入力部、表示部等の入出力装置４４と、記憶媒体４９に対するデータの読み込み及び書き込みを制御するＲ／Ｗ（Read/Write）部４５とを備える。また、コンピュータ４０は、インターネット等のネットワークに接続される通信Ｉ／Ｆ（interface）４６を備える。ＣＰＵ４１、メモリ４２、記憶部４３、入出力装置４４、Ｒ／Ｗ部４５、及び通信Ｉ／Ｆ４６は、バス４７を介して互いに接続される。
【００３１】
記憶部４３は、ＨＤＤ（Hard Disk Drive）、ＳＳＤ（Solid State Drive）、フラッシュメモリ等によって実現できる。記憶媒体としての記憶部４３には、コンピュータ４０を、コード情報読取装置１０として機能させるためのコード情報読取プログラム５０が記憶される。コード情報読取プログラム５０は、認識プロセス５２と、判定プロセス５４と、出力プロセス５８とを有する。
【００３２】
ＣＰＵ４１は、コード情報読取プログラム５０を記憶部４３から読み出してメモリ４２に展開し、コード情報読取プログラム５０が有するプロセスを順次実行する。ＣＰＵ４１は、認識プロセス５２を実行することで、図１に示す認識部１２として動作する。また、ＣＰＵ４１は、判定プロセス５４を実行することで、図１に示す判定部１４として動作する。また、ＣＰＵ４１は、出力プロセス５８を実行することで、図１に示す出力部１８として動作する。これにより、コード情報読取プログラム５０を実行したコンピュータ４０が、コード情報読取装置１０として機能することになる。なお、プログラムを実行するＣＰＵ４１はハードウェアである。
【００３３】
なお、コード情報読取プログラム５０により実現される機能は、例えば半導体集積回路、より詳しくはＡＳＩＣ（Application Specific Integrated Circuit）等で実現することも可能である。
【００３４】
次に、第１実施形態に係るコード情報読取装置１０の作用について説明する。
【００３５】
バーコードやＱＲコード（登録商標）などのコード情報７２が付与された、作業対象の製品に対する作業の開始を示す信号がコード情報読取装置１０に入力されると、コード情報読取装置１０において、図６に示すコード情報読取処理が実行される。コード情報読取処理は、開示の技術のコード情報読取方法の一例である。
【００３６】
また、上記の作業の開始を示す信号は、例えば、製品毎の作業開始時に作業員が操作スイッチを押下することにより出力される信号や、ベルトコンベア等で搬送される製品が所定位置を通過したことをセンサが検知した場合にセンサから出力される信号とすることができる。また、カメラ３０からコード情報読取装置１０へ入力される動画データにおいて、コード情報７２が検出されないフレーム７０が所定時間以上（例えば、１秒以上）継続した場合に、前の製品に対する作業が終了し、次の製品に対する作業が開始することを特定してもよい。
【００３７】
図６に示すコード情報読取処理のステップＳ１２で、認識部１２が、カメラ３０から入力された動画データから１フレーム分の画像データを取得する。
【００３８】
次に、ステップＳ１４で、認識部１２が、上記ステップＳ１２で取得したフレーム７０から、コード情報７２を検出すると共に、そのコード情報７２が示す文字列を認識する。
【００３９】
次に、ステップＳ１６で、認識部１２が、認識結果をフレーム番号に対応付けて、例えば図３に示すような記録テーブル８０に記録する。
【００４０】
例えば、フレーム＃１において、「ａｂｃｄｅ」という認識結果が得られた場合、認識部１２は、図３に示すように、記録テーブル８０の「フレーム番号」欄に「１」、「認識結果」欄に「ａｂｃｄｅ」を記録する。
【００４１】
次に、ステップＳ１８で、判定部１４が、認識結果の先頭部分の文字列が予め定めた文字列に一致するか否かを判定する。先頭文字列が一致する場合には、ステップＳ２０へ移行し、判定部１４が、記録テーブル８０の「先頭文字列」欄に「ＯＫ」を記録する。一方、先頭文字列が一致しない場合には、ステップＳ２２へ移行し、判定部１４が、「先頭文字列」欄に「ＮＧ」を記録する。
【００４２】
例えば、図３に示す記録テーブル８０の例で、予め定めた文字列が「ａｂｃ」の場合、フレーム＃１の認識結果「ａｂｃｄｅ」の先頭文字列は、予め定めた文字列「ａｂｃ」に一致するため、判定部１４は、「先頭文字列」欄に「ＯＫ」を記録する。
【００４３】
次に、ステップＳ２４で、判定部１４が、認識結果の文字列が予め定めた文字数に一致するか否かを判定する。文字数が一致する場合には、ステップＳ２６へ移行し、判定部１４が、記録テーブル８０の「文字数」欄に「ＯＫ」を記録する。一方、文字数が一致しない場合には、ステップＳ２８へ移行し、判定部１４が、「文字数」欄に「ＮＧ」を記録する。
【００４４】
例えば、図３に示す記録テーブル８０の例で、予め定めた文字数が５文字の場合、フレーム＃１の認識結果「ａｂｃｄｅ」の文字数は５文字であり、予め定めた文字数に一致するため、判定部１４は、「文字数」欄に「ＯＫ」を記録する。
【００４５】
次に、ステップＳ３０で、判定部１４が、前フレーム７０で得られている認識結果と、上記ステップＳ１４で認識された認識結果とが同一か否かを判定する。同一の場合には、ステップＳ３２へ移行し、同一ではない場合には、ステップＳ３４へ移行する。
【００４６】
ステップＳ３２では、判定部１４が、前フレーム７０における「連続出現数」に１加算した値を、現フレーム７０の「連続出現数」欄に、認識結果と対応付けて記録する。例えば、図３に示す記録テーブル８０の例で、フレーム＃５において、前フレーム＃４の認識結果「ａｂｃｄｅ」と同一の認識結果が得られている。したがって、フレーム＃５の「連続出現数」欄には、フレーム＃４の「連続出現数」欄に記録されている値「１」に１加算した「２」と、認識結果「ａｂｃｄｅ」とが対応付けて記録される。
【００４７】
一方、ステップＳ３４では、判定部１４が、前フレーム７０における認識結果の連続出現数をクリアすると共に、現フレーム７０の認識結果に連続出現数１を対応付けて、「連続出現数」欄に記録する。例えば、図３に示す記録テーブル８０の例で、フレーム＃２において得られた認識結果「ａｂｄｇ」は、前フレーム＃１の認識結果「ａｂｃｄｅ」とは同一ではない。したがって、フレーム＃２の「連続出現数」欄では、フレーム＃１の認識結果「ａｂｃｄｅ」の連続出現数をクリアすると共に、認識結果「ａｂｄｇ」と連続出現数１とが対応付けて、「連続出現数」欄に記録される。
【００４８】
次に、ステップＳ３６で、認識部１２が、現在作業中の製品に対する作業が終了したか否かを判定する。例えば、作業員が作業終了を示す操作スイッチを押下した場合、作業対象の製品がベルトコンベア等で搬送されて、作業領域から出たことをセンサが検知した場合などに、作業が終了したと判定することができる。また、上記の作業の開始を示す信号が入力された場合に、次の製品に対する作業を開始すること、すなわち、現在作業中の製品に対する作業が終了したと判定してもよい。現在作業中の製品に対する作業が終了していない場合には、ステップＳ１２に戻り、作業が終了した場合には、ステップＳ３８へ移行する。
【００４９】
ステップＳ３８では、判定部１４が、上記ステップＳ１８〜Ｓ３４での判定に基づいて、認識結果が適切であると判定した場合には、その認識結果を、読取結果として出力する候補として、記録テーブル８０の「読取結果」欄に記録する。
【００５０】
例えば、図３に示す記録テーブル８０の例で、判定部１４は、「先頭文字列」及び「文字数」が共に「ＯＫ」、かつ「連続出現数」が２以上である認識結果を、読取結果の候補として「読取結果」欄に記録する。判定部１４は、該当する認識結果がない場合には、「読取結果」欄に「なし」を記録する。例えば、フレーム＃５では、認識結果「ａｂｃｄｅ」は、全ての条件を満たすため、「読取結果」欄に記録される。一方、フレーム＃１及びフレーム＃４では、認識結果「ａｂｃｄｅ」は、連続出現数の条件を満たさないため、「読取結果」は「なし」となる。フレーム＃２では、認識結果「ａｂｄｇ」は、いずれの条件も満たしておらず、「読取結果」は「なし」となる。また、フレーム＃３では、認識結果自体が存在しないため、「読取結果」は「なし」となる。
【００５１】
また、例えば、判定部１４は、「先頭文字列」が「ＯＫ」、「文字数」が「ＯＫ」、及び「連続出現数」が２以上の少なくとも１つを満たす認識結果を、読取結果の候補として「読取結果」欄に記録してもよい。この場合、上記の３つ全ての条件を満たす場合と異なり、フレーム＃１及びフレーム＃４の認識結果「ａｂｃｄｅ」が、「先頭文字列」及び「文字数」の条件を満たすため、「読取結果」欄に記録される。
【００５２】
そして、出力部１８が、記録テーブル８０の「読取結果」欄に記録された読取結果の候補に基づいて、最終的な読取結果を出力する。例えば、図３に示す記録テーブル８０の例では、「読取結果」欄には、「ａｂｃｄｅ」という読取結果の候補しか記録されていないため、「ａｂｃｄｅ」が最終的な読取結果として出力される。一方、認識結果として得られているもう１種類の「ａｂｄｇ」は、判定部１４による適切性の判定で誤認識と判定されて除外されたため、読取結果としては出力されない。
【００５３】
読取結果が出力されるとコード情報読取処理は終了し、次の作業の開始を示す信号の入力待ちとなる。なお、作業の開始を示す信号を用いて、上記ステップＳ３６の判定を行う場合は、ステップＳ３８終了後、ステップＳ１２に戻る。
【００５４】
以上説明したように、第１実施形態に係るコード情報読取装置は、動画データに含まれる複数のフレームの各々からコード情報を認識した認識結果の特徴に基づいて、認識結果が適切か否かを判定する。認識結果の特徴としては、認識結果の少なくとも一部が予め定めた文字に一致するか、認識結果の文字数が予め定めた数と一致するか、及び２以上の連続するフレームから同一の認識結果が認識されたかが判定される。そして、適切と判定された認識結果を用いて、最終的な読取結果を出力する。コード情報の読取作業を意識することなく、製品の受け入れや組み込みなどの本来の作業を行う場合、一時的に、認識対象のコード情報の一部が見切れる、手で隠れる、影が出るなどにより、コード情報を正しく認識できないフレームが発生し得る。第１実施形態に係るコード情報読取装置によれば、上記のように、動画データの複数フレームの各々から認識された認識結果のうち、適切ではない認識結果、すなわち誤認識された認識結果を除外するため、精度良くコード情報を読み取ることができる。すなわち、意識的にコード情報を読み取る作業が不要となり、作業対象物に付与されたコード情報を読み取る作業が効率化することができる。
【００５５】
なお、第１実施形態では、認識結果の先頭部分の文字列が予め定めた文字列に一致するか否かを判定する場合について説明したが、これに限定されない。例えば、先頭から３〜５文字目が「ｃｄｅ」に一致するか否かのように、認識結果の任意の位置の文字列の一致を判定するようにしてもよい。
【００５６】
＜第２実施形態＞
次に第２実施形態について説明する。なお、第２実施形態に係るコード情報読取装置において、第１実施形態に係るコード情報読取装置１０と同様の部分については、同一の符号を付して詳細な説明を省略する。
【００５７】
図７に示すように、第２実施形態に係るコード情報読取装置２１０は、機能的には、認識部１２と、判定部１４と、算出部２１６と、出力部２１８とを含む。
【００５８】
算出部２１６は、判定部１４により適切と判定された認識結果、すなわち読取結果の候補の種類毎に、認識結果の確からしさを統計的に算出する。例えば、算出部２１６は、所定期間の動画データに含まれる複数のフレーム７０のうち、読取結果の候補が得られたフレーム数に対する、読取結果の候補の種類毎の出現頻度を、各候補の確からしさとして算出する。なお、所定期間は、例えば、１つの製品に対する作業開始から終了までの期間とすることができる。
【００５９】
ここで、図８に、複数のフレーム７０における、コード情報７２の検出結果及び認識結果の一例を示す。図８の例では、フレーム＃４及びフレーム＃５の各々において、コード情報７２の検出及び認識が正しく行われている。一方、フレーム＃１及びフレーム＃３では、コード情報７２の一部のみを誤って検出しているため、コード情報７２の認識結果も誤ったものとなっている。さらに、フレーム＃２では、フレーム７０内に作業員の手が映り込んでいるため、コード情報７２の検出自体が失敗し、認識結果も得られていない。
【００６０】
図９に、図８の例の認識結果及び判定結果を記録した記録テーブル２８０の一例を示す。なお、ここでは、判定部１４による３つの判定の全てで適切と判定された認識結果を、読取結果の候補とする場合（パターン１）について説明する。この場合、読取結果の候補が得られたフレーム数は１であり、読取結果の候補の種類としては、「ａｂｃｄｅ」のみが１回得られている。したがって、算出部２１６は、図９のＰ行に示すように、候補「ａｂｃｄｅ」の確からしさを「１／１（１００％）」と算出する。
【００６１】
ここで、判定部１４による認識結果の適切性の判定を行うことなく、図９のＱ行に示すように、認識結果の出現数に基づいて確からしさを算出したとする。この場合、誤認識の認識結果「ａｂｄｇ」が除外されておらず、また、正しい認識結果「ａｂｃｄｅ」と同数得られていることから、誤認識の認識結果「ａｂｄｇ」、正しい認識結果「ａｂｃｄｅ」共に、確からしさが「２／４（５０％）」と算出されてしまう。
【００６２】
本実施形態では、判定部１４により誤認識を除外した上で、統計的に各認識結果（読取結果の候補）の確からしさを算出しているため、精度良く確からしさを算出することができる。
【００６３】
なお、算出部２１６は、読取結果の候補の種類毎の確からしさを、各フレーム７０における認識結果が得られる毎に算出してもよい。この場合、算出部２１６は、現在のフレーム７０までに認識結果が得られたフレーム数と、読取結果の候補の種類毎の出現数とに基づいて、各候補の種類毎の確からしさを算出する。そして、算出部２１６は、算出した各候補の種類毎の確からしさを、記録テーブル２８０の該当の「フレーム番号」に対応する「確からしさ」欄に記録する。
【００６４】
出力部２１８は、読取結果の候補の各々の確からしさに基づいて、最終的な読取結果を出力する。例えば、出力部２１８は、確からしさが最も高い候補を最終的な読取結果として出力することができる。また、出力部２１８は、候補の各々に確からしさの値を対応付けて、最終的な読取結果として出力してもよい。
【００６５】
コード情報読取装置２１０は、例えば図１０に示すコンピュータ４０で実現することができる。記憶媒体としての記憶部４３には、コンピュータ４０を、コード情報読取装置２１０として機能させるためのコード情報読取プログラム２５０が記憶される。コード情報読取プログラム２５０は、認識プロセス５２と、判定プロセス５４と、算出プロセス２５６と、出力プロセス２５８とを有する。
【００６６】
ＣＰＵ４１は、コード情報読取プログラム２５０を記憶部４３から読み出してメモリ４２に展開し、コード情報読取プログラム２５０が有するプロセスを順次実行する。ＣＰＵ４１は、算出プロセス２５６を実行することで、図７に示す算出部２１６として動作する。また、ＣＰＵ４１は、出力プロセス２５８を実行することで、図７に示す出力部２１８として動作する。他のプロセスについては、第１実施形態に係るコード情報読取プログラム５０と同様である。これにより、コード情報読取プログラム２５０を実行したコンピュータ４０が、コード情報読取装置２１０として機能することになる。
【００６７】
なお、コード情報読取プログラム２５０により実現される機能は、例えば半導体集積回路、より詳しくはＡＳＩＣ等で実現することも可能である。
【００６８】
次に、第２実施形態に係るコード情報読取装置２１０の作用について説明する。第２実施形態では、コード情報読取装置２１０において、図１１に示すコード情報読取処理が実行される。なお、第２実施形態におけるコード情報読取処理において、第１実施形態におけるコード情報読取処理と同様の処理については、同一の符号を付して詳細な説明を省略する。
【００６９】
ステップＳ１２〜Ｓ１６を経て、認識結果が記録テーブル２８０に記録されると、ステップＳ４０へ移行し、判定処理が実行される。判定処理は、第１実施形態におけるコード情報読取処理（図６）のステップＳ１８〜Ｓ３４と同様である。
【００７０】
判定処理が終了すると、第１実施形態と同様に、ステップＳ３６へ移行する。
【００７１】
次に、ステップＳ２３８で、算出部２１６が、判定部１４により適切と判定された認識結果、すなわち読取結果の候補の種類毎に、認識結果の確からしさを統計的に算出する。例えば、図９の例の場合、読取結果の候補が得られているフレーム数は１で、候補「ａｂｃｄｅ」が１回記録されているため、候補「ａｂｃｄｅ」についての確からしさ「１／１（１００％）」が算出される。
【００７２】
そして、出力部２１８が、読取結果の候補の各々の確からしさに基づいて、最終的な読取結果を出力する。上記の例では、候補「ａｂｃｄｅ」を最終的な読取結果として出力する。そして、コード情報読取処理は終了する。
【００７３】
以上説明したように、第２実施形態に係るコード情報読取装置によれば、複数のフレームの各々から認識された認識結果を、その特徴に基づいて適切性を判定して誤認識を除外した上で、統計的処理により、認識結果の種類毎の確からしさを算出する。これにより、第１実施形態と同様の効果に加え、精度良く算出された確からしさに基づいて、より適切な読取結果を出力することができる。
【００７４】
なお、第２実施形態では、認識結果が得られたフレーム数に対する認識結果の種類毎の出現頻度により確からしさを算出する場合について説明したが、これに限定されない。例えば、所定期間内の全フレーム数に対する認識結果の種類毎の出現頻度により確からしさを算出してもよい。
【００７５】
また、上記各実施形態では、バーコードをコード情報の一例として図示して説明したが、ＱＲコード（登録商標）の場合も同様に適用可能である。
【００７６】
また、上記実施形態では、コード情報読取プログラムが記憶部に予め記憶（インストール）されている態様を説明したが、これに限定されない。開示の技術に係るプログラムは、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ＵＳＢメモリ等の記憶媒体に記憶された形態で提供することも可能である。
【００７７】
以上の各実施形態に関し、更に以下の付記を開示する。
【００７８】
（付記１）
動画データに含まれる複数のフレームの各々からコード情報を検出すると共に、前記コード情報を認識する認識部と、
前記認識部により認識された認識結果の特徴に基づいて、前記認識結果が適切か否かを判定する判定部と、
前記判定部により適切と判定された認識結果を用いて、前記コード情報の読取結果を出力する出力部と、
を含むコード情報読取装置。
【００７９】
（付記２）
前記判定部は、前記認識結果の少なくとも一部が予め定めた文字に一致する場合、前記認識結果の文字数が予め定めた数と一致する場合、及び２以上の連続するフレームから同一の認識結果が認識された場合の少なくとも１つの場合に、前記認識結果が適切であると判定する付記１に記載のコード情報読取装置。
【００８０】
（付記３）
前記判定部により適切と判定された認識結果の種類毎に、前記認識結果の確からしさを統計的に算出する算出部をさらに含む付記１又は付記２に記載のコード情報読取装置。
【００８１】
（付記４）
前記算出部は、前記複数のフレーム数のうち、前記判定部により適切と判定された認識結果が得られたフレーム数に対する、前記認識結果の種類毎の出現頻度を、前記認識結果の確からしさとして算出する付記３に記載のコード情報読取装置。
【００８２】
（付記５）
動画データに含まれる複数のフレームの各々からコード情報を検出すると共に、前記コード情報を認識し、
認識された前記コード情報の認識結果の特徴に基づいて、前記認識結果が適切か否かを判定し、
適切と判定された前記認識結果を用いて、前記コード情報の読取結果を出力する
ことを含む処理をコンピュータが実行するコード情報読取方法。
【００８３】
（付記６）
前記認識結果の少なくとも一部が予め定めた文字に一致する場合、前記認識結果の文字数が予め定めた数と一致する場合、及び２以上の連続するフレームから同一の認識結果が認識された場合の少なくとも１つの場合に、前記認識結果が適切であると判定する付記５に記載のコード情報読取方法。
【００８４】
（付記７）
適切と判定された前記認識結果の種類毎に、前記認識結果の確からしさを統計的に算出することをさらに含む処理を前記コンピュータが実行する付記５又は付記６に記載のコード情報読取方法。
【００８５】
（付記８）
前記複数のフレーム数のうち、適切と判定された前記認識結果が得られたフレーム数に対する、前記認識結果の種類毎の出現頻度を、前記認識結果の確からしさとして算出する付記７に記載のコード情報読取方法。
【００８６】
（付記９）
動画データに含まれる複数のフレームの各々からコード情報を検出すると共に、前記コード情報を認識し、
認識された前記コード情報の認識結果の特徴に基づいて、前記認識結果が適切か否かを判定し、
適切と判定された前記認識結果を用いて、前記コード情報の読取結果を出力する
ことを含む処理をコンピュータに実行させるためのコード情報読取プログラム。
【００８７】
（付記１０）
前記認識結果の少なくとも一部が予め定めた文字に一致する場合、前記認識結果の文字数が予め定めた数と一致する場合、及び２以上の連続するフレームから同一の認識結果が認識された場合の少なくとも１つの場合に、前記認識結果が適切であると判定する付記９に記載のコード情報読取プログラム。
【００８８】
（付記１１）
適切と判定された前記認識結果の種類毎に、前記認識結果の確からしさを統計的に算出することをさらに含む処理を前記コンピュータに実行させるための付記９又は付記１０に記載のコード情報読取プログラム。
【００８９】
（付記１２）
前記複数のフレーム数のうち、適切と判定された前記認識結果が得られたフレーム数に対する、前記認識結果の種類毎の出現頻度を、前記認識結果の確からしさとして算出する付記１１に記載のコード情報読取プログラム。
【００９０】
（付記１３）
動画データに含まれる複数のフレームの各々からコード情報を検出すると共に、前記コード情報を認識し、
認識された前記コード情報の認識結果の特徴に基づいて、前記認識結果が適切か否かを判定し、
適切と判定された前記認識結果を用いて、前記コード情報の読取結果を出力する
ことを含む処理をコンピュータに実行させるためのコード情報読取プログラムを記憶した記憶媒体。
【符号の説明】
【００９１】
１０、２１０  コード情報読取装置
１２   認識部
１４   判定部
２１６ 算出部
１８、２１８  出力部
３０   カメラ
４０   コンピュータ
４１   ＣＰＵ
４２   メモリ
４３   記憶部
４９   記憶媒体
５０、２５０  コード情報読取プログラム
７０   フレーム
７２   コード情報
７４   矩形枠
８０、２８０  記録テーブル
【図１】
2020064374.tif 000003
【図２】
2020064374.tif 000004
【図３】
2020064374.tif 000005
【図４】
2020064374.tif 000006
【図５】
2020064374.tif 000007
【図６】
2020064374.tif 000008
【図７】
2020064374.tif 000009
【図８】
2020064374.tif 000010
【図９】
2020064374.tif 000011
【図１０】
2020064374.tif 000012
【図１１】
2020064374.tif 000013