IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ キヤノン株式会社の特許一覧

特許7493927画像処理装置、画像処理方法およびプログラム
<>
  • 特許-画像処理装置、画像処理方法およびプログラム 図1
  • 特許-画像処理装置、画像処理方法およびプログラム 図2
  • 特許-画像処理装置、画像処理方法およびプログラム 図3
  • 特許-画像処理装置、画像処理方法およびプログラム 図4
  • 特許-画像処理装置、画像処理方法およびプログラム 図5
  • 特許-画像処理装置、画像処理方法およびプログラム 図6
  • 特許-画像処理装置、画像処理方法およびプログラム 図7
  • 特許-画像処理装置、画像処理方法およびプログラム 図8
  • 特許-画像処理装置、画像処理方法およびプログラム 図9
  • 特許-画像処理装置、画像処理方法およびプログラム 図10
  • 特許-画像処理装置、画像処理方法およびプログラム 図11
  • 特許-画像処理装置、画像処理方法およびプログラム 図12
  • 特許-画像処理装置、画像処理方法およびプログラム 図13
  • 特許-画像処理装置、画像処理方法およびプログラム 図14
  • 特許-画像処理装置、画像処理方法およびプログラム 図15
  • 特許-画像処理装置、画像処理方法およびプログラム 図16
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-24
(45)【発行日】2024-06-03
(54)【発明の名称】画像処理装置、画像処理方法およびプログラム
(51)【国際特許分類】
   G06K 7/10 20060101AFI20240527BHJP
   H04N 7/18 20060101ALI20240527BHJP
   G06K 7/14 20060101ALI20240527BHJP
【FI】
G06K7/10 428
H04N7/18 F
H04N7/18 K
G06K7/14 013
G06K7/14 043
【請求項の数】 19
(21)【出願番号】P 2019202220
(22)【出願日】2019-11-07
(65)【公開番号】P2021077005
(43)【公開日】2021-05-20
【審査請求日】2022-10-24
【前置審査】
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100090273
【弁理士】
【氏名又は名称】國分 孝悦
(72)【発明者】
【氏名】岡 寛人
【審査官】田中 啓介
(56)【参考文献】
【文献】特開2017-027368(JP,A)
【文献】特表2011-503748(JP,A)
【文献】特開2009-146328(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B65G1/137
G05B19/418
G06K7/00-7/14
G06T1/00-1/40
G06T3/00-5/50、7/00
G06V40/00-40/19
G06V40/30-40/70
H04N5/222-5/257、7/18
(57)【特許請求の範囲】
【請求項1】
所定の範囲に含まれる物品ごとに付された複数のデータをそれぞれ第1のカメラで撮影された第1の画像から読み取って、記憶手段に記憶された情報と照合するための情報を取得する第1の読取手段と、
前記複数のデータのうち、前記第1の読取手段によって読み取れないデータが存在する場合に、前記第1のカメラとは異なる第2のカメラから撮影した第2の画像を取得する画像取得手段と、
前記第2の画像からデータを読み取って、記憶手段に記憶された情報と照合するための情報を取得する第2の読取手段と、
前記第1の読取手段によって前記第1の画像から読み取りに成功したデータと、前記第2の読取手段によって前記第2の画像から読み取りに成功したデータとを比較する比較手段と、
前記比較手段の比較の結果、前記複数のデータの中の少なくとも一部のデータが同一である場合に、前記第1の読取手段によって読み取れないデータの代わりに、前記第2の読取手段で前記第2の画像から読み取ったデータを取得するデータ取得手段とを有することを特徴とする画像処理装置。
【請求項2】
前記画像取得手段は、前記第2のカメラとして複数のカメラから撮影した画像をそれぞれ取得し、
前記第2の読取手段は、前記複数のカメラからそれぞれ取得した画像からデータを読み取り、前記第1の読取手段によって読み取れないデータの読み取りが成功した段階で、前記複数のカメラのうち残りのカメラから取得される画像のデータの読み取りを中断することを特徴とする請求項に記載の画像処理装置。
【請求項3】
前記第1のカメラとは異なる複数のカメラが存在する場合に、前記複数のカメラから1つのカメラを前記第2のカメラとして選択する選択手段をさらに有することを特徴とする請求項に記載の画像処理装置。
【請求項4】
前記第2の読取手段によって、前記第1の読取手段によって読み取れないデータの読み取りができなかった場合に、前記選択手段は、前記複数のカメラのうちさらに異なる第3のカメラを選択し、
前記画像取得手段は、前記第3のカメラから撮影した画像を取得することを特徴とする請求項に記載の画像処理装置。
【請求項5】
前記複数のカメラでそれぞれ撮影された画像での読み取り結果を履歴情報として記憶する記憶手段をさらに備え、
前記選択手段は、前記履歴情報に基づいて、前記複数のカメラから1つのカメラを前記第2のカメラとして選択することを特徴とする請求項に記載の画像処理装置。
【請求項6】
前記比較手段は、さらにデータの配置も比較し、
前記比較手段の比較の結果、前記複数のデータの中の少なくとも一部のデータが同一であり配置が整合している場合に、前記第1の読取手段によって読み取れないデータの代わりに、前記第2の読取手段で前記第2の画像から読み取ったデータを取得することを特徴とする請求項1~の何れか1項に記載の画像処理装置。
【請求項7】
所定の範囲に含まれる物品ごとに付された複数のデータをそれぞれ第1のカメラで撮影された画像から読み取って、記憶手段に記憶された情報と照合するための情報を取得する第1の読取手段と、
前記第1のカメラとは異なる複数のカメラでそれぞれ前記複数のデータそれぞれを撮影した場合の前記複数のデータの撮影状態に関する情報を取得する情報取得手段と、
前記複数のデータのうち、前記第1の読取手段によって読み取れないデータが存在する場合に、前記複数のデータの撮影状態に関する情報に基づいて前記複数のカメラから前記読み取れないデータを撮影可能な第2のカメラを選択する選択手段と、
前記第2のカメラから前記第1の読取手段によって読み取れないデータを撮影した画像を取得する画像取得手段と、
前記画像取得手段によって取得された画像からデータを読み取って、記憶手段に記憶された情報と照合するための情報を取得する第2の読取手段と、
前記第1の読取手段によって読み取れないデータを、前記第2の読取手段で読み取ったデータで補完する補完手段とを有することを特徴とする画像処理装置。
【請求項8】
前記第2の読取手段によって、前記第1の読取手段によって読み取れないデータの読み取りができなかった場合に、前記選択手段は、前記データの撮影状態に関する情報に基づいて前記複数のカメラからさらに異なる前記読み取れないデータを撮影可能な第3のカメラを選択し、
前記画像取得手段は、前記第3のカメラから前記第1の読取手段によって読み取れないデータを撮影した画像を取得することを特徴とする請求項に記載の画像処理装置。
【請求項9】
前記選択手段は、前記第2のカメラとして2つ以上のカメラを選択し、
前記画像取得手段は、前記2つ以上のカメラから前記第1の読取手段によって読み取れないデータを撮影した画像をそれぞれ取得し、
前記第2の読取手段は、前記2つ以上のカメラからそれぞれ取得した画像からデータを読み取り、前記第1の読取手段によって読み取れないデータの読み取りが成功した段階で、他の画像でのデータの読み取りを中断することを特徴とする請求項に記載の画像処理装置。
【請求項10】
前記撮影状態には、解像度、撮影方向、または撮影対象の大きさが含まれることを特徴とする請求項7~9の何れか1項に記載の画像処理装置。
【請求項11】
前記撮影状態には、前記第1のカメラの撮影方向との関係が含まれることを特徴とする請求項7~10の何れか1項に記載の画像処理装置。
【請求項12】
前記選択手段は、さらに撮影する時刻又は曜日に応じて、選択するカメラの優先度を変更することを特徴とする請求項7~11の何れか1項に記載の画像処理装置。
【請求項13】
前記選択手段は、前記複数のカメラのうち、特定の撮影を行っているカメラは選択しないようにすることを特徴とする請求項7~12の何れか1項に記載の画像処理装置。
【請求項14】
前記情報取得手段は、ユーザによる操作手段からの入力に基づいて、前記複数のデータの撮影状態に関する情報を取得することを特徴とする請求項7~13の何れか1項に記載の画像処理装置。
【請求項15】
前記情報取得手段は、前記第1の読取手段による読み取り結果と前記第2の読取手段による読み取り結果とに基づいて、前記複数のデータの撮影状態に関する情報を取得することを特徴とする請求項7~14の何れか1項に記載の画像処理装置。
【請求項16】
前記データは、バーコード、2次元コード、カメレオンコード、数字、文字、記号または図形であることを特徴とする請求項1~15の何れか1項に記載の画像処理装置。
【請求項17】
所定の範囲に含まれる物品ごとに付された複数のデータをそれぞれ第1のカメラで撮影された第1の画像から読み取って、記憶手段に記憶された情報と照合するための情報を取得する第1の読取工程と、
前記複数のデータのうち、前記第1の読取工程によって読み取れないデータが存在する場合に、前記第1のカメラとは異なる第2のカメラから撮影した第2の画像を取得する画像取得工程と、
前記第2の画像からデータを読み取って、記憶手段に記憶された情報と照合するための情報を取得する第2の読取工程と、
前記第1の読取工程において前記第1の画像から読み取りに成功したデータと、前記第2の読取工程において前記第2の画像から読み取りに成功したデータとを比較する比較工程と、
前記比較工程の比較の結果、前記複数のデータの中の少なくとも一部のデータが同一である場合に、前記第1の読取工程によって読み取れないデータの代わりに、前記第2の読取工程で前記第2の画像から読み取ったデータを取得するデータ取得工程とを有することを特徴とする画像処理方法。
【請求項18】
所定の範囲に含まれる物品ごとに付された複数のデータをそれぞれ第1のカメラで撮影された画像から読み取って、記憶手段に記憶された情報と照合するための情報を取得する第1の読取工程と、
前記第1のカメラとは異なる複数のカメラでそれぞれ前記複数のデータそれぞれを撮影した場合の前記複数のデータの撮影状態に関する情報を取得する情報取得工程と、
前記複数のデータのうち、前記第1の読取工程によって読み取れないデータが存在する場合に、前記複数のデータの撮影状態に関する情報に基づいて前記複数のカメラから前記読み取れないデータを撮影可能な第2のカメラを選択する選択工程と、
前記第2のカメラから前記第1の読取工程によって読み取れないデータを撮影した画像を取得する画像取得工程と、
前記画像取得工程において取得された画像からデータを読み取って、記憶手段に記憶された情報と照合するための情報を取得する第2の読取工程と、
前記第1の読取工程によって読み取れないデータを、前記第2の読取工程で読み取ったデータで補完する補完工程とを有することを特徴とする画像処理方法。
【請求項19】
請求項1~16の何れか1項に記載の画像処理装置の各手段としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、特に、バーコード等を読み取るために用いて好適な画像処理装置、画像処理方法およびプログラムに関する。
【背景技術】
【0002】
従来、工場や倉庫などの施設において、積荷に貼り付けたバーコードや2次元コード等(以下、バーコード等)を係員がハンディターミナルなどを用いて読み取り、物品管理することが行われている。また、特許文献1には、カメラの所望の動作状態に迅速に制御できるカメラ制御システムが開示されている。この技術を利用すれば、施設の一角に設置されたカメラでバーコード等が貼られている積荷を撮影し、その積荷のバーコード等を読み取ることにより、係員の手間を軽減することができる。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2011-142685号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、実際の施設では、人が行き来したり作業用の物品が一時的に置かれたりすることがある。したがって、カメラの画角に入り込んだ人や物品によってバーコード等が隠れ、バーコード等が読み取れなくなるという問題がある。
【0005】
本発明は前述の問題点に鑑み、カメラで撮影された画像からバーコード等のデータを読み取ることができない場合に、他のカメラで撮影された画像からそのデータを読み取ることができるようにすることを目的としている。
【課題を解決するための手段】
【0006】
本発明に係る画像処理装置は、所定の範囲に含まれる物品ごとに付された複数のデータをそれぞれ第1のカメラで撮影された第1の画像から読み取って、記憶手段に記憶された情報と照合するための情報を取得する第1の読取手段と、前記複数のデータのうち、前記第1の読取手段によって読み取れないデータが存在する場合に、前記第1のカメラとは異なる第2のカメラから撮影した第2の画像を取得する画像取得手段と、前記第2の画像からデータを読み取って、記憶手段に記憶された情報と照合するための情報を取得する第2の読取手段と、前記第1の読取手段によって前記第1の画像から読み取りに成功したデータと、前記第2の読取手段によって前記第2の画像から読み取りに成功したデータとを比較する比較手段と、前記比較手段の比較の結果、前記複数のデータの中の少なくとも一部のデータが同一である場合に、前記第1の読取手段によって読み取れないデータの代わりに、前記第2の読取手段で前記第2の画像から読み取ったデータを取得するデータ取得手段とを有することを特徴とする。
【発明の効果】
【0007】
本発明によれば、カメラで撮影された画像からバーコード等のデータを読み取ることができない場合に、他のカメラで撮影された画像からそのデータを読み取り、補完することができる。
【図面の簡単な説明】
【0008】
図1】実施形態に係る画像処理システムの全体構成例を示す図である。
図2】画像処理装置のハードウェア構成例を示すブロック図である。
図3】NWカメラの外観構成例を示す図である。
図4】準備処理の手順の一例を示すフローチャートである。
図5】準備処理の実行開始時に表示される設定画面の一例を示す図である。
図6】読み取りに係る各種設定を行う際の設定画面の一例を示す図である。
図7】読み取り処理の手順の一例を示すフローチャートである。
図8】バーコードの読み取り結果の一例を示す図である。
図9】第1の実施形態における再読み取り処理の詳細な手順の一例を示すフローチャートである。
図10】第1の実施形態における選択したNWカメラで撮影した画像からの読み取り処理の詳細な手順の一例を示すフローチャートである。
図11】第1の実施形態における選択したNWカメラのパンチルトズームの修正が必要かどうかを判定するための処理の詳細な手順の一例を示すフローチャートである。
図12】NWカメラで撮影された画像の例を説明するための図である。
図13】第2の実施形態における読み取りに係る履歴情報の例を示す図である。
図14】第3の実施形態における再読み取り処理の詳細な手順の一例を示すフローチャートである。
図15】第4の実施形態において、各NWカメラの関連度を設定する処理手順の一例を示すフローチャートである。
図16】第4の実施形態における関連度算出処理の詳細な手順の一例を示すフローチャートである。
【発明を実施するための形態】
【0009】
以下、図面を参照しながら本発明の好適な実施形態について説明する。
【0010】
(第1の実施形態)
図1は、本実施形態に係る画像処理システムの全体構成例を示す図である。本実施形態に係る画像処理システムは、工場等において搬入された積荷を撮影して積荷に付されたバーコード等を読み取り、予め登録されたバーコード等の内容と照合することにより、荷物等が予定通り搬入されたことを確認するシステムである。さらに、本実施形態においては、撮影対象となる積荷に含まれる各荷物に荷札が添付されており、各荷札にバーコード等が記されているものとする。本実施形態に係る画像処理システムは、各荷物に添付された荷札それぞれに記されたバーコード等を順次読み取り、照合する。なお、本実施形態においては、画像処理装置100による読み取り及び照合の対象がバーコードである場合を例に説明するが、読み取り及び照合の対象は、バーコードに限定されるものではない。読み取り対象の他の例としては、二次元コード、カメレオンコード、数字、文字や記号などのデータであってもよいし、またこれらの情報を一定の規則に従って表した図形など形状を表すものであってもよい。
【0011】
本実施形態に係る画像処理システムは、画像処理装置100と、ネットワークカメラ(NWカメラ)110~112と、データベース(DB)120と、POE(Power over Ethernet)ハブ130とを有している。さらに画像処理システムは、PLC(Programmable Logic Controller)140と、センサ150とを有している。
【0012】
POEハブ130は、画像処理装置100、NWカメラ110~112、DB120及びPLC140に接続し、各部との通信を行うと共に、各部に電源を供給する。DB120には、搬入予定の複数の荷物に添付された複数の荷札それぞれに記されたバーコードの内容が予め登録されている。PLC140は、画像処理システムの全体を制御する。センサ150は、予め定められた場所に積荷が搬入されたことを検知する。
【0013】
画像処理装置100は、POEハブ130を介して、NWカメラ110~112と接続し、後述する制御コマンドを送信することによりNWカメラによる撮影を制御する。NWカメラ110は、積荷Aの搬入場所を撮影するように設置されており、画像処理装置100の制御の下、積荷Aの画像を撮影する。ここで、積荷Aは、荷札が添付された複数の荷物が積み上げられたものである。画像処理装置100は、さらに、NWカメラ110により得られた画像を、POEハブ130を介して受信する。画像処理装置100は、受信された画像においてバーコードが記された荷札の画像を検出し、バーコードの読み取りを行う。画像処理装置100は、画像から読み取ったバーコードの情報とDB120に記憶されているバーコードの情報との照合を行う。これにより、荷物等が予定通り搬入されたことを確認することができる。NWカメラ111およびNWカメラ112は、工場内の監視を担うカメラである。なお、本実施形態では説明を簡単にするため、NWカメラが3台の場合について説明する。また、本実施形態においては、荷物の搬入を例に説明するが、荷物の搬出時の照合にも適用可能である。
【0014】
図2は、画像処理装置100のハードウェア構成例を示すブロック図である。画像処理装置100は、CPU201と、ROM202と、RAM203と、ディスプレイ204と、HDD205と、入力装置206と、メディアドライブ207と、I/F208とを有している。
【0015】
CPU201は、ROM202に記憶されたプログラムを読み出して各種処理を実行する。RAM203は、CPU201の主メモリ、ワークエリア等の一時記憶領域として用いられる。HDD205は、各種データや各種プログラム等を記憶する。ディスプレイ204は、各種情報を表示する。入力装置206は、ユーザによる各種操作を受け付ける。メディアドライブ207は、SDカード等のメディアからのデータの読み出しやメディアへのデータの書き込み等を行う。I/F208は、外部装置との通信を行う。
【0016】
なお、後述する画像処理装置100の機能や処理は、CPU201がROM202又はHDD205に格納されているプログラムを読み出し、このプログラムを実行することにより実現されるものである。また、他の例としては、CPU201は、ROM202等に替えて、SDカード等の記録媒体に格納されているプログラムを読み出してもよい。また、他の例としては、画像処理装置100の機能や処理の少なくとも一部は、例えば複数のCPU、RAM、ROM、及びストレージを協働させることにより実現してもよい。また、他の例としては、画像処理装置100の機能や処理の少なくとも一部は、ハードウェア回路を用いて実現してもよい。
【0017】
図3は、NWカメラ110の外観構成例を示す図である。なお、NWカメラ111及びNWカメラ112も同様の外観構成であるため、説明は省略する。
図3において、パン駆動部301は、パンモータの駆動によりパン方向304で示す方向へ鏡筒部303の向きを変更させる。チルト駆動部302は、チルトモータの駆動によりチルト方向305で示す方向へ鏡筒部303の向きを変更させる。また、鏡筒部303はフォーカスレンズやズームレンズを含み、それぞれステッピング・モータにより駆動される。さらにNWカメラ110は、ドーム306によって全体を覆われている。
【0018】
図4は、画像処理装置100による準備処理の手順の一例を示すフローチャートである。ここで、準備処理とは、NWカメラ110の撮影位置を設定したりバーコードの読み取りのための各種設定を行ったりする処理である。また、図5は、画像処理装置100のディスプレイ204に、準備処理の実行開始時に表示される設定画面500の一例を示す図である。
【0019】
S401において、CPU201は、NWカメラ110に対し、積荷Aの全体が撮影範囲内に含まれるような全体画像を撮影するように制御する。なお、全体画像を撮影する際に、ユーザは、設定画面500の領域501において、入力装置206を介してパンチルトズームの設定を行うことができる。CPU201は、ユーザ操作により設定されたパンチルトズームの設定に従い、制御コマンドを生成し、制御コマンドをNWカメラ110に送信する。NWカメラ110は制御コマンドを画像処理装置100から受信し、制御コマンドが示す設定にしたがってパンチルトズームをして撮影処理を行い、全体画像を取得し、画像処理装置100に送信する。CPU201は、領域510に受信された全体画像を表示するよう制御する。
【0020】
次に、S402において、CPU201は、全体画像における積荷Aの領域をバーコード検出の対象となる検出範囲として設定する。CPU201は、具体的には、エッジ検出等予め設定された画像認識処理に従い、積荷Aの領域を検出し、検出された領域の座標をバーコードの検出範囲として設定する。さらに、設定画面500の領域502において、ユーザは、入力装置206を介して検出範囲を変更することができる。CPU201は、ユーザ操作が行われた場合には、ユーザ操作に従い、検出範囲を変更する。CPU201は、検出範囲を示す枠511を全体画像に重畳して表示する。
【0021】
次に、S403において、CPU201は、ユーザ操作に応じて、検出範囲の分割数を取得し、これを検出範囲の分割数として設定する。具体的には、ユーザが、入力装置206を介して設定画面500の領域503において縦横の分割数を入力すると、CPU201は、この入力に従い、分割数を決定する。例えば、図5の例では、荷物は、横に3個、縦に5個並んでいるので、ユーザは、3×5の分割数を入力する。CPU201は、ユーザが入力した値にしたがって分割数を設定した後、分割数に応じて検出範囲を均等に分割するための分割線512を検出範囲内に描画する。CPU201はまた、各分割領域に撮影順を示す番号を割り当てて、分割領域ごとに割り当てられた番号514を表示する。なお、CPU201は、後述するズーム撮影時の撮影中心の位置を示すバツ印513も表示する。バツ印513は初期状態では、各分割領域の中心に表示される。
【0022】
次に、S404において、CPU201は、ユーザ操作により、設定画面500の領域504において、ズーム撮影の中心位置の補正値を入力すると、入力に従いズーム撮影の中心位置を現在の位置(初期状態では分割領域の中心位置)から移動させて補正する。CPU201は、さらにズーム撮影の中心位置の移動に応じて、バツ印513の表示位置を移動させる。ユーザは、入力装置206を介して領域504において補正値を入力して中心位置を変更することで、読み取りの対象となるバーコード上にズーム撮影の中心位置が重なるように調整する。
【0023】
次に、S405において、CPU201は、ユーザが入力装置206を介して設定画面500の領域505において、ズーム倍率を入力すると、入力に従いズーム撮影におけるズーム倍率を設定する。ここで、領域505で設定されるズーム倍率は、領域501で設定されるズーム倍率よりも大きい。よって、領域501で設定されるズーム倍率で撮影された全体画像に比べて、領域505で設定されるズーム倍率で撮影されたズーム画像の撮影範囲は狭い。CPU201はさらに、設定されたズーム倍率およびズーム撮影の中心位置に応じて定まる撮影範囲515を全体画像に重畳して表示する。ここで、撮影範囲515は、バーコード読み取りのための読取範囲の一例であり、S403~S405の処理は、複数の分割領域それぞれと対応するズーム画像の撮影範囲、すなわちバーコードの読取範囲を一括して特定するための特定処理の一例である。
【0024】
例えば、ズーム倍率が10と指定された場合には、全体画像における縦方向及び横方向共に10分の1の領域が撮影できるものとする。全体画像の幅をbaseW、高さをbaseHとする。また、ズーム倍率をcurZoomとする。ズーム撮影範囲の幅をzoomW、高さをzoomHとする。このとき、ズーム撮影の範囲は以下の通りとなる。
zoomW=baseW÷curZoom
zoomH=baseH÷curZoom
【0025】
なお、ユーザが入力装置206を介して領域506に分割領域を指定する番号を入力し、テスト移動ボタン507を押下すると、CPU201は、指定された番号と対応する分割領域に対してS404で設定されたズーム撮影の中心位置を取得する。そして、その中心位置を撮影中心とし、S405で設定されたズーム倍率での撮影を行うための制御コマンドを生成し、制御コマンドをNWカメラ110へ送信する。NWカメラ110は制御コマンドを画像処理装置100から受信し、制御コマンドが示す設定にしたがってパンチルトズームをして撮影処理を行い、ズーム画像を取得し、画像処理装置100へ送信する。そして、CPU201は、領域510に、NWカメラ110から受信されたズーム画像を表示するよう制御する。ユーザは、領域510に表示されたズーム画像において、バーコードが適切に撮影されているか否かを確認し、必要に応じて領域505に入力された値を変更することで、ズーム倍率を調整することができる。
【0026】
ここで、CPU201は、領域505に入力された値が変更されると、制御コマンドを生成し直し、NWカメラ110に送信する。NWカメラ110は新しい制御コマンドにしたがって撮影処理を行い、新たにズーム画像を取得して画像処理装置100に送信する。これによって、CPU201は、変更を反映したズーム倍率で撮影処理されたズーム画像をNWカメラ110から受信して領域510に表示することができ、ユーザは変更の結果を確認することができる。
【0027】
次に、S406において、CPU201は、ユーザが入力装置206を介して領域508において指定した撮影順をズーム画像の撮影順として設定する。本実施形態においては、撮影順には縦撮影と横撮影の2種類が選択可能であるものとする。縦撮影は、同じ列の分割領域について縦方向に順に撮影した後、右隣の列に移動して同じ列の分割領域について縦方向に順に撮影する。横撮影は、同じ行の分割領域について横方向に順に撮影した後、下隣の行に移動して同じ行の分割領域について横方向に順に撮影する。このように、隣接する分割領域を順に撮影することで、次の撮影範囲を撮影するためのパンチルトの移動量を少なくすることができる。図5には、縦撮影が設定された場合の撮影順を示している。横撮影が設定されると、撮影順の表示も変更される。なお、上述の撮影順は例示であり、パンチルトの移動量が少なくなる撮影順であれば、他の撮影順であっても構わない。
【0028】
次に、S407において、CPU201は、基準画像を読み込む。ここで、基準画像とは、ズーム画像の読み取り対象を設定するための基準となる画像である。例えば、S405において領域510に表示されたズーム画像がHDD205に記憶されており、基準画像として読み込まれる。
【0029】
次に、S408において、CPU201は、ユーザ操作に応じて、読み取り対象(本実施形態ではバーコード)の読み取りに係る各種設定を行う。図6は、読み取りに係る各種設定を行う際のユーザ操作を受け付ける設定画面600の一例を示す図である。ユーザは、設定画面600において、各種設定を入力する。設定画面600の領域610には、基準画像が表示される。読込ボタン601が押下されると、予めHDD205に記憶されたズーム画像が基準画像として読み出されて表示される。なお、撮影ボタン602が押下された場合に、NWカメラ110に制御コマンドを送信して撮影を要求し、これに応答してNWカメラ110により撮影された画像を受信して、基準画像として表示するようにしてもよい。
【0030】
続いて、ユーザによる領域指定603の操作により、バーコード読み取りの対象となる矩形範囲が指定される。また、ユーザ操作により、領域604には、読み取りの対象となるバーコードの種類が入力される。領域605には、ユーザ操作により、ズーム画像において検出されるバーコードの数が入力される。領域606には、ユーザ操作により、バーコードの読み取り結果と照合し、値を取得するための辞書が選択される。設定画面600において、バーコード読み取りに係る設定が変更される都度、前記設定に基づいてCPU201は基準画像からバーコードの値を読み取る処理を実行する。そして、CPU201が、読み取られたバーコードと辞書を照合して得られた値607を画像に重畳して領域610に表示する。これにより、ユーザはバーコード読み取りに係る各種設定が適切か確認することができる。以上で、準備処理が完了する。
【0031】
図7は、読み取り処理の手順の一例を示すフローチャートである。積荷が搬入されると、センサ150が積荷を検出し、PLC140に通知する。PLC140は、センサ150から通知を受け取ると、画像処理装置100に撮影対象を検出したことを示す所定の通知を行う。
S701において、画像処理装置100のCPU201は、所定の通知をPLC140から受け取るまで待機する。CPU201は、PLC140からの所定の通知を受け取ると、読み取り処理を開始する。
【0032】
S702において、CPU201は、図5の領域501で設定された値にしたがって制御コマンドを生成し、NWカメラ110に送信する。NWカメラ110は制御コマンドを画像処理装置100から受信し、制御コマンドが示す設定にしたがってパンチルトズームをして全体画像の撮影を行う。そして、CPU201は、全体画像をNWカメラ110から受信する。
【0033】
さらに、S703において、CPU201は、ステップS702で受信された全体画像に対して画像認識処理を行い、積荷の領域を検出し、当該領域の座標とステップS402で設定された検出範囲の座標を比較する。比較の結果に基づき、図5の設定画面500における設定の際に用いられた全体画像における検出範囲の位置と、S702で受信された全体画像における検出範囲の位置のずれを算出する。これによって、積荷毎や撮影毎に微かに異なる全体画像における検出範囲の位置を補正することができる。なお、S402で検出範囲の角度情報も設定しておき、検出範囲の角度のずれを算出して補正するようにしてもよい。
【0034】
次に、S704において、CPU201は、図5に示す設定画面500の領域505において入力されたズーム倍率を、ズーム撮影時のズーム倍率として設定する。
次に、S705において、CPU201は、撮影順が1番目の分割領域を処理対象に設定する。
次に、S706において、CPU201は、処理対象の分割領域に対するズーム撮影の中心位置を設定する。領域504の入力により中心位置が補正されている場合には、補正後の中心位置が設定される。
【0035】
次に、S707において、CPU201は、S706において設定されたズーム撮影の中心位置に従い、NWカメラ110がパンチルトを調整するよう撮影範囲の設定を行う。
【0036】
次に、S708において、CPU201は、S704において設定されたズーム倍率と、S707において設定された撮影範囲にしたがって制御コマンドを生成し、NWカメラ110に送信する。NWカメラ110は制御コマンドを画像処理装置100から受信し、制御コマンドが示す設定にしたがってパンチルトズームを変更して撮影処理を行い、ズーム画像を取得し、画像処理装置100に送信する。なお、2番目以降の分割領域については、ズーム倍率自体は変更がないので、NWカメラ110はパンチルトの調整だけを行って撮影範囲を変更しながら撮影を行う。
【0037】
S709において、CPU201は、ズーム画像をNWカメラ110から受信する。
次に、S710において、CPU201は、S709で受信したズーム画像に対して、図6の設定画面600で設定された情報にしたがってバーコードの読み取りを行う。CPU201はRAM203にズーム画像を読み込み、領域指定603で指定された形状の範囲に対してエッジを検出する。そして、CPU201はエッジが所定の長さおよび規則で並んでいる箇所をバーコードと判定し、領域604にて指定されたバーコードの種類に基づいて、エッジの間隔と出力値の対応情報を選択し、画像上のエッジの間隔からバーコードの値を読み取る。バーコードの種類に関連づいたエッジの間隔と出力の対応情報は、HDD205に記憶しているものとする。
【0038】
次に、S711において、CPU201は、それぞれのバーコードの読み取り結果をHDD205等の記憶部に格納する。
【0039】
図8は、HDD205等の記憶部に記憶されるバーコードの読み取り結果の一例を示す図である。
図8において、「ID」は、レコードの識別情報である。「カウンタ」は、ズーム画像の識別情報であり、本実施形態ではズーム画像と対応する分割領域の撮影順の番号である。「分割撮影座標」は、ズーム画像の中心位置を示す情報であり、バツ印513に対応する座標である。
【0040】
「配置情報」は、領域503で設定された分割数によって定義される、積荷におけるバーコードの位置である。たとえば、図5のバーコードx1の配置情報は(0,0)、バーコードx2の配置情報は(0,1)、バーコードx3の配置情報は(0,2)となり、バーコードx6の配置情報は(1,0)である。
【0041】
「ズーム範囲」は、ズーム倍率およびズーム撮影中心位置に応じて定まる撮影範囲515に対応する矩形の座標である。なお分割撮影座標及びズーム範囲は、全体画像における位置を示す情報である。「検出数」は、ズーム画像で検出されたバーコードの個数である。「検出No」は、バーコードの識別情報であり、本実施形態では、ズーム画像内で一意に付与される。ただし、バーコードの識別情報は検出範囲で一意に付与されるようにしてもよい。
【0042】
「中心座標」は、バーコードの中心位置の座標である。なお、中心座標としては、ズーム画像における位置を示す情報である。ただし、中心座標は、ズーム画像における位置を全体画像における位置に変換した値であってもよい。「コード角度」は、検出されたバーコードのズーム画像に対する傾きの角度である。「検出コード」は、読み取られたバーコードを辞書と照合した結果、検出されたコードの情報である。「信頼度」は、バーコードの認識精度である。これ以外に、「検出数判定」、「辞書一致判定」及び「総合判定」の判定結果および「辞書番号」が格納される。総合判定は、例えば検出数が一致し、辞書に予め登録されている値が共に一致し、信頼度が閾値以上の場合にOKと判定されるものとする。なお、総合判定の判断基準は、任意に設定することができるものとする。
【0043】
次に、S712において、CPU201は、処理対象の分割領域の撮影順が順番の最後か否かを判定する。この判定の結果、順番の最後である場合はS714に進む。一方、順番の最後でない場合はS713に進む。
【0044】
S713において、CPU201は、次の撮影順の分割領域を処理対象に設定し、その後処理をS706へ進める。この場合には、S706でズーム撮影の中心位置が変更され、S707で改めてパンチルトが調整され撮影範囲を切り替えて、S708で撮影指示が行われる。なお、この場合に、ズーム倍率が変更されないので、一旦ズームアウトして改めてズームインするといった動作は行われない。このため、NWカメラ110のズームの駆動に係る処理時間を短縮することができる。
【0045】
一方、S714においては、CPU201は、図8のバーコードの読み取り結果を参照し、バーコードの読み取りに失敗したズーム画像が存在するか否か、すなわち撮影の成否を判定する。たとえば、図12(A)に示す例では、積荷Aの前に人がいるため一部のバーコードの読み取りができない。この判定の結果、バーコードの読み取りに失敗したズーム画像が存在する場合(S714でYes)はS715に進む。一方、バーコードの読み取りに失敗したズーム画像が存在しない場合(S714でNo)は本処理を終了する。
【0046】
S715において、CPU201は、工場内に設置されている別のNWカメラ111またはNWカメラ112を制御して、読み取りに失敗したバーコードの再読み取りを行う。この処理については、図9図11を用いて後述する。
【0047】
なお、積荷Aの搬入後に、積荷Aと荷物の数や積み方が等しい積荷が連続して複数搬入される場合がある。この場合には、2つ目以降の積荷においては、準備処理は不要であり、画像処理装置100は、積荷が搬入された旨の通知を受けると、読み取り処理を開始する。なお、この場合、積荷Aにおいて設定された条件を利用して読み取り処理を実行する。
【0048】
読み取り処理により得られた結果は、自装置の記憶部に格納され、CPU201が、DB120に記憶されているバーコードの情報と照合する。ただし、照合を行う主体は実施形態に限定されるものではない。他の例としては、DB120が照合を行うものとしてもよい。この場合には、画像処理装置100において得られた読み取り結果は、POEハブ130を介してDB120に送信される。また、PLC140が照合を行うこととしてもよい。この場合には、読み取り結果は、POEハブ130を介してPLC140に送信される。
【0049】
図9は、本実施形態における、図7のS715の再読み取り処理の詳細な手順の一例を示すフローチャートである。
S901において、CPU201は、制御可能な1つ以上の他のNWカメラ(本実施形態の場合はNWカメラ111やNWカメラ112)から、再読み取り処理に使用するカメラを選択する。ここでCPU201は、ランダムにNWカメラを選択してもよく、一個のNWカメラを選択して再読み取りを試み、再読み取りできなければさらに他のNWカメラを選択してさらに再読み取りするようにしてもよい。また、複数のNWカメラを選択し、それぞれで撮影された画像から並行して再読み取りを試み、いずれかのNWカメラで撮影された画像から再読み取りに成功した段階で、他のNWカメラの画像からの再読み取り処理を中断して終了するようにしてもよい。また、いずれかのNWカメラが再読み取り処理よりも重要度の高い処理のための撮影を担っている場合は、それ以外のNWカメラを優先的に選択するようにしてもよい。
【0050】
S902において、CPU201は、選択したNWカメラのパンチルトズームを規定の初期位置に設定するよう制御コマンドを生成し、選択したNWカメラに送信する。選択したNWカメラは制御コマンドを画像処理装置100から受信し、制御コマンドが示す設定にしたがってパンチルトズームを変更する。
【0051】
S903において、CPU201は、選択したNWカメラに対して撮影指示を送信する。選択したNWカメラは撮影指示を画像処理装置100から受信することにより撮影処理を行い、撮影した画像を画像処理装置100に送信する。
S904において、CPU201は、選択したNWカメラが撮影した画像を受信する。なお、図12(B)には、S904の画像取得処理において受信した、選択したNWカメラが撮影した画像の例を示している。
【0052】
S905において、CPU201は、受信した画像からバーコードの特徴を探索する。この特徴の探索では、S709で受信したズーム画像のバーコードの特徴を使用してもよいし、プログラムとともにHDD205に記録されていたバーコードの特徴をRAM203に読み出して用いてもよい。
【0053】
S906において、CPU201はバーコードの特徴を発見したかどうか判定する。この判定の結果、バーコードの特徴を発見した場合はS907に進み、バーコードの特徴を発見しなかった場合はS910に進む。
S907において、CPU201はバーコード読み取り処理(データ取得処理)を実行する。この処理の詳細については、図10のフローチャートを用いて後述する。
【0054】
S908において、CPU201は、選択したNWカメラで撮影した画像から読み取ったバーコードの値を、NWカメラ110で撮影した画像から読み取ったバーコードの値と比較し、その比較結果から共通するバーコードを読み取ったかどうかを判定する。この判定を行う理由は、選択したNWカメラが撮影した画像から積荷Aのバーコードを読み取っていることを確認するためである。本実施形態では、選択したNWカメラとNWカメラ110とで一つでも同一のバーコードを写していれば、CPU201は共通するバーコードを読み取ったと判定する。この判定の結果、共通するバーコードを読み取った場合はS909に進み、共通するバーコードを読み取っていない場合はS910に進む。
【0055】
S909において、CPU201は、共通するバーコードの位置に基づき、選択したNWカメラで撮影した画像から読み取ったバーコードのうち、NWカメラ110で撮影した画像から読み取れなかったバーコードと対応する位置のバーコードを読み取った値を取得し、HDD205などの記憶部に格納する。そして処理を終了する。このようにNWカメラ110で撮影した画像から読み取れなかったバーコードの情報は、選択したNWカメラで撮影した画像から読み取ったバーコードの情報で補完される。
【0056】
S910において、CPU201は、選択したNWカメラが、撮影可能な全範囲を撮影したかどうかを判定する。この判定の結果、全範囲を撮影した場合は処理を終了する。一方、全範囲を撮影していない場合はS911に進む。
S911において、CPU201は、次の撮影範囲を撮影できるようNWカメラのパンチルトを制御するための制御コマンドを生成し、NWカメラに送信する。そしてS903に戻る。
【0057】
図10は、図9のS907のバーコード読み取り処理の詳細な手順の一例を示すフローチャートである。
まず、S1001において、CPU201は、選択したNWカメラのパンチルトズームの修正が必要かどうかを判定するための処理を行う。たとえば、図12(C)に示すような画像をS904で受信した場合、積荷Aは撮影されているものの、NWカメラ110で読み取れなかったバーコード(たとえば左下のバーコード)が撮影範囲から外れている。このような場合は左下のバーコードが画角内に入るよう、パンチルトズームの修正が必要となる。この具体的な判定方法については図11のフローチャートを用いて後述する。
【0058】
S1002において、CPU201は、S1001の処理の結果、パンチルトズームの修正が必要か否かを判定する。この判定の結果、パンチルトズームの修正が必要である場合はS1003に進む。一方で、パンチルトズームの修正が不要である場合はS1006に進む。
【0059】
S1003において、CPU201は、NWカメラ110で撮影された画像から読み取れなかったバーコードの方向へ、選択したNWカメラのパンチルトを制御する制御コマンドを生成し、選択したNWカメラに送信する。または少しズームアウトして、NWカメラ110で読み取れなかったバーコードが画角内に入るようにズームを制御する制御コマンドを生成し、選択したNWカメラに送信する。選択したNWカメラは制御コマンドを画像処理装置100から受信し、制御コマンドが示す設定にしたがってパンチルトまたはズームを変更する。
【0060】
S1004において、CPU201は、選択したNWカメラに対して撮影指示を送信する。選択したNWカメラは撮影指示を画像処理装置100から受信することにより撮影処理を行い、撮影した画像を画像処理装置100に送信する。
S1005において、CPU201は、選択したNWカメラが撮影した画像を受信する。
【0061】
S1006~S1011は、S904またはS1005で受信した画像に含まれるバーコードの特徴の数だけ繰り返されるループである。
【0062】
S1007において、CPU201は、そのループで扱うバーコードの特徴の位置をズームインして撮影できるよう制御コマンドを生成し、選択したNWカメラに送信する。選択したNWカメラは制御コマンドを画像処理装置100から受信し、制御コマンドが示す設定にしたがってズーム等を変更する。
【0063】
S1008において、CPU201は、選択したNWカメラに対して撮影指示を送信する。選択したNWカメラは撮影指示を画像処理装置100から受信することにより撮影処理を行い、撮影したズーム画像を画像処理装置100に送信する。
S1009において、CPU201は、選択したNWカメラが撮影したズーム画像を受信する。
S1010において、CPU201は、ズーム画像からバーコードを読み取る。このとき、必要に応じてズーム画像を射影変換または透視変換してバーコードを読み取ってもよい。以上のようにすべてのバーコードの特徴についてS1006~S1011の処理を繰り返すと、処理を終了する。
【0064】
図11は、図10のS1001の詳細な処理手順の一例を示すフローチャートである。
まずS1101において、CPU201は、S904で受信した画像における複数あるバーコードの特徴の中のいずれか1つを選択し、選択したバーコードの特徴の座標を算出する。
【0065】
S1102において、CPU201は、選択したバーコードの特徴にズームインして撮影できるよう制御コマンドを生成し、選択したNWカメラに送信する。選択したNWカメラは制御コマンドを画像処理装置100から受信し、制御コマンドが示す設定にしたがってズーム等を変更する。
【0066】
S1103において、CPU201は、選択したNWカメラに対して撮影指示を送信する。選択したNWカメラは撮影指示を画像処理装置100から受信することにより撮影処理を行い、撮影したズーム画像を画像処理装置100に送信する。
【0067】
S1104において、CPU201は選択したNWカメラが撮影した画像を受信する。
S1105において、CPU201はズーム画像からバーコードを読み取る。このとき、必要に応じてズーム画像を射影変換または透視変換してバーコードを読み取ってもよい。
S1106において、CPU201は、図8のバーコードの読み取り結果から、S1105で読み取ったバーコードの配置情報を取得する。
【0068】
S1107において、CPU201は、S1101で算出したバーコードの特徴の画像における位置と、S1105で取得した配置情報から、パンチルトズームの修正が必要かどうかを判定する。たとえば、バーコード1201の配置情報は(2,0)であり、積荷Aの上の方にあるバーコードである。しかし、S1101で算出される、図12(C)の画像におけるバーコード1201の座標は、画像の下の方に位置している。したがって、CPU201は、バーコード1201のさらに下にあるはずのバーコードが写っていないと判定し、パンチルトズームが必要であると判定する。
【0069】
本実施形態では、S908において、選択したNWカメラとNWカメラ110とで一つでも同一のバーコードを写していれば、共通するバーコードを読み取ったと判定した。しかし、誤って他の積荷を撮影してしまうことを避けるために、判定条件をより厳密にしてもよい。たとえば、同じバーコードが規定個数以上写っていれば、共通するバーコードを読み取ったと判定してもよい。また、同じバーコードが規定個数以上写っており、さらにそれらの配置で整合が取れている場合に、共通するバーコードを読み取ったと判定してもよい。
【0070】
以上のように本実施形態によれば、バーコードが行列のパターンにしたがって規則的に並んでいるような積荷を処理対象とし、積荷に付された複数のバーコードの位置を一括して特定することができる。また、特定した位置に従い、ズーム倍率を変えることなく、パンチルトの調整だけを行うことで連続して複数のズーム画像を撮影することができる。さらに、バーコードの読み取りに失敗した場合も、他のカメラを制御して撮影することによって再読み取りを行い、バーコードを読み取ることができる。
【0071】
(第2の実施形態)
第1の実施形態で説明した画像処理システムでは、NWカメラ110が撮影した画像からバーコードを読み取れなかった場合、CPU201が制御可能な他のNWカメラを選択して再読み取りを試みた。そのため、積荷Aから離れているNWカメラや、積荷Aが死角になる位置に設置されているNWカメラなど、積荷Aの撮影が不可能な位置にあるNWカメラが選択される可能性がある。しかし、各々のNWカメラは工場内の監視など本来の目的を担っているため、積荷Aを撮影不可能なことが明らかなNWカメラを選択し、バーコード再読み取りのための処理を実行させる目的で無駄に占有することは望ましくない。
【0072】
そこで、本実施形態における画像処理システムでは、各NWカメラが撮影した画像で読み取りに成功したか失敗したかの履歴情報を記録する。そして、メインとなるNWカメラが撮影した画像で読み取りに失敗した場合には、履歴情報を参照して、読み取りに成功した画像を撮影したことがあるNWカメラを優先的に選択するようにする。なお、本実施形態に係る画像処理システムの構成、画像処理装置に係る処理手順は基本的には第1の実施形態と同様であるため、説明は省略する。以下、第1の実施形態と異なる部分についてのみ説明する。
【0073】
図13は、HDD205等の記憶部に格納される、NWカメラ110が読取に失敗したとき他のカメラ毎の画像の読み取りに係る履歴情報の例を示す図である。
図13において、「日時」は、CPU201がNWカメラの制御を開始した日時である。「カメラID」は、NWカメラを識別するためのIDである。「読取結果」は、各NWカメラで撮影された画像からの読み取り結果である。「成功」は読み取りに成功したことを表し、「失敗」はNWカメラが全撮影範囲を探索しても読み取れなかったことを表す。また、「中断」は、同時にバーコード読み取りを試みた他のNWカメラで撮影された画像で先に読み取りに成功したため、読み取り作業が中断したことを表す。「パン」、「チルト」、「ズーム」は、それぞれNWカメラが撮影した画像から読み取りに成功したときのそのNWカメラの撮影位置である。
【0074】
CPU201は、図9のS901にてNWカメラを選択したとき、履歴情報に新しい行を追加して、「日時」、「カメラID」に情報を追加する。また、CPU201は、S909で、HDD205等の記憶部に読み取り結果を格納した後、図13の履歴情報の「読取結果」に「成功」を記録する。さらに、履歴情報の「パン」、「チルト」、「ズーム」に、それぞれS903またはS1004でNWカメラに撮影指示した際のNWカメラの位置情報を記録する。また、CPU201は、S910ですべての撮影範囲を撮影したと判定した場合は、履歴情報の「読取結果」に「失敗」を記録する。また、読取作業を中断した際には、CPU201は履歴情報の「読取結果」に「中断」を記録する。本実施形態では、以上のような手順で履歴情報が更新される。
【0075】
さらに、CPU201は、S901でNWカメラを選択する際に、日時が新しい順に履歴情報を参照する。そして、CPU201は「読取結果」が「成功」あるいは「中断」となっているNWカメラを優先的に選択するようにする。また、S902でパンチルトズームを規定の初期位置に設定する制御コマンドを生成する際には、履歴情報の「パン」、「チルト」、「ズーム」に記録されている撮影位置を再現するようにする。
【0076】
以上のように本実施形態によれば、NWカメラ110で撮影した画像からバーコードの読み取りに失敗した場合に、再読み取りを行うために他のNWカメラを効率良く選択することができる。これにより、積荷を撮影不可能なNWカメラが選択されることを防ぐことができる。
【0077】
(第3の実施形態)
本実施形態では、メインのNWカメラで撮影した画像からバーコードの読み取りに失敗した場合に、第1及び第2の実施形態とは異なる手順で再読み取りを行う方法について説明する。なお、本実施形態に係る画像処理システムの構成は第1の実施形態と同様であるため、説明は省略する。また、画像処理装置100に係る準備処理及びNWカメラ110の撮影画像からのバーコードの読み取り手順もそれぞれ図4及び図7と同様の手順であるため、説明は省略する。以下、第1の実施形態と異なる部分についてのみ説明する。
【0078】
図14は、本実施形態における、図7のS715の再読み取り処理の詳細な手順の一例を示すフローチャートである。
S1401において、CPU201は、NWカメラ110を除く制御可能なNWカメラ(本実施形態の場合はNWカメラ111やNWカメラ112)から、あらかじめ各NWカメラに設定された関連度を用いて再読み取り処理に使用するカメラを選択する。
【0079】
ここで関連度とは、各NWカメラが、NWカメラ110で撮影する積荷Aのバーコードを鮮明に撮影可能か否かを表す値である。すなわち、撮影状態に基づくパラメータである。たとえば、解像度の高いNWカメラ、バーコードを正面に近い方向から撮影可能なNWカメラ、画角内においてバーコードを大きく撮影可能なNWカメラは高い関連度となる。一方で、NWカメラ110と撮影方向が近いNWカメラで再読み取りしても、NWカメラ110の撮影方向との関係で、NWカメラ110と同様にバーコードが隠れた画像が撮影される。そのため、そのようなNWカメラは関連度を下げるようにしてもよい。
【0080】
NWカメラ110と他のカメラ毎の関連度の情報は、HDD205等の記憶部に予め記憶されており、S1401の処理で記憶部から関連度の情報取得を行う。なお、ユーザが入力装置206を介してNWカメラごとに関連度を画像処理装置100から設定することができる。また、ユーザが工場の見取り図を見ながら、各NWカメラの位置、高さ、撮影可能なパンチルトの範囲、最大ズーム倍率等の情報を、入力装置206を介して入力し、CPU201がこれらの情報から関連度を算出できるようにしてもよい。
【0081】
CPU201は、NWカメラを選択する際に、関連度が高い順にNWカメラを選択してもよいし、既定の閾値を超える関連度のNWカメラを任意に選択するようにしてもよい。また、不審人物を撮影しているなど重要度の高い特定の撮影を行っているNWカメラは選択しないようにしてもよい。また、特定の時間帯(夜間など)や曜日(休日など)に監視に専念させたいNWカメラがある場合、撮影する時刻や曜日に応じて選択するカメラの優先度を変更し、特定のNWカメラを選択しないようにしてもよい。
【0082】
S1402~S1405の処理は、それぞれ図9のS902~S905と同様の処理であるため、説明は省略する。
S1406において、CPU201はバーコードの特徴を発見したかどうか判定する。この判定の結果、バーコードの特徴を発見した場合はS1407に進み、バーコードの特徴を発見しなかった場合はS1414に進む。
【0083】
S1407~S1413は、S1405で検出されたバーコードの特徴の数だけ繰り返されるループである。なお、S1408~S1411は、それぞれ図10のS1007~S1010と同様の処理であるため、説明は省略する。
【0084】
S1412において、CPU201は、読み取ったバーコードの情報をHDD205などの記憶部に格納する。S1405で検出されたバーコードの特徴の数だけS1407~S1413の処理を繰り返すと、CPU201は処理を終了する。このようにNWカメラ110で撮影した画像から読み取れなかったバーコードの情報は、選択したNWカメラで撮影した画像から読み取ったバーコードの情報で補完される。
【0085】
S1414において、CPU201は、選択したNWカメラが、撮影可能な全範囲を撮影したかどうかを判定する。この判定の結果、全範囲を撮影した場合は処理を終了する。一方、全範囲を撮影していない場合はS1401に進み、次のNWカメラを選択して以降の処理を実行する。
【0086】
なお、図14の処理では、NWカメラ110以外のNWカメラは、S1405で検出したすべてのバーコードの特徴に対してズームインして撮影し、バーコードの再読み取りを行う。しかし、NWカメラ110で撮影した画像から読み取れたバーコードも再読み取りの対象となり、処理に多くの時間がかかってしまう。そこで、図8に示したバーコードの読み取り結果内の配置情報を参照し、NWカメラ110で読み取れなかったバーコードのみ再読み取りを実行するようにしてもよい。
【0087】
たとえば、図12(A)に示す例の場合、CPU201は、NWカメラ110で撮影された画像では、配置情報が(0、2)(0,3)(0,4)であるバーコードを読み取れなかったことが判別できる。したがって、CPU201は、S1407~S1413のループにおいて、図12(B)に示す方向から撮影した全体画像から、配置情報が(0,2)(0,3)(0,4)であるバーコードのみズームインして撮影するよう撮影指示を送信してもよい。
【0088】
また、図14に示す処理においては、CPU201は、一個のNWカメラを選択して再読み取りを試み、再読み取りできなければ他のNWカメラを選択しなおしてさらに再読み取りする処理を実行している。これ以外の方法として、複数のNWカメラを選択してそれぞれの撮影画像から並行して再読み取りを試み、いずれかのNWカメラで撮影された画像で再読み取りに成功した段階で他のNWカメラの画像での再読み取り処理を中断するようにしてもよい。
【0089】
以上のように本実施形態によれば、バーコードの読み取りに失敗した場合に、関連度に基づいて他のNWカメラを選択するようにしたので、より効率良くバーコードを読み取ることができる。
【0090】
(第4の実施形態)
第3の実施形態では、ユーザが個々のNWカメラの関連度を設定したり、個々のNWカメラの位置などを入力したりする必要があった。しかし、工場内のNWカメラの数が多い場合には、これらの方法で関連度を設定するのは面倒である。そこで、本実施形態では、各NWカメラの関連度を画像処理によって設定する方法について説明する。なお、本実施形態に係る画像処理システムの構成、画像処理装置に係る処理手順は基本的には第3の実施形態と同様であるため、説明は省略する。以下、第3の実施形態と異なる部分についてのみ説明する。
【0091】
図15は、各NWカメラの関連度を設定する処理手順の一例を示すフローチャートである。なお、図15に示す設定処理は、たとえばシステムの初期導入時やレイアウト変更時など、作業員などの立ち入りがなく積荷Aを確実に撮影可能な条件下で実行されるものとする。
【0092】
S1501において、CPU201は、積荷A全体を撮影するよう制御コマンドを生成し、NWカメラ110に送信する。NWカメラ110は制御コマンドを画像処理装置100から受信し、制御コマンドが示す設定にしたがってパンチルトズームをして全体画像の撮影を行う。そして、CPU201は、全体画像をNWカメラ110から受信する。なお、NWカメラ110のパンチルトズームの制御コマンドは、第1の実施形態と同様に、たとえば図5の領域501で設定された値にしたがって生成される。
【0093】
S1502において、CPU201は全体画像から各バーコードの特徴を抽出する。なお、全体画像からバーコードの特徴を抽出する方法としては、図7のS703のように、画像認識処理によって抽出してもよく、ユーザにバーコードの領域を抽出させるようにしてもよい。この場合、たとえば図5の領域510に全体画像を表示し、ユーザに入力装置206を用いてバーコード領域を選択させ、その領域の特徴を抽出するようにする。また、全体画像からテンプレートマッチングによってバーコード領域を検出して領域の特徴を抽出してもよい。
【0094】
S1503~S1508は、S1502で抽出したバーコードの特徴の数だけ繰り返されるループである。
【0095】
S1504において、CPU201は、そのループで扱うバーコードの特徴の位置をズームインして撮影できるよう制御コマンドを生成し、NWカメラ110に送信する。NWカメラ110は制御コマンドを画像処理装置100から受信し、制御コマンドが示す設定にしたがってズーム等を変更する。
【0096】
S1505において、CPU201は、NWカメラ110に対して撮影指示を送信する。NWカメラ110は撮影指示を画像処理装置100から受信することにより撮影処理を行い、撮影したズーム画像を画像処理装置100に送信する。
S1506において、CPU201は、NWカメラ110が撮影したズーム画像を受信する。
【0097】
S1507において、CPU201はズーム画像からバーコードを読み取る。このとき、必要に応じてズーム画像を射影変換または透視変換してバーコードを読み取ってもよい。以上のようにバーコードの特徴の数だけS1503~S1508の処理を繰り返すと、次のS1509に進む。
【0098】
S1509~S1519は、画像処理装置100が制御可能なNWカメラ(本実施形態においてはNWカメラ111とNWカメラ112)の数だけ実行されるループである。
【0099】
S1510において、CPU201は、そのループの対象であるNWカメラのパンチルトズームを既定の初期位置に設定するよう制御コマンドを生成し、対象のNWカメラに送信する。対象のNWカメラは制御コマンドを画像処理装置100から受信し、制御コマンドが示す設定にしたがってパンチルトズームを変更する。
【0100】
S1511において、CPU201は、対象のNWカメラに撮影指示を送信する。対象のNWカメラは撮影指示を画像処理装置100から受信することにより撮影処理を行い、撮影した画像を画像処理装置100に送信する。
【0101】
S1512において、CPU201は、対象のNWカメラが撮影した画像を受信する。
S1513において、CPU201はS1502で検出したバーコードの特徴を、S1512で受信した画像から探索する。
S1514において、CPU201は、S1502で検出したすべてのバーコードの特徴を発見したかどうか判定する。この判定の結果、すべてのバーコードの特徴を発見した場合はS1515に進み、すべてのバーコードの特徴を発見できなかった場合はS1517に進む。
【0102】
S1515において、CPU201は関連度算出処理を実行する。この処理の詳細については図16のフローチャートを用いて後述する。
S1516において、CPU201は、S1515の処理の結果、関連度の算出に成功したかどうかを判定する。この判定の結果、関連度の算出に成功した場合はS1519に進み、そのNWカメラのループを終了する。一方、関連度の算出に失敗した場合はS1517に進む。
【0103】
S1517において、CPU201は、対象のNWカメラが撮影可能な全範囲を撮影したかどうかを判定する。この判定の結果、全範囲を撮影した場合はS1519に進み、そのNWカメラのループを終了する。一方、全範囲を撮影していない場合はS1518に進む。
【0104】
S1518において、CPU201は、次の撮影位置を撮影できるよう制御コマンドを生成し、対象のNWカメラに送信する。そしてS1511に戻る。対象のNWカメラは制御コマンドを画像処理装置100から受信し、制御コマンドが示す設定にしたがってパンチルトズームを変更する。以上のようにすべてのNWカメラに対してS1509~S1519のループが終了すると、処理を終了する。
【0105】
図16は、図15のS1509の関連度算出処理の詳細な手順の一例を示すフローチャートである。
S1601~S1606は、S1502で抽出されたバーコードの特徴の数だけ実行されるループである。
【0106】
S1602において、CPU201は、そのループで扱うバーコードの特徴の位置をズームインして撮影できるよう制御コマンドを生成し、図15のS1509~S1519のループ対象のNWカメラに送信する。対象のNWカメラは制御コマンドを画像処理装置100から受信し、制御コマンドが示す設定にしたがってズーム等を変更する。
【0107】
S1603において、CPU201は、対象のNWカメラに対して撮影指示を送信する。対象のNWカメラは撮影指示を画像処理装置100から受信することにより撮影処理を行い、撮影したズーム画像を画像処理装置100に送信する。
【0108】
S1604において、CPU201は、対象のNWカメラが撮影したズーム画像を受信する。
S1605において、CPU201は、ズーム画像からバーコードを読み取る。このとき、必要に応じてズーム画像を射影変換または透視変換してバーコードを読み取ってもよい。以上のようにすべてのバーコードの特徴についてS1601~S1606のループが終了すると、S1607に進む。
【0109】
S1607において、CPU201は、S1507でNWカメラ110が撮影したズーム画像から読み取った各バーコードの値と、S1605でそれ以外のNWカメラが撮影した各バーコードの値とを比較する。この比較の結果、値が一致しないバーコードが存在する場合は、対象のNWカメラは積荷A以外の積荷を撮影しているとみなし、関連度の算出が失敗したものとして処理を終了する。一方、各バーコードの値がすべて一致している場合はS1608に進む。
【0110】
S1608において、CPU201は、カメラの画素数、画角内におけるバーコードの面積の割合、バーコードの変形度合いをパラメータとして、関連度を算出する。
S1609において、CPU201は、S1608で算出した関連度、およびS1511で撮影指示したときのパンチルトズームの値をHDD205等の記憶部に記憶する。記憶された関連度は図14のS1401の処理で用いられ、パンチルトズームの値は、図14のS1402の処理で使用される。
【0111】
以上のように本実施形態によれば、バーコードの読み取りに失敗し、他のNWカメラを選択する際に、読み取り結果の違いをもとに決定された関連度に基づいてNWカメラを選択することができる。したがって、より適切に他のNWカメラを選択することができ、読み取りに失敗したバーコードの情報をそのNWカメラで撮影された画像から読み取ることができる。
【0112】
(その他の実施形態)
以上、本発明をその好適な実施形態に基づいて詳述してきたが、本発明はこれら特定の実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。上述の実施形態の一部を適宜組み合わせてもよい。
【0113】
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【符号の説明】
【0114】
201 CPU
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16