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

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

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

特許7497203画像処理装置、画像処理装置の制御方法及びプログラム
<>
  • 特許-画像処理装置、画像処理装置の制御方法及びプログラム 図1
  • 特許-画像処理装置、画像処理装置の制御方法及びプログラム 図2
  • 特許-画像処理装置、画像処理装置の制御方法及びプログラム 図3
  • 特許-画像処理装置、画像処理装置の制御方法及びプログラム 図4
  • 特許-画像処理装置、画像処理装置の制御方法及びプログラム 図5
  • 特許-画像処理装置、画像処理装置の制御方法及びプログラム 図6
  • 特許-画像処理装置、画像処理装置の制御方法及びプログラム 図7
  • 特許-画像処理装置、画像処理装置の制御方法及びプログラム 図8
  • 特許-画像処理装置、画像処理装置の制御方法及びプログラム 図9
  • 特許-画像処理装置、画像処理装置の制御方法及びプログラム 図10
  • 特許-画像処理装置、画像処理装置の制御方法及びプログラム 図11
  • 特許-画像処理装置、画像処理装置の制御方法及びプログラム 図12
  • 特許-画像処理装置、画像処理装置の制御方法及びプログラム 図13
  • 特許-画像処理装置、画像処理装置の制御方法及びプログラム 図14
  • 特許-画像処理装置、画像処理装置の制御方法及びプログラム 図15
  • 特許-画像処理装置、画像処理装置の制御方法及びプログラム 図16
  • 特許-画像処理装置、画像処理装置の制御方法及びプログラム 図17
  • 特許-画像処理装置、画像処理装置の制御方法及びプログラム 図18
  • 特許-画像処理装置、画像処理装置の制御方法及びプログラム 図19
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-31
(45)【発行日】2024-06-10
(54)【発明の名称】画像処理装置、画像処理装置の制御方法及びプログラム
(51)【国際特許分類】
   H04N 7/18 20060101AFI20240603BHJP
   G06T 7/00 20170101ALI20240603BHJP
   G06K 7/14 20060101ALI20240603BHJP
   G06K 7/10 20060101ALI20240603BHJP
【FI】
H04N7/18 D
G06T7/00 Z
G06K7/14 013
G06K7/14 043
G06K7/10 416
G06K7/10 372
G06K7/10 456
【請求項の数】 20
(21)【出願番号】P 2020081193
(22)【出願日】2020-05-01
(65)【公開番号】P2021176215
(43)【公開日】2021-11-04
【審査請求日】2023-04-24
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100090273
【弁理士】
【氏名又は名称】國分 孝悦
(72)【発明者】
【氏名】浅沼 知也
(72)【発明者】
【氏名】大森 慎也
【審査官】塚本 丈二
(56)【参考文献】
【文献】特開2008-225812(JP,A)
【文献】特開2003-6614(JP,A)
【文献】特開2009-187385(JP,A)
【文献】特開2012-108665(JP,A)
【文献】特開2013-45176(JP,A)
【文献】特表2014-535092(JP,A)
【文献】特開2019-79135(JP,A)
【文献】特表2019-513274(JP,A)
【文献】特許第5997808(JP,B1)
【文献】米国特許出願公開第2015/0363625(US,A1)
【文献】米国特許出願公開第2017/0061416(US,A1)
【文献】中国特許出願公開第106778736(CN,A)
【文献】中国特許出願公開第108573184(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 7/18
G06T 7/00
G06K 7/14
G06K 7/10
(57)【特許請求の範囲】
【請求項1】
全体画像から、前記全体画像に含まれる、複数の検出領域を検出する検出手段と、
記憶手段に記憶される判定基準値に基づいて、前記全体画像の前記複数の検出領域のそれぞれに対して、処理対象のオブジェクトを含む領域の候補か否かを判定する処理である第1の判定処理を実行する第1の判定手段と、
前記全体画像の前記複数の検出領域のうち、前記第1の判定処理で前記オブジェクトを含む領域の候補であると判定された前記検出領域について、ズーム撮影するように撮像装置を制御する撮像制御手段と、
前記ズーム撮影により得られたズーム画像を前記撮像装置から受信する受信手段と、
前記ズーム画像に対して、前記オブジェクトの画像か否かを判定する処理である第2の判定処理を実行する第2の判定手段と、
前記第2の判定処理で前記オブジェクトの画像ではないと判定された前記ズーム画像に相当する、前記全体画像の前記検出領域を特定し、特定した前記全体画像の前記検出領域の画像情報に基づいて、前記判定基準値を更新するように制御する更新制御手段と
を有することを特徴とする画像処理装置。
【請求項2】
前記第1の判定手段は、前記全体画像の前記検出領域の画像情報を用いて、前記オブジェクトを含む領域の候補か否かを判定し、
前記更新制御手段は、前記第1の判定手段で用いられた前記画像情報に基づいて、前記判定基準値を更新するように制御することを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記画像情報が、前記全体画像の前記検出領域の特徴を表す画像特徴量であることを特徴とする請求項1又は2に記載の画像処理装置。
【請求項4】
前記判定基準値は、前記画像特徴量の所定の閾値であって、
前記第1の判定手段は、前記全体画像の前記検出領域の前記画像特徴量が、前記所定の閾値の範囲内である場合に、前記オブジェクトを含む領域の候補であると判定することを特徴とする請求項3に記載の画像処理装置。
【請求項5】
前記判定基準値には、変更限界値が設けられており、
前記更新制御手段は、特定した前記全体画像の前記検出領域の前記画像特徴量が、前記変更限界値を超えない場合には、前記判定基準値を更新するように制御し、前記変更限界値を超える場合には、前記判定基準値を更新しないように制御することを特徴とする請求項4に記載の画像処理装置。
【請求項6】
前記画像特徴量が、画像の濃度に関する特徴量、及び又は画像の色に関する特徴量であることを特徴とする請求項3乃至5何れか1項に記載の画像処理装置。
【請求項7】
前記判定基準値が、複数設けられており、
前記更新制御手段は、複数の前記判定基準値のうちの一部を更新するように制御することを特徴とする請求項1乃至6何れか1項に記載の画像処理装置。
【請求項8】
前記オブジェクトが、バーコードであることを特徴とする請求項1乃至7何れか1項に記載の画像処理装置。
【請求項9】
前記第2の判定処理で前記オブジェクトの画像であると判定された前記ズーム画像に対して、読み取り処理を行う読取手段をさらに有することを特徴とする請求項1乃至8何れか1項に記載の画像処理装置。
【請求項10】
前記第2の判定手段は、前記ズーム画像に対して、読み取り処理を行って、前記読み取り処理に成功した場合には、読み取り対象の前記ズーム画像を前記オブジェクトの画像であると判定し、前記読み取り処理に失敗した場合には、読み取り対象の前記ズーム画像を前記オブジェクトの画像ではないと判定することを特徴とする請求項1乃至8何れか1項に記載の画像処理装置。
【請求項11】
前記第2の判定手段は、前記ズーム画像の画像情報に基づいて、前記オブジェクトの画像か否かを判定することを特徴とする請求項1乃至9何れか1項に記載の画像処理装置。
【請求項12】
前記第2の判定手段は、前記ズーム画像に対して、文字認識処理及び又はマッチング処理を行って得られた結果に基づいて、前記オブジェクトの画像か否かを判定することを特徴とする請求項1乃至9何れか1項に記載の画像処理装置。
【請求項13】
前記第1の判定手段は、前記全体画像の前記複数の検出領域について、前記第1の判定処理及び前記第2の判定処理を順次実行し、前の前記検出領域に対して、前記第2の判定処理を実行した後であって、次の前記検出領域に対して、前記第1の判定処理を実行する前に、前記記憶手段から前記判定基準値を取得することを特徴とする請求項1乃至12何れか1項に記載の画像処理装置。
【請求項14】
前記第1の判定手段は、前記全体画像の前記複数の検出領域について、前記第1の判定処理を順次実行し、1番目の前記検出領域に対して、前記第1の判定処理を実行する前に、前記記憶手段から取得した前記判定基準値に基づいて、最後の前記検出領域に対して、前記第1の判定処理を実行することを特徴とする請求項1乃至12何れか1項に記載の画像処理装置。
【請求項15】
前記検出手段は、前記全体画像に実際に存在する前記オブジェクトの数よりも、多い数の前記検出領域を検出することを特徴とする請求項1乃至14何れか1項に記載の画像処理装置。
【請求項16】
前記検出手段は、全体画像に対して前記オブジェクトを含むモデル画像とのマッチング処理を行い、前記マッチング処理の結果に基づいて、前記検出領域を検出することを特徴とする請求項1乃至15何れか1項に記載の画像処理装置。
【請求項17】
前記全体画像の前記複数の検出領域の位置に対応付けて、前記第1の判定処理及び前記第2の判定処理の判定結果を表示するように制御する表示制御手段をさらに有することを特徴とする請求項1乃至16何れか1項に記載の画像処理装置。
【請求項18】
前記更新制御手段で前記判定基準値が更新された場合に、前記判定基準値が更新された旨を通知する通知手段をさらに有することを特徴とする請求項1乃至17何れか1項に記載の画像処理装置。
【請求項19】
画像処理装置の制御方法であって、
全体画像から、前記全体画像に含まれる、複数の検出領域を検出する検出ステップと、
記憶手段に記憶される判定基準値に基づいて、前記全体画像の前記複数の検出領域のそれぞれに対して、処理対象のオブジェクトを含む領域の候補か否かを判定する処理である第1の判定処理を実行する第1の判定ステップと、
前記全体画像の前記複数の検出領域のうち、前記第1の判定処理で前記オブジェクトを含む領域の候補であると判定された前記検出領域について、ズーム撮影するように撮像装置を制御する撮像制御ステップと、
前記ズーム撮影により得られたズーム画像を前記撮像装置から受信する受信ステップと、
前記ズーム画像に対して、前記オブジェクトの画像か否かを判定する処理である第2の判定処理を実行する第2の判定ステップと、
前記第2の判定処理で前記オブジェクトの画像ではないと判定された前記ズーム画像に相当する、前記全体画像の前記検出領域を特定し、特定した前記全体画像の前記検出領域の画像情報に基づいて、前記判定基準値を更新するように制御する更新制御ステップと
を含むことを特徴とする画像処理装置の制御方法。
【請求項20】
コンピュータを、請求項1乃至18何れか1項に記載された画像処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は画像処理装置、画像処理装置の制御方法及びプログラムに関する。
【背景技術】
【0002】
近年、遠隔地に設置されたカメラのパン、チルト、ズームを、ネットワークを介して監視側の端末から制御可能なシステムが普及しつつある。特許文献1には、このような監視システムにおいて、バーコードを粗探索し、検出したバーコードに対してパン、チルト、ズームで拡大撮像することで精細なバーコード画像を取得する技術が開示されている。また、特許文献2には、複数の読取対象を含む画像を撮影し、読取対象の位置を順次特定し、その特定された位置に照準を合わせて読取処理を順次行う技術が開示されている。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2017-187988号公報
【文献】特開2014-225298号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
このような監視システムでは、所望の画像を漏れ無く取得するために、検出の判定閾値を低めに設定することで多少過剰な検出(過検出)をするように処理をする。しかし、このような過検出が多いと後の処理工程が増大し、全体の処理時間が余分にかかってしまうという問題がある。
【0005】
本発明はこのような問題点に鑑みなされたもので、撮影対象物の検出の漏れを無くしつつ、全体の処理時間を短縮することを目的とする。
【課題を解決するための手段】
【0006】
本発明の画像処理装置は、全体画像から、前記全体画像に含まれる、複数の検出領域を検出する検出手段と、記憶手段に記憶される判定基準値に基づいて、前記全体画像の前記複数の検出領域のそれぞれに対して、処理対象のオブジェクトを含む領域の候補か否かを判定する処理である第1の判定処理を実行する第1の判定手段と、前記全体画像の前記複数の検出領域のうち、前記第1の判定処理で前記オブジェクトを含む領域の候補であると判定された前記検出領域について、ズーム撮影するように撮像装置を制御する撮像制御手段と、前記ズーム撮影により得られたズーム画像を前記撮像装置から受信する受信手段と、前記ズーム画像に対して、前記オブジェクトの画像か否かを判定する処理である第2の判定処理を実行する第2の判定手段と、前記第2の判定処理で前記オブジェクトの画像ではないと判定された前記ズーム画像に相当する、前記全体画像の前記検出領域を特定し、特定した前記全体画像の前記検出領域の画像情報に基づいて、前記判定基準値を更新するように制御する更新制御手段とを有することを特徴とする。
【発明の効果】
【0007】
本発明によれば、撮影対象物の検出の漏れを無くしつつ、全体の処理時間を短縮することができる。
【図面の簡単な説明】
【0008】
図1】画像処理システムの全体構成図である。
図2】画像処理装置のハードウェア構成図である。
図3】NWカメラの外観図である。
図4】NWカメラのハードウェア構成図である。
図5】積荷を示す図である。
図6】準備処理を示すフローチャートである。
図7】マッチングモデルを示す図である。
図8】設定画面の一例を示す図である。
図9】テスト画面の一例を示す図である。
図10】ファイルの一例を示す図である。
図11】第1の実施形態の全体処理を示すフローチャートである。
図12】過検出を説明するための図である。
図13】準備処理を示すフローチャートである。
図14】設定画面の一例を示す図である。
図15】設定画面の一例を示す図である。
図16】撮影画面の一例を示す図である。
図17】読み取り画面の一例を示す図である。
図18】表示画面の一例を示す図である。
図19】第2の実施形態の全体処理を示すフローチャートである。
【発明を実施するための形態】
【0009】
以下、添付図面を参照して、本発明の好適な実施形態について説明する。
【0010】
<第1の実施形態>
(画像処理システムの全体構成)
図1は、画像処理システムの全体構成図である。本実施形態に係る画像処理システムは、工場等において搬入された積荷を撮影し、積荷に付されたバーコードを読み取り、予め登録されたバーコードの内容と照合することにより、荷物等が予定通り搬入されたことを確認するシステムである。さらに、本実施形態においては、撮影対象となる積荷に含まれる各荷物に荷札が添付されており、各荷札にバーコードが記されているものとする。本実施形態に係る画像処理システムは、各荷物に添付された荷札それぞれに記されたバーコードを順次読み取り、照合する。なお、本実施形態においては、画像処理装置100による読み取り及び照合の処理対象のオブジェクトがバーコードである場合を例に説明するが、読み取り及び照合の処理対象のオブジェクトは、バーコードに限定されるものではない。読み取りの処理対象のオブジェクトの他の例としては、数字、文字や記号等であってもよい。
【0011】
画像処理システムは、画像処理装置100と、NW(network)カメラ110と、DB(database)120と、POE(Power over Ethernet)ハブ130とを有している。画像処理システムはまた、PLC(programma ble logic controller)140と、センサ150とを有している。
【0012】
POEハブ130は、画像処理装置100、NWカメラ110、DB120及びPLC140に接続し、各部との通信を行うと共に、各部に電源を供給する。DB120には、搬入予定の複数の荷物に添付された複数の荷札それぞれに記されたバーコードの内容が予め登録されている。PLC140は、画像処理システムの全体を制御する。センサ150は、予め定められた場所に積荷が搬入されたことを検知する。
【0013】
画像処理装置100は、POEハブ130を介して、NWカメラ110と接続し、後述する制御コマンドを送信することによりNWカメラ110による撮影を制御する。NWカメラ110は、積荷Aの搬入場所を撮影するように設置されており、画像処理装置100の制御の下、積荷Aの画像を撮影する。ここで、積荷Aは、荷札が添付された複数の荷物が積み上げられたものである。画像処理装置100は、さらに、NWカメラ110により得られた画像を、POEハブ130を介して受信する。画像処理装置100は、受信された画像においてバーコードが記された荷札の画像を検出し、バーコードの読み取りを行う。画像処理装置100は、画像から読み取ったバーコードの情報とDB120に記憶されているバーコードの情報との照合を行う。これにより、荷物等が予定通り搬入されたことを確認することができる。なお、本実施形態においては、荷物の搬入を例に説明するが、荷物の搬出時の照合にも適用可能である。
【0014】
(画像処理装置100の構成)
図2は、画像処理装置100のハードウェア構成図である。画像処理装置100は、CPU201と、ROM202と、RAM203と、ディスプレイ204と、HDD205と、入力装置206と、メディアドライブ207と、I/F208とを有している。CPU201は、ROM202に記憶された制御プログラムを読み出して各種処理を実行する。RAM203は、CPU201の主メモリ、ワークエリア等の一時記憶領域として用いられる。HDD205は、各種データや各種プログラム等を記憶する。ディスプレイ204は、各種情報を表示する。入力装置206は、ユーザによる各種操作を受け付ける。メディアドライブ207は、SDカード等のメディアからのデータの読み出しやメディアへのデータの書き込み等を行う。I/F208は、外部装置との通信を行う。
【0015】
なお、後述する画像処理装置100の機能や処理は、CPU201がROM202又はHDD205に格納されているプログラムを読み出し、このプログラムを実行することにより実現されるものである。また、他の例としては、CPU201は、ROM202等に替えて、SDカード等の記録媒体に格納されているプログラムを読み出してもよい。また、他の例としては、画像処理装置100の機能や処理の少なくとも一部は、例えば複数のCPU、RAM、ROM、及びストレージを協働させることにより実現してもよい。また、他の例としては、画像処理装置100の機能や処理の少なくとも一部は、ハードウェア回路を用いて実現してもよい。
【0016】
(NWカメラ110の構成)
図3は、NWカメラ110の外観図である。301はパン駆動部であり、パンモータの駆動によりパン方向304で示す方向へ鏡筒部303の向きを変更させる。302はチルト駆動部であり、チルトモータの駆動によりチルト方向305で示す方向へ鏡筒部303の向きを変更させる。また、レンズ含む鏡筒部303は、ローテートモータの制御により、レンズ中心位置を中心に、ローテート方向306で示す方向に回転可能である。また、鏡筒部303はフォーカスレンズやズームレンズを含み、それぞれステッピング・モータにより駆動される。NWカメラ110は、ドーム307によって全体を覆われている。
【0017】
図4は、NWカメラ110のハードウェア構成図である。NWカメラ110は、ネットワークを介して外部の装置と通信可能な撮像装置である。401はレンズ部、402はCCD部、403は信号処理部、404は画像解析部、405は符号化部、406は通信処理部である。以下、NWカメラ110で撮像された画像データを画像処理装置100へ配信するまでの処理を説明する。レンズ部401から取り込まれた光学画像はCCD部402でRGBデジタルデータに変換された後、信号処理部403へ送信される。信号処理部403では、RGBデジタルデータをYCbCr4:2:0フォーマットまたはYCbCr4:2:2フォーマットのデジタルデータ(画像データ)に変換する処理、要求された送信画像の画像サイズへの変換処理、各種フィルタ処理等を行う。処理された画像データは画像解析部404に送信されると同時に符号化部405へも送信される。そして、画像データは、通信処理部406によってネットワークを介して外部の装置へ送信される。
【0018】
符号化部405では、画像データを、所定のフォーマット、例えば、H.264フォーマットまたはJPEGフォーマットへ符号化圧縮する処理を実行する。符号化部405で生成されたH.264の動画ストリームデータまたは各JPEG静止画データは、通信処理部406によりTCP/IP、HTTPあるいはRTP等のネットワークプロトコルに従って、画像処理装置100へ送信される。
【0019】
画像解析部404では、撮像された画像データを解析して目的とする画像中に被写体や指定条件の画像パターンが含まれているかどうかを検出する処理を行う。信号処理部403、画像解析部404、符号化部405、及び通信処理部406の各処理ブロックはCPU411と接続されている。407はカメラ制御部であり、モータ駆動部408及びレンズ駆動部410と接続されている。カメラ制御部407は、CPU411からの指示に従って、カメラのパン・チルト・ローテーション動作(パン方向、チルト方向への移動、及び光軸を中心とする回転)のための制御信号やズームやAF(オートフォーカス)動作のための制御信号を出力する。
【0020】
また、カメラ制御部407は、RAM413に記憶されている可視範囲設定及び可動範囲設定の少なくとも一方に従って、NWカメラ110の可視範囲及び可動範囲の少なくとも一方を制御する。モータ駆動部408にはモータ駆動回路等が備えられており、カメラ制御部407からの制御信号に従ってパン・チルト・ローテーションモータ409を駆動し、モータの回転によってカメラの撮像方向を変更することが可能となる。410はレンズ駆動部であり、ズーム、AF等の各制御を行うためのモータとモータ駆動回路を備えていて、カメラ制御部407からの制御信号に従って制御される。
【0021】
411はCPU(中央演算処理装置)であり、ROM(リードオンリーメモリ)412に格納されている制御プログラムを実行することで、装置全体の動作を制御する。CPU411には、ROM412、RAM413、及びFLASH(登録商標)メモリ414が接続されている。また、CPU411は、信号処理部403、画像解析部404、符号化部405、及び通信処理部406とも接続し、各処理ブロックに対して動作の開始・停止、動作条件の設定、動作結果の取得等を実行することで各処理ブロックの制御を行う。ROM412には、CPU411がアプリケーション処理等、本装置の制御を行うためのプログラムやデータが格納されている。
【0022】
RAM413は、CPU411がROM412のプログラムを実行する際に、データの書込/読出を行うメモリである。このRAM413には、CPU411が装置制御におけるプログラム実行に使用するワークエリア、一時退避エリア等が備えられている。RAM413は、撮像可能な画角の範囲を指定する可視範囲設定と、パン方向、チルト方向及びズーム方向への移動可能な範囲を指定する可動範囲設定との少なくとも一方を記憶する。
【0023】
CPU411は、通信処理部406を介して画像処理装置100から受信した制御コマンドに応じて撮影方向や、ズーム倍率を変更する。CPU411は、NWカメラ110から中心位置とズーム倍率を指定した制御コマンドを受信した場合には、この制御コマンドに従い、指定された位置が撮影中心となるようにパンチルトを制御し、指定されたズーム倍率になるようズームを制御する。
【0024】
(読み取りについて)
図5は、処理対象の積荷を示す図である。本実施形態では、図5に示すように、荷札が規則的に配置されていないような積荷Bを処理対象とする。画像処理装置100は、積荷の全体を撮影した全体画像に対して荷札のモデル画像を用いたマッチング処理を行うことにより全体画像から、モデル画像が出現する領域を検出し、検出結果に応じて、ズーム撮影の範囲を決定する。
【0025】
(準備処理)
図6は、画像処理装置100による、準備処理を示すフローチャートである。
S600において、CPU201は、ユーザ操作に応じて、積荷の全体を撮影する際の位置(全体撮影位置)を調整する。ユーザは、ディスプレイ204に表示された積荷の画像を見ながら、撮影範囲内に積荷の全体が収まるように、パンチルトズームを調整する。CPU201は、このユーザ操作に応じて調整されたパンチルトズームの設定に従い、制御コマンドを生成し、制御コマンドをNWカメラ110に送信する。NWカメラ110は制御コマンドを画像処理装置100から受信し、制御コマンドが示す設定にしたがってパンチルトズームをして撮影処理を行い、全体画像を取得し、画像処理装置100へ送信する。CPU201は、受信された全体画像をディスプレイ204に表示するよう制御する。
【0026】
次に、S601において、CPU201は、全体画像における、荷札の領域の位置を指定する。具体的には、ユーザは、ディスプレイ204に表示された全体画像を見ながら、全体画像において荷札の領域を見つけ、その位置を指定するよう操作する。CPU201は、このユーザ操作に応じて全体画像における荷札の領域の位置を指定する。指定された荷札の領域の位置が、ズーム撮影位置になる。
【0027】
次に、S602において、CPU201は、マッチングモデル(モデル画像)を作成する。具体的には、図7に示す全体画像700から、S601で指定された領域の位置にしたがって荷札の画像を抜き出し、これを荷札画像のマッチングモデル701とする。
次に、S603において、CPU201は、マッチング処理の設定を行う。具体的には、CPU201は、図8に示す設定画面800において、ユーザにより設定された枠801に応じて、マッチング処理の対象エリアを設定する。CPU201はまた、ユーザ操作に応じて、マッチングモデルを設定する。ここで、マッチングモデルの設定とは、S602で作成されたマッチングモデルをS603で行うマッチング処理の基準画像として使用するためにマッチングモデル画像を指定することである。設定されたマッチングモデルは領域802に表示される。CPU201はさらに、領域803への入力に応じて、マッチングパラメータの設定を行う。CPU201はまた、マッチング処理を行う順番を決定する。例えば、X座標の昇順/降順、またはY座標の昇順/降順にマッチング処理を行うことを設定する。
【0028】
マッチング処理が行われると、CPU201は、図9に示すテスト画面900をディスプレイ204に表示する。テスト画面900の領域901には、全体画像が表示され、マッチングモデルが出現した領域ごとに、マッチング結果を示す枠902が重畳されている。図9では1~7のすべての荷札の領域がマッチングモデルと一致し、検出に成功していることを示している。ユーザは、マッチング結果を参照し、検出に成功していない荷札の領域があれば、領域903において、ズーム撮影の位置を指定し直したり、領域904にズーム倍率を設定し直したりして、マッチング処理の精度を調整することができる。そして、マッチング処理で検出された荷札の領域のうち少なくとも1つが、テストのズーム撮影の位置として設定される。
【0029】
次に、S604において、CPU201は、テスト画面900において、ズーム撮影の位置とズーム倍率が設定された状態でテスト実行ボタン905が押下されると、設定に従い制御コマンドを生成し、制御コマンドをNWカメラ110に送信する。NWカメラ110は制御コマンドを画像処理装置100から受信し、制御コマンドが示す設定にしたがってパンチルトズームをして撮影処理を行い、ズーム画像を取得し、画像処理装置100へ送信する。そして、CPU201は、領域901に受信されたズーム画像を表示する。ユーザは、ズーム画像において、バーコードが適切に撮影されているかを確認し、ズーム倍率を調整することができる。
【0030】
次に、S605において、CPU201は、さらに、読み取り設定を行う。CPU201は、バーコードの読み取り対象となる矩形領域、バーコードの種類、バーコードの数、辞書等を設定する。
次に、S606において、CPU201は、後述の読み取り処理において読み取られた情報を格納するための設定を行う。具体的には、図10に示すように、データを格納する記憶領域を作成する。
【0031】
(全体処理)
図11は、第1の実施形態の全体処理を示すフローチャートである。
まず、S1100において、HDD205から判定閾値を取得する。判定閾値は、前回の全体処理で、後述のS1115で保存された値である。判定閾値の詳細は、後述する。判定閾値はHDD205に保存される。HDD205が記憶手段に相当する。
次に、過検出について説明する。本実施形態では、図5で示したような、複数の荷札が添付された積荷を撮像した全体画像から、荷札のモデル画像を用いたマッチング処理によりモデル画像が出現する領域を検出する。このとき、検出されなかった荷札に関しては、読み取り処理の対象外となってしまう。そのため、未検出の荷札をゼロにすることが必要となる。そのため、本実施形態では、S603(図6)のマッチング処理の設定でマッチングパラメータの閾値を低めに設定して、多少過剰な検出となったとしても、未検出の荷札を防ぐようにする。このように、実際の荷札の数よりも多少過剰に検出するように設定することを「過検出設定」と呼ぶ。また、荷札ではない領域が検出された数を「過検出数」と呼ぶ。さらに、荷札であるのに検出されなかった数を「未検出数」と呼ぶ。
【0032】
図12は、過検出について説明するための図である。図12(a)は、過検出数が多いが、未検出数がゼロであるケースを表している。図12(a)では1~7のすべての荷札が検出されているが、8~18の荷札ではない領域1201が検出されている。本ケースでは、過検出数が多い(その後の処理対象の数が多い)ため、全体の処理時間は長くなってしまう。しかし、本システムでは、未検出数をゼロとすることが要求されているため、本ケースは適している。一方、図12(b)は、過検出数は少ないが、未検出数がゼロではないケースを表している。図12(b)では、7~9の荷札ではない領域1202が検出されていて、過検出数が図12(a)のケースよりも少ないが、未検出の荷札1203が検出されている。本システムでは、図12(b)のようなケースとならず、図12(a)のようなケースにおいて、可能な限り過検出数が少ない状態となるように、適切なマッチングパラメータの閾値を設定する。
【0033】
図11のフローチャートの説明に戻る。
S1101において、CPU201は、S600(図6)において設定された条件で、制御コマンドを生成し、制御コマンドをNWカメラ110に送信する。NWカメラ110は制御コマンドを画像処理装置100から受信し、制御コマンドが示す設定にしたがってパンチルトズームをして撮影処理を行い、全体画像を取得し、画像処理装置100へ送信する。
S1102において、CPU201は、S1101で受信された全体画像において、S603(図6)で設定された情報に従い、マッチング処理を行い、荷札のモデル画像の出現する領域を検出する。本実施形態では、マッチング処理の設定が、上述の過検出設定になっているため、全体画像に実際に存在する荷札の数よりも多い数の領域が検出される。以下、S1102で検出された領域を検出領域という。S1102では、CPU201が検出手段として機能する。
S1103において、CPU201は、S604(図6)において設定されたズーム倍率を設定する。
S1104において、CPU201は、S1102で検出された検出領域のうち、1番目に検出された検出領域を処理対象として設定する。
S1105において、CPU201は、処理対象として設定された検出領域に対して、過検出判定処理を行う。以下、S1105で実行される過検出判定処理を、第1の判定処理という。
【0034】
(第1の判定処理を行うための準備処理)
まず、第1の判定処理を行うための準備処理について説明する。
図13は、第1の判定処理を行うための準備処理を示すフローチャートである。図14(a)は、判定閾値を設定するための設定画面1400である。図15(b)は、画像処理領域を設定するための設定画面1410である。
図13に示すフローチャートでは、図11のS1102で検出された検出領域が、荷札の領域か否かが判定されるように、設定を行う。本実施形態では、バーコードの画像の特徴の有無によって、荷札の領域か否かが判定されるように、設定を行う。例えば、全体画像の荷札の領域を画像処理領域として指定して、画像処理領域に対して画像処理を行う。そして、画像処理によって得られる平均濃度や、濃度の標準偏差のような画像特徴量について、バーコードの画像の特徴の有無が判定されるように、判定の基準となる閾値の設定を行う。以下、判定の基準となる画像特徴量の閾値を、判定閾値という。判定閾値が、判定基準値に相当する。
【0035】
S1300、S1301において、CPU201は、基準画像の選択と画像処理領域の設定を行う。具体的には、図14(a)の設定画面1400の、領域1402において、判定閾値を設定する際の基準となる全体画像(基準画像)を選択する。また、画像処理領域の設定については、図14(b)の設定画面1410の、領域1411において指定枠1401の形状を選択し、指定された形状の指定枠1401を基準画像上に表示し、指定枠1401の位置・大きさにより、画像処理領域の設定を行う。具体的には、荷札の領域に合わせて、指定枠1401の大きさを入力装置206のマウスで指定して、領域1413の矢印アイコンを操作して、指定枠1401の位置を指定する。或いは、領域1412において、始点座標X、Y、終点座標X、Yに直接座標値を入力して、荷札の領域に合わせて、指定枠1401の位置・大きさを指定する。
【0036】
次に、S1302において、CPU201は、判定閾値を設定する。具体的には、S1301で設定された画像処理領域における、前述の平均濃度と濃度偏差(濃度の標準偏差)に関して、図14(a)の領域1403への入力に応じて、判定閾値の上限値(max)/下限値(mini)を設定する。例えば、バーコードが最低限有しているであろう平均濃度が130である場合には、平均濃度の上限値を255、下限値を130に設定する。また、バーコードが最低限有しているであろう濃度偏差が20である場合には、濃度偏差の上限値を255、下限値を20に設定する。また、バーコードが最低限有しているであろう最大濃度や、バーコードが最大限有しているであろう最小濃度についても、同様に設定する。
本実施形態では、判定閾値として、平均濃度と濃度偏差を用いた。一方で、画像処理を行って得られる画像情報であれば、平均濃度や濃度偏差のような画像の濃度に関する特徴量とともに、又は画像の濃度に関する特徴量に代えて、画像の色に関する特徴量を用いてもよい。
【0037】
図11のフローチャートの説明に戻る。
S1105において、CPU201は、処理対象として設定された検出領域に対して、第1の判定処理を行う。具体的には、全体画像の検出領域の、S1301(図13)で設定された画像処理領域における、前述の平均濃度と濃度偏差が、S1302(図13)で設定された判定閾値の範囲内であるか否かを判定する。ここで、判定閾値の範囲内であると判定された検出領域については、当該検出領域をズーム撮影して得られたズーム画像に対して、ズーム画像での過検出判定処理(S1110)が実行され、バーコードの画像であるか否かが判定される。そのため、S1105で判定閾値の範囲内であると判定されても、バーコードを含む領域であると確定されない。即ち、S1105で判定閾値内であると判定されたことは、バーコードを含む領域の候補である(過検出ではない)と判定されたことを意味する。一方で、判定閾値の範囲外であると判定されたことは、バーコードを含む領域ではない(過検出である)と判定されたことを意味する。なお、CPU201は、第1の判定処理に用いられた、検出領域の平均濃度と濃度偏差を、RAM203に保持する。RAM203に保持される平均濃度と濃度偏差は、第1の判定処理が実行されるたびに、更新される。
S1106において、CPU201は、処理対象として設定された検出領域が、過検出であるか否かを判定する。CPU201が過検出である(バーコードを含む領域ではない)と判定した場合には、処理はS1116に進む。過検出であると判定された検出領域は、ズーム撮影や読み取り処理の対象から除外される。従って、全体の処理時間を短縮することができる。一方で、CPU201が過検出ではない(バーコードを含む領域の候補である)と判定した場合には、処理はS1107に進む。S1105及S1106では、CPU201が第1の判定手段として機能する。
【0038】
次に、S1107において、CPU201は、処理対象として設定された検出領域の位置を、ズーム撮影の中心位置として設定する。
S1108において、CPU201は、S1103において設定されたズーム倍率と、S1107で設定されたズーム撮影の中心位置に従い、NWカメラ110がパンチルトズームを調整するように制御コマンドを生成し、制御コマンドをNWカメラ110に送信する。NWカメラ110は制御コマンドを画像処理装置100から受信し、制御コマンドが示す設定にしたがってパンチルトズームの設定を行う。なお、ズーム倍率の設定は、1番目の検出領域に対してのみ行われ、2番目以降の検出領域に対しては行われない。そのため、2番目以降の検出領域については、NWカメラ110はパンチルトの調整だけを行う。S1107及びS1108では、CPU201が撮像制御手段として機能する。
【0039】
S1109において、NWカメラ110はS1108で設定にしたがってパンチルトズームをして撮影処理を行い、ズーム画像を取得し、画像処理装置100へ送信する。CPU201は、NWカメラ110からズーム画像を受信する。S1109では、CPU201が受信手段として機能する。
【0040】
S1110において、CPU201は、S1109で受信したズーム画像に対して、ズーム画像での過検出判定処理を行う。以下、S1110で実行される過検出判定処理を、第2の判定処理という。具体的には、まず、前述の図13のフローチャートに示す処理と同様にして、第2の判定処理を行うための準備処理を実行して、各種の設定を行う。図15(a)は、図14(a)の設定画面1400と同様に、判定に用いられる閾値を設定するための設定画面1500である。図15(b)は、図14(b)と同様に、画像処理領域を設定するための設定画面1510である。そして、当該準備処理で設定した各種の設定値に基づいて、ズーム画像がバーコードの画像である(過検出ではない)か、ズーム画像がバーコードの画像ではない(過検出である)かが、判定される。例えば、第1の判定処理と同様に、設定された画像処理領域の画像特徴量の閾値に基づいて、ズーム画像がバーコードの画像であるか否かが判定される。
【0041】
ここで、第2の判定処理では、判定を行う対象の画像がズーム画像であるため、撮影オブジェクトに対する解像度が高い。そのため、過検出判定のための手段として、文字認識処理や形状マッチング処理などを用いてもよい。例えば、図15(a)では、領域1502で所定の文字(図15(a)の例では「ABC」)を示すモデル画像の設定を行い、領域1503への入力に応じてマッチングパラメータの設定を行う。この場合には、第2の判定処理として、ズーム画像おける、指定枠1501で設定される画像処理領域に対して、設定された情報に従い、マッチング処理を行って、所定の文字が出現されるか否かが判定される。
【0042】
S1111において、CPU201は、S1109で受信したズーム画像が過検出であるか否かを判定する。CPU201が過検出である(バーコードの画像ではない)と判定した場合には、処理はS1114に進む。一方で、CPU201が過検出ではない(バーコードの画像である)と判定した場合には、処理はS1112に進む。S1110及びS1111では、CPU201が第2の判定手段として機能する。
まず、S1111の判定処理の結果、過検出である(バーコードの画像ではない)と判定された場合の処理について説明する。
S1114において、CPU201は、S1109で受信したズーム画像に相当する、S1101で撮影した全体画像の領域を特定する。ここで特定された領域は、第1の判定処理が行われた検出領域である。さらに、CPU201は、上記特定された領域に対して行った、第1の判定処理で用いた、平均濃度と濃度偏差を取得する。この値は、前述のS1105で出力した最新値として、RAM203に保持した状態であるため、容易に取得可能である。
【0043】
次に、S1115において、CPU201は、S1114で取得した平均濃度と濃度偏差に基づいて、第1の判定処理の判定閾値を更新してHDD205に保存する。具体的には、当該実行フローにおいて、判定閾値の初期値は前述のとおり、平均濃度は、上限値255、下限値130に設定され、濃度偏差は、上限値255、下限値20に設定されている。この設定状態において、S1114で取得した画像特徴量が、例えば、平均濃度が128であり、濃度偏差が19であるとする。この場合には、CPU201は、平均濃度の下限値を128に更新し、濃度偏差の下限値を19に更新する。また、その後に実行された処理において、S1114で取得した画像特徴量が、例えば、平均濃度は129であり、濃度偏差が18であるとする。この場合、S1115において、CPU201は、平均濃度は現在保存されている128のままとする(今回の値で更新しない)。一方、濃度偏差は、現在保存されている19を18に更新する。つまり、第1の判定処理の判定閾値の許容範囲を広げるように変更することで、第1の判定処理で、より多くの検出領域が過検出(バーコードを含む領域ではない)として判定されるようになる。
しかし、S1105でより過検出となるように判定閾値の変更を許容しすぎると、前述のとおり、未検出が発生する可能性がある。そのような事象を防ぐため、第1の判定処理の判定閾値の上限値/下限値については変更限界値を設定することにより、ある値以上(または以下)の閾値とならないようにしてもよい。具体的には、CPU201は、S1114で取得した平均濃度と濃度偏差が、判定閾値の上限値/下限値に設定された変更限界値の範囲内であれば、判定閾値を更新し、判定閾値の上限値/下限値に設定された変更限界値の範囲外であれば、判定閾値を更新しない。S1115の処理が完了した後、処理はS1116に進む。S1114及びS1115では、CPU201が更新制御手段として機能する。
【0044】
S1116において、CPU201は、第1の判定処理された検出領域が、S1102で検出された順序における最後の検出領域であるか否かを判定する。CPU201が最後の検出領域であると判定した場合、処理はS1118に進む。CPU201が最後の検出領域ではないと判定した場合、処理はS1117に進む。
S1117において、CPU201は、次の検出領域を、処理対象とする。その後、処理はS1105に戻る。このようにして、複数の検出領域に対して、第1の判定処理が順次実行される。なお、S1107では、ズーム撮影の中心位置が変更され、S1108では、改めてパンチルトが調整され撮影が行われるが、一旦ズームアウトして改めてズームインするといった動作は行われない。このため、NWカメラ110のズームの駆動に係る処理時間を短縮することができる。
【0045】
S1118において、CPU201は、S1101で撮影された全体画像の、S1102で検出された検出領域の位置に対応付けて、第1の判定処理及び第2の判定処理の判定結果を、ディスプレイ204に表示する。具体的には、図18(a)で後述する。また、CPU201は、S1115で閾値更新である旨を示す表示アイテムをディスプレイ204に表示する。具体的には、図18(b)で後述する。なお、閾値更新である旨を通知する方法であれば、表示以外の方法であってもよい。S1118では、CPU201が表示制御手段及び通知手段として機能する。S1118の処理が完了した後、以上の全体処理の一連のフローが終了する。
【0046】
次に、S1111の判定処理の結果、過検出ではない(バーコードの画像である)と判定された場合の処理について説明する。
S1112において、CPU201は、S1109でNWカメラ110から受信したズーム画像に対して、S605(図6)で設定された情報にしたがってコード読み取り処理を行う。次に、S1113において、CPU201は、S606(図6)で設定された情報にしたがって、コード読み取り処理の結果において読み取られた情報を、HDD205等の記憶部に格納する。S1113の処理が完了した後、処理はS1116に進む。S1112及びS1113では、CPU201が読取手段として機能する。
【0047】
なお、S1112のコード読み取り処理の失敗が、S1108で行ったパンチルト設定におけるNWカメラ110のパンチルト制御精度によるものだとした場合、ズーム倍率設定、マッチング処理、パンチルト設定を段階的に行っても良い。具体的には、S1103のズーム倍率設定をS1112のコード読み取り処理が行えるズーム倍率よりも低く行い、S1109のズーム撮影の後に荷札のモデル画像を用いたマッチング処理を再度行う。再度のマッチング処理の結果、座標が画面中央に近い検出領域に対し、中心位置設定を行い、パンチルト設定、ズーム撮影、コード読み取り処理を行う。
【0048】
図16は、ズーム画像の撮影時(S1109)にディスプレイ204に表示される撮影画面1600の一例を示す図である。領域1601にはS1101で撮影された全体画像が表示され、S1102のマッチング処理の結果を示す枠1602が重畳されている。また、領域1603には、ズーム画像が表示される。図16には、S1102で検出された順序における5番目の検出領域のズーム画像が表示される例を示す。
【0049】
図17は、コード読み取り処理時(S1112)にディスプレイ204に表示される読み取り画面1700の一例を示す図である。読み取り画面1700には、コード読み取り処理の結果1711,1712,1713が表示される。
【0050】
図18(a)は、全体画像上に、第1の判定処理で過検出である(バーコードを含む領域ではない)と判定された検出領域、第2の判定処理で過検出である(バーコードの画像ではないと判定されたズーム画像に対応する検出領域、コード読み取り処理が正常に行われたズーム画像に対応する検出領域、及びコード読み取り処理に失敗したズーム画像に対応する検出領域を、識別可能に表示する表示画面の一例を示す。
具体的には、S1102で検出した検出領域には、矩形の表示枠が表示され、当該表示枠の中にS1102で検出された順序が番号で表示される。また、第1の判定処理で過検出である(バーコードを含む領域ではない)と判定された検出領域には、判定結果として●が表示される。第2の判定処理で過検出である(バーコードの画像ではない)と判定されたズーム画像に対応する検出領域には、判定結果として▲が表示される。コード読み取り処理が正常に行われたズーム画像に対応する検出領域には、読み取り結果として○が表示される。コード読み取り処理に失敗したズーム画像に対応する検出領域には、読み取り結果として×が表示される。また、CPU201は、このような表示をリアルタイムにディスプレイ204に表示してもよいし、この表示画像を画像データとしてHDD205へ保存してもよい。また、ここでは、各検出領域における判定結果や読み取り結果を表示するとしたが、CPU201は、各検出領域における判定結果や読み取り結果としてログ保存してもよい。例えば、S1102で検出された順序に対応付けて、○=1(正常読み取り)、×=99(異常読み取り)、●=11(第1の過検出判定結果が過検出である)、▲=21(第2の判定処理の結果が過検出である)とした種別としてHDD205へログデータとして保存してもよい。
【0051】
図18(b)は、S1105の判定閾値が更新されたことを表示する表示画面の一例である。具体的には、ディスプレイ204の右上部に閾値更新である旨を示す表示アイテムを表示する。表示アイテムの表示位置は、ユーザが設定できてもよいし、プログラムで一意の領域に表示してもよい。さらに、表示アイテムは、任意のマークであってもよい。また、CPU201は、当該全体処理の結果として、閾値更新あり=1、閾値更新なし=0、のようなログデータをHDD205へ保存してもよい。なお、CPU201は、表示アイテムを、当該閾値を使用する処理が終了したと同時に非表示としてもよいし、当該全体処理が終了したと同時に非表示としてもよい。
【0052】
以上のように、第1の実施形態に係る画像処理システムは、全体画像からバーコードを含む領域の候補を未検出が無いように過剰に検出して、第1の判定処理での判定結果に基づいて、バーコードを含まない領域を後の処理工程から除外する。更に、ズーム後の第2の判定処理の判定結果に基づいて、第1の判定処理の判定閾値を更新できる。これにより、第1の判定処理の判定閾値が適切に設定されて、第2の判定処理で過検出であると判定されたズーム画像に相当する検出領域に、特徴の類似する検出領域を、次回以降の全体処理で、後の処理工程から除外することができる。従って、未検出を防ぎつつ、全体の処理時間を短縮することができる。
【0053】
(第2の実施形態)
次に、図19を参照して、第2の実施形態に係る画像処理システムについて説明する。前述の第1の実施形態では、全体処理の最初で取得した判定閾値に基づいて、第1の判定処理が実行される。従って、図11の全体処理の実行中は、判定閾値が更新されたとしても、第1の判定処理に反映されない。そのため、第2の判定処理で過検出であると判定されたズーム画像に相当する検出領域に、特徴の類似する検出領域が、全体処理の実行中に再び出現した場合、当該再び出現した検出領域は、後の処理工程から除外されない。そこで、第2の実施形態では、前の検出領域に対して第2の判定処理が実行された後であって、後の検出領域に対して第1の判定処理が実行される前に、判定閾値を取得するようにする。第2の実施形態に係る画像処理システムのハードウェア構成は、第1の実施形態と同様である。
図19は、第2の実施形態の全体処理を示すフローチャートである。図11のフローチャートとは、S1100が、S1104とS1105の間に実行される点で異なる。
【0054】
以上のように、第2の実施形態に係る画像処理システムによれば、更新された判定閾値が、全体処理の実行中に、第1の判定処理に反映される。そのため、第2の判定処理で過検出であると判定されたズーム画像に相当する検出領域に、特徴の類似する検出領域が、全体処理の実行中に再び出現した場合、当該再び出現した検出領域を、後の処理工程から迅速に除外することができる。従って、全体の処理時間を更に短縮することができる。
【0055】
以上、本発明をその好適な実施形態に基づいて詳述してきたが、本発明はこれら特定の実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。更に、上述した各実施形態は本発明の一実施形態を示すものにすぎず、各実施形態を適宜組み合わせることも可能である。
【0056】
例えば、上述の各実施形態では、第2の判定処理において、過検出である(バーコードの画像ではない)と判定された場合に、第1の判定処理の判定閾値が更新される。このように第2の判定処理の判定結果に応じて、第1の判定処理の判定閾値が更新される構成に代えて、コード読み取り処理の判定結果に応じて、第1の判定処理の判定閾値が更新される構成であってもよい。具体的には、CPU201はコード読み取り処理の結果が失敗である場合に、第1の判定処理の判定閾値を更新する。この場合には、第1の実施形態では、S1100及びS1111の処理が不要になり、S1112の処理の後で、コード読み取り処理が失敗であると判定された場合に、処理はS1114に進む。
【0057】
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【符号の説明】
【0058】
100:画像処理装置、110:NWカメラ、201:CPU、202:ROM、203:RAM、204:ディスプレイ、205:HDD、206:入力装置、207:メディアドライブ、208:I/F
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19