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

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

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

特許7566561情報処理装置、情報処理方法およびプログラム
<図1>
  • 特許-情報処理装置、情報処理方法およびプログラム 図1
  • 特許-情報処理装置、情報処理方法およびプログラム 図2
  • 特許-情報処理装置、情報処理方法およびプログラム 図3
  • 特許-情報処理装置、情報処理方法およびプログラム 図4
  • 特許-情報処理装置、情報処理方法およびプログラム 図5
  • 特許-情報処理装置、情報処理方法およびプログラム 図6
  • 特許-情報処理装置、情報処理方法およびプログラム 図7
  • 特許-情報処理装置、情報処理方法およびプログラム 図8
  • 特許-情報処理装置、情報処理方法およびプログラム 図9
  • 特許-情報処理装置、情報処理方法およびプログラム 図10
  • 特許-情報処理装置、情報処理方法およびプログラム 図11
  • 特許-情報処理装置、情報処理方法およびプログラム 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-04
(45)【発行日】2024-10-15
(54)【発明の名称】情報処理装置、情報処理方法およびプログラム
(51)【国際特許分類】
   G06F 9/50 20060101AFI20241007BHJP
   G06T 7/00 20170101ALI20241007BHJP
【FI】
G06F9/50 150B
G06T7/00
【請求項の数】 17
(21)【出願番号】P 2020168518
(22)【出願日】2020-10-05
(65)【公開番号】P2022060814
(43)【公開日】2022-04-15
【審査請求日】2023-10-04
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110001243
【氏名又は名称】弁理士法人谷・阿部特許事務所
(72)【発明者】
【氏名】永縄 吉宏
(72)【発明者】
【氏名】深町 仁
【審査官】田中 幸雄
(56)【参考文献】
【文献】特開2019-109874(JP,A)
【文献】国際公開第2012/060098(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/50
G06T 7/00
(57)【特許請求の範囲】
【請求項1】
処理対象物を撮像して得られた画像データに対して実行する処理内容の異なる複数の画像処理からなる一連の画像処理の指定を受け付ける受付手段と、
前記一連の画像処理のうちの少なくとも1つの画像処理が複数の画像処理手法で実行可能である場合に、前記一連の画像処理を実行可能な画像処理手法の組合せ候補を導出し、各画像処理手法の個別の実行時間および個別の精度情報を取得して、前記画像処理手法の組合せ候補のそれぞれの実行時間および精度情報を算出する候補導出手段と、
前記画像データに対して前記一連の画像処理を実行するために費やすことのできる処理を完了させる時間を取得する取得手段と、
前記画像処理手法の組合せ候補の中から、前記実行時間が前記処理を完了させる時間以下であり、かつ、前記精度情報が示す精度が相対的に高い画像処理手法の組合せを選択する選択手段と、
を備えることを特徴とする情報処理装置。
【請求項2】
前記候補導出手段は、各画像処理手法と各画像処理手法が実行可能な画像処理とが関連付けられた情報を記憶した記憶手段から、前記一連の画像処理を構成する各画像処理に関連付けられた画像処理手法を検索し、検索して得られた画像処理手法に基づき前記画像処理手法の組合せ候補を導出する、
ことを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記候補導出手段は、各画像処理手法が高精度であるか否かを示す情報を前記精度情報として取得し、前記精度情報が示す精度を各画像処理手法の組合せ候補に含まれる高精度である画像処理手法の数で評価する、
ことを特徴とする請求項1又は2に記載の情報処理装置。
【請求項4】
前記候補導出手段は、各画像処理手法の所定の基準精度に対する相対精度を示す値を前記精度情報として取得し、前記精度情報が示す精度を各画像処理手法の組合せ候補に含まれる複数の画像処理手法の前記相対精度を示す値の平均値で評価する、
ことを特徴とする請求項1又は2に記載の情報処理装置。
【請求項5】
前記画像データを取得して、当該画像データに対して前記選択された画像処理手法で前記一連の画像処理を実行する実行手段、
をさらに備えることを特徴とする請求項1乃至4のいずれか1項に記載の情報処理装置。
【請求項6】
前記実行手段は、前記画像データに対応する前記一連の画像処理の実行開始を示す信号を受信すると、当該実行開始を示す信号に対応する前記画像データに対して前記選択された画像処理手法の組合せで前記一連の画像処理を実行する、
ことを特徴とする請求項5に記載の情報処理装置。
【請求項7】
前記実行手段が、前記処理を完了させる時間内に、複数の処理対象物を撮像して得られた複数の画像データに対して前記一連の画像処理を実行する場合、
前記選択手段は、前記画像処理手法の組合せ候補の中から、前記実行時間を前記一連の画像処理の実行数倍した時間が前記処理を完了させる時間以下であり、かつ、前記精度情報が示す精度が相対的に高い画像処理手法の組合せを選択する
ことを特徴とする請求項6に記載の情報処理装置。
【請求項8】
前記実行手段が、前記処理を完了させる時間内に、複数の処理対象物を撮像して得られた複数の画像データに対して前記一連の画像処理を実行する場合、
前記取得手段は、前記複数の画像データのそれぞれに対して個別の処理を完了させる時間を取得し、
前記選択手段は、前記複数の画像データのそれぞれに対して、前記画像処理手法の組合せ候補の中から、前記実行時間が前記個別の処理を完了させる時間以下であり、かつ、前記精度情報が示す精度が相対的に高い画像処理手法の組合せを選択する、
ことを特徴とする請求項6に記載の情報処理装置。
【請求項9】
前記実行手段は、前記複数の画像データに対して、対応する前記実行開始を示す信号を受信した順に、前記選択された画像処理手法の組合せで前記一連の画像処理を実行する、
ことを特徴とする請求項7又は8に記載の情報処理装置。
【請求項10】
前記実行手段は、前記一連の画像処理の実行待ちの前記画像データに対して、前記処理を完了させる時間の終了時刻が早い順に、前記選択された画像処理手法の組合せで前記一連の画像処理を実行する、
ことを特徴とする請求項7又は8に記載の情報処理装置。
【請求項11】
前記実行手段は、前記一連の画像処理の実行待ちの前記複数の画像データの中に、前記一連の画像処理が実行中の画像データよりも、前記処理を完了させる時間の終了時刻が早い画像データが存在する場合、実行中の前記一連の画像処理を中断して前記処理を完了させる時間の終了時刻が早い画像データに対して前記選択された画像処理手法の組合せで前記一連の画像処理を実行し、当該処理を完了させる時間の終了が早いデータに対する前記一連の画像処理の実行が完了した後に、前記一連の画像処理を中断したデータに対して前記選択された画像処理手法の組合せで前記一連の画像処理の実行を再開する、
ことを特徴とする請求項7乃至10のいずれか1項に記載の情報処理装置。
【請求項12】
複数の処理対象物を撮像して得られた複数の画像データのそれぞれに対して異なる一連の画像処理の指定を受け付ける受付手段と、
前記異なる一連の画像処理のそれぞれについて、当該一連の画像処理のうちの少なくとも1つの処理が複数の画像処理手法で実行可能である場合に、当該一連の画像処理を実行可能な画像処理手法の組合せ候補を導出し、各画像処理手法の実行時間および精度情報を取得して、前記画像処理手法の組合せ候補のそれぞれの実行時間および精度情報を算出する候補導出手段と、
前記複数の画像データのそれぞれに対する前記異なる一連の画像処理のそれぞれの実行にかけられる処理を完了させる時間を取得する取得手段と、
前記異なる一連の画像処理のそれぞれに対して、前記画像処理手法の組合せ候補の中から、前記実行時間が前記処理を完了させる時間以下であり、かつ、前記精度情報が示す精度が相対的に高い画像処理手法の組合せを選択する選択手段と、
を備えることを特徴とする情報処理装置。
【請求項13】
前記画像処理手法は、画像処理プログラムである、
ことを特徴とする請求項1乃至11のいずれか1項に記載の情報処理装置。
【請求項14】
同一の処理を実行可能な複数の画像処理手法は、それぞれ前記実行時間および前記精度情報が異なる、
ことを特徴とする請求項1乃至12のいずれか1項に記載の情報処理装置。
【請求項15】
前記取得手段は、所定の信号の受信間隔に基づき前記処理を完了させる時間を導出する、
ことを特徴とする請求項1乃至13のいずれか1項に記載の情報処理装置。
【請求項16】
受付手段が、処理対象物を撮像して得られた画像データに対して実行する処理内容の異なる複数の画像処理からなる一連の画像処理の指定を受け付ける受付ステップと、
候補導出手段が、前記一連の画像処理のうちの少なくとも1つの画像処理が複数の画像処理手法で実行可能である場合に、前記一連の画像処理を実行可能な画像処理手法の組合せ候補を導出し、各画像処理手法の個別の実行時間および個別の精度情報を取得して、前記画像処理手法の組合せ候補のそれぞれの実行時間および精度情報を算出する候補導出ステップと、
取得手段が、前記画像データに対して前記一連の画像処理を実行するために費やすことのできる処理を完了させる時間を取得する取得ステップと、
選択手段が、前記画像処理手法の組合せ候補の中から、前記実行時間が前記処理を完了させる時間以下であり、かつ、前記精度情報が示す精度が相対的に高い画像処理手法の組合せを選択する選択ステップと、
を備えることを特徴とする情報処理方法。
【請求項17】
コンピュータを請求項1乃至15のいずれか1項に記載の情報処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理の制御技術に関するものである。
【背景技術】
【0002】
FA(Factory Automation)分野では、被測定物の形状が規格内かなど検査をしたり、被測定物内の文字や形を認識し認識文字や認識位置を出力したり、被測定物との距離を算出したりするために様々な画像処理が利用されている。それらの画像処理は機能ごとに個別にプログラム化され、それら様々な機能を持った画像処理プログラムはまとめて1つのライブラリとして提供されている。また、FA分野では先述の画像処理を複数組合せて実行することが多い。例えば、撮像装置で被測定物を撮像して得られた画像から特定領域を切り出し、切り出した領域画像に対しグレースケール処理を施し、そのグレースケール画像からバーコードを認識し、バーコードに記録された情報に応じて被測定物の移動先を決定する。この一連の工程では3つの異なる画像処理を実行するために、画像処理ライブラリから対応する画像処理プログラムを呼び出して実行している。
【0003】
また、FA分野では一連の処理を指定時間までに完了させなければならないタクトタイムが存在する。このタクトタイム内に処理が完了しない場合は、処理のやり直しや、人手を介した処理などが必要になり、追加の労力や時間が必要となる。そのため、特許文献1ではソフト処理とハード処理を組合せて画像処理を行い、逐次ソフト処理もしくはハード処理のどちらか速い方で処理する方法が開示されている。特許文献1では、ハード処理の準備時間を利用して並行してソフト処理を行い、ハード処理の準備完了後、ハード処理時間とそのままソフト処理を継続した場合の残ソフト処理時間とを比較し、ハード処理時間の方が短い場合のみハード処理に切り替える。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2016-143369号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1の手法では、ソフト処理およびハード処理のどちらもタクトタイム内で実行可能である場合であっても、処理精度は考慮されずに処理時間の短い方が選択されてしまうという課題がある。
【0006】
本発明は、処理内容の異なる複数の画像処理の組合せからなる一連の画像処理を実行する際に、処理速度および処理精度の両立を図ることを目的とする。
【課題を解決するための手段】
【0007】
上記課題を解決するために、本発明にかかる情報処理装置は、処理対象物を撮像して得られた画像データに対して実行する処理内容の異なる複数の画像処理からなる一連の画像処理の指定を受け付ける受付手段と、前記一連の画像処理のうちの少なくとも1つの画像処理が複数の画像処理手法で実行可能である場合に、前記一連の画像処理を実行可能な画像処理手法の組合せ候補を導出し、各画像処理手法の個別の実行時間および個別の精度情報を取得して、前記画像処理手法の組合せ候補のそれぞれの実行時間および精度情報を算出する候補導出手段と、前記画像データに対して前記一連の画像処理を実行するために費やすことのできる処理を完了させる時間を取得する取得手段と、前記画像処理手法の組合せ候補の中から、前記実行時間が前記処理を完了させる時間以下であり、かつ、前記精度情報が示す精度が相対的に高い画像処理手法の組合せを選択する選択手段と、を備えることを特徴とする。
【発明の効果】
【0008】
本発明によれば、処理内容の異なる複数の画像処理の組合せからなる一連の画像処理を実行する際に、処理速度および処理精度の両立を図ることができる。
【図面の簡単な説明】
【0009】
図1】第1実施形態に係る情報処理装置の内部構成を示す図である。
図2】第1実施形態に係る情報処理装置の機能ブロック図である。
図3】第1実施形態に係る情報処理装置の動作フローチャートである。
図4】第1実施形態に係る処理環境を例示的に示す図である。
図5】画像処理ライブラリが対応する画像処理の関係と、実行する画像処理順と、画像処理性能を例示的に示す図である。
図6】画像処理ライブラリが対応する画像処理の関係と、実行する画像処理順と、画像処理性能を例示的に示す図である。
図7】画像処理ライブラリが対応する画像処理の関係と、実行する画像処理順と、画像処理性能を例示的に示す図である。
図8】第2実施形態に係る処理環境を例示的に示す図である。
図9】第2実施形態に係る情報処理装置の動作フローチャートである。
図10】画像処理ライブラリが対応する画像処理の関係と、実行する画像処理順と、画像処理性能を例示的に示す図である。
図11】その他の実施形態に係る処理環境を例示的に示す図である。
図12】実行する順番とタクトタイムの関係を例示的に示す図である。
【発明を実施するための形態】
【0010】
以下に、図面を参照して、この発明の好適な実施の形態を詳しく説明する。なお、この実施の形態はあくまで例示であり、この発明の範囲をそれらのみに限定する趣旨のものではない。
【0011】
(第1実施形態)
本発明に係る情報処理装置の第1実施形態として、実施する画像処理とその順番をユーザが設定して、受信したタクトタイムと設定された画像処理順を元に使用する画像処理ライブラリを決定する情報処理装置を例に挙げて以下に説明する。画像処理ライブラリとは、処理内容の異なる複数の画像処理手法を提供するもので、画像処理手法としては画像処理プログラムなどがある。
【0012】
図1は、第1実施形態に係る情報処理装置の内部構成を示す図である。情報処理装置100は、CPU101、メモリ102、記憶装置103、入力装置104、出力装置105、受信装置106を備え、各々はバス107により相互に接続されている。
【0013】
CPU101は、記憶装置103に記憶されている画像処理制御プログラム108を実行することにより、後述する各種機能を実行する。メモリ102は、CPU101が記憶装置103から読み出したプログラムやデータを一時的に記憶する。また、メモリ102は、CPU101が各種のプログラムを実行するための領域としても利用される。記憶装置103は、オペレーティングシステム(OS)や画像処理制御プログラムや各種アプリケーションプログラムおよびデータなどを記憶する。データとしては画像処理の実行順や画像処理ライブラリ、画像処理ライブラリによって実行できる画像処理、画像処理ライブラリの画像処理プログラムの精度や処理を完了させる時間(タクトタイム)などの処理の特性情報などがある。なお、記憶装置103は、例えばHDDのような補助記憶装置により構成される。
【0014】
入力装置104は、ユーザからの入力を受け付ける装置である。具体的には、キーボード104a、マウス104bなどが用いられる。出力装置105は、入力装置104を介して入力された情報、及び、CPU101により実行されたプログラムの実行結果を出力する。受信装置106は外部装置から情報を受信する。具体的には、タクトタイムとなる画像処理を完了しなければならない時間などがある。
【0015】
図2は、第1実施形態に係る情報処理装置100の機能ブロック図である。情報処理装置100は、ライブラリ関連付け部201、性能記憶部202、組合せ候補導出部203、処理完了時間受付部204、組合せ選択部205、画像処理実行部206を備えている。
【0016】
ライブラリ部201は、後述する画像処理実行部206で実行する画像処理と、その画像処理を実行できる画像処理手法、具体的には画像処理プログラムを含む画像処理ライブラリとを関連付ける。例えば、ある画像処理αを実行できる画像処理プログラムを含む画像処理ライブラリとしてLibAとLibBがあった場合、その2つの画像処理ライブラリLibA、LibBが同一の画像処理αに関連付けられることになる。
【0017】
性能記憶部202は、各画像処理ライブラリの画像処理プログラムの性能や特性を記憶する。具体的には、ある認識をする画像処理γを実行できる画像処理プログラムを含む画像処理ライブラリとしてLibAとLibBがあった場合を考える。LibAの画像処理γを行う画像処理プログラムγAは、1920x1080の画像に対する実行時間が5msで、認識精度が95%とする。一方、LibBの画像処理γを行う画像処理プログラムγBは、1920x1080の画像に対する実行時間が1msで、認識精度が90%とする。このような場合に性能記憶部202は、画像処理ライブラリごとの画像処理γを行う画像処理プログラムγA、γBの実行時間や認識精度を記憶する。これらの値は予め入力されていてもよいし、情報処理装置100で各画像処理プログラムを実行した実績や傾向から算出してもよい。以降、性能記憶部202の扱う画像処理プログラムの性能は、画像処理の速度と精度として説明をする。
【0018】
組合せ候補導出部203は、画像処理実行部206で実行する一連の画像処理を実行可能な画像処理プログラムの組合せ候補を導出する。ここで組み合わされる画像処理プログラムは、ライブラリ関連付け部201で一連の画像処理に含まれる各画像処理に関連付けられた画像処理ライブラリに含まれるものである。また、それらの画像処理プログラムの組合せ候補ごとの実行時間および精度情報を性能記憶部202に記憶された性能情報に基づき算出する。例えば、画像処理βがあり、それに関連付けられている画像処理ライブラリがLibCとする。先述した画像処理ライブラリLibA、LibBが関連付けられている画像処理αの次に画像処理βを実行する場合は、LibAとLibCの画像処理プログラムの組合せとLibBとLibCの画像処理プログラムの組合せが検索される。そして、それら画像処理プログラムの組合せ候補ごとの実行時間は、組み合わされる画像処理プログラムの実行時間の合計としてそれぞれ算出する。
【0019】
処理完了時間受付部204は、受信装置106などから指定された一連の画像処理に費やすことができる時間である処理を完了させる時間(タクトタイム)に関する情報を取得する。ここで取得する情報は、処理を完了させる時間そのものを示す情報でもよいし、センサーで取得されたセンサー情報やイベント発生を通知するイベント情報であって、その受信間隔から処理時間を算出できるものでもよい。
【0020】
組合せ選択部205は、組合せ候補導出部203で検索された画像処理プログラムの組合せ候補の中から、条件に合った組合せを選択する。
【0021】
画像処理実行部206は、指定された一連の画像処理を、指定された実行順に組合せ選択部205で選択された画像処理プログラムの組合せに従って画像処理プログラムを実行する。
【0022】
図3は、第1実施形態に係る情報処理装置100の動作フローチャートである。なお、以下の説明では、情報処理装置100にはどの画像処理ライブラリがどのような画像処理ができるかを示す情報が保持されているものとする。また、実行する一連の画像処理とその順番は予め決まっているものとする。そして、画像処理の精度と速度の性能は相反関係とし、同じ画像処理を行う画像処理プログラムでも、処理速度が遅いほど認識精度は高いものとして説明する。また、図4で示すように情報処理装置100で処理する一連の画像処理は一度に1つとする。
【0023】
図4は情報処理装置100で一連の画像処理が組み込まれた環境を示した一例である。人402が載せた荷物403をベルトコンベア401で流している。撮像地点404を通る処理対象物である荷物403を撮像装置405で撮像し、その画像を情報処理装置100によって一連の画像処理を行う。例えば、撮像地点404を通過した荷物403にある荷札を撮像装置405で撮像し、撮像画像内にある荷札の宛先を認識できた場合は処理成功ゾーン406に流し、認識できなかった場合は処理失敗ゾーン407に流す。この場合は、荷物間の間隔、すなわちある荷物が通過してから次の荷物が通過するまでの時間間隔をタクトタイム408(Δt)とする。タクトタイムは、ベルトコンベア401にあるセンサーや撮像装置405bが荷物を感知したタイミングなどから算出される。ベルトコンベア401は一定の速度で流れ続け、撮像地点404を荷物403aが通過し、処理成功ゾーン406と処理失敗ゾーン407との分岐に到達するまでに一連の画像処理が完了されていないと、一連の画像処理が失敗となる。もしくは、次の荷物403bが撮像地点404を通過するまでに一連の画像処理が完了されていない場合、一連の画像処理が失敗となるようにしてもよい。
【0024】
S301では、組合せ候補導出部203は、実行する一連の画像処理に関連付けられた画像処理ライブラリが含む各画像処理に対応する画像処理プログラムの性能情報を性能記憶部202から取得する。図5は、画像処理ライブラリと各画像処理ライブラリが実行できる画像処理との関係、および画像処理ライブラリが実行できる画像処理に対応した各画像処理プログラムの実行時間を示す対応表である。図5では、画像処理を実行する順に上から並べ、各画像処理を実行できる画像処理ライブラリに対応する欄に黒丸と実行時間を記載している。ここでの実行時間は同一条件下での画像処理プログラムの性能を表す指標の1つである。例えば画像処理3の場合、画像処理ライブラリLibB、LibCが対応しており、LibBの画像処理プログラムでは6ms、LibCの画像処理プログラムでは3msかかり、先述した前提からLibBの方が処理精度は高いことを意味する。
【0025】
S302では、組合せ候補導出部203は、S301で取得した性能情報に基づき、使用可能な画像処理プログラムの全ての組合せ候補を導出し、各組合せ候補における性能情報を算出する。図5に示す結果に基づく組合せの導出では、画像処理1から画像処理3の各画像処理について印(黒丸)のある画像処理ライブラリのいずれか1つを選択し、それらの全ての組合せ候補を導出する。例えば、画像処理1にはLibAの画像処理プログラム、画像処理2にはLibCの画像処理プログラム、画像処理3にはLibBの画像処理プログラムを使うという組合せが可能である。以降、このような組合せの表記を「A-C-B」とする。
【0026】
図6は、図5の対応表に基づき全ての組合せ候補を導出した結果を記載した図である。図6に示すように、この場合、8通りの画像処理プログラムの組合せ候補が存在する。ここでは、各組合せの処理時間と、括弧内に精度を評価するための精度情報として高精度の画像処理ライブラリに含まれる画像処理プログラムの数とを記載している。具体的には組合せA-C-Bの場合は、処理時間が11msであり、高精度の画像処理ライブラリの画像処理プログラムを2つ使用していることが記載されている。
【0027】
S303では、組合せ選択部205は、処理完了時間受付部204で受信されたタクトタイムを取得する。
【0028】
S304では、組合せ選択部205は、実行時間がS303で受信したタクトタイム、すなわち処理を完了させる時間以下で実施可能な画像処理プログラムの組合せ候補を検索する。具体的にはタクトタイムが9msであったとした場合、図6から9ms以下で実行できる画像処理プログラムの組合せ候補を検索する。この場合、A-A-B、B-A-Cなどの5つの組合せ候補が該当する。そのため、この5つの組合せ候補の中から選べば、タクトタイム、すなわち処理を完了させる時間内で一連の画像処理を完了させることができることになる。
【0029】
S305では、組合せ選択部205は、S304の検索で得られた組合せ候補の中で、高精度の画像処理ライブラリの画像処理プログラムを最も多く有する組合せを選択する。例えば、高精度の画像処理ライブラリに含まれ画像処理プログラムの数が多い組合せを選ぶとした場合、図6に示す検索結果から、より多くの高精度の画像処理ライブラリの画像処理プログラムを有するB-C-Cの組合せが選択されることになる。別の例としてS303で受信したタクトタイムが8msであったとした場合、高精度の画像処理ライブラリに含まれる画像処理プログラムの数が最も多い組合せがA-C-CとB-A-Cの複数ある。この場合、ユーザに複数の選択肢を提示してユーザがそれらから1つを選択してもよいし、情報処理装置100が検索結果として最初に得られた組合せを自動で選択するようにしてもよい。また、例えば処理時間が短いなどの所定の条件によって付けた優先順位に基づき選択するようにしもよい。他にも、ユーザから高精度を指定された画像処理に対して高精度の画像処理ライブラリの画像処理プログラムを使っていることなどを条件としてもよい。また、ここまで全ての画像処理ライブラリは例外無く処理速度が遅いと処理精度が高いという前提の下に説明し、そのため各組合せに関する処理精度の詳細については触れてこなかった。しかし、図7に示すように、実行時間と精度情報とを画像処理プログラムの組合せを選択するための条件として利用するようにしてもよい。図6においては精度情報として括弧内に示す高精度の画像処理ライブラリに含まれる画像処理プログラムの数を使用したが、図7では精度情報として括弧に示す一連の画像処理の所定の基準精度に対する相対精度の平均を使用している。この画像処理の相対精度の平均を用いれば、例えば、実行する画像処理の相対精度の平均値が高い画像処理プログラムの組合せを選択することができる。
【0030】
S306では、画像処理実行部206は、S305で選択された画像処理プログラムの組合せに従って各画像処理に対応する画像処理プログラムを実行することで、一連の画像処理を実行する。
【0031】
S307では、画像処理実行部206は、一連の画像処理を終了するか否かを確認する。一連の画像処理の終了に関する指示を受信した場合は一連の画像処理を終了し、終了に関する指示を受信していない場合は、S303に戻ってS303~S306を繰り返す。
【0032】
このような処理によって、タクトタイムが変動する環境においても、それぞれのタクトタイム内で最も高精度な画像処理ライブラリに含まれる画像処理プログラムの組合せを用いることができ、時間面や処理結果面において処理失敗となることを減らすことができる。
【0033】
以上のように、第1実施形態に係る情報処理装置100によれば、タクトタイム内で実行する必要がある一連の画像処理に、性能の異なる複数の画像処理ライブラリを処理の速度や精度などの複数のパラメータを考慮して選択した組合せを用いることができる。
【0034】
なお、本実施形態では、S305において高精度の画像処理ライブラリの画像処理プログラムを最も多く有する最も高精度な組合せを選択するとしたが、組合せ候補の中で相対的に高精度な組合せ、例えば2番目に高精度な組合せを選ぶようにしてもよい。
【0035】
(第2実施形態)
第1実施形態では、情報処理装置100で処理する一連の画像処理が一度に1つとした例を説明したが、第2実施形態では、情報処理装置100で一連の画像処理をタクトタイム内に複数の異なる画像データに対してそれぞれ実行する例を説明する。なお、情報処理装置100の構成は第1実施形態と同様であるため説明を省略する。ここでの複数の異なる画像データに対してそれぞれ実行する一連の画像処理は、全て同じ一連の画像処理であって、図5、6に示す画像処理1~3からなるものとする。また、情報処理装置100は、複数の異なる画像データそれぞれに対する一連の画像処理をシングルスレッドで逐次実行し、複数の画像処理をマルチスレッドで並列に実行できない環境であることとして説明する。
【0036】
図8は、情報処理装置100で一連の画像処理をタクトタイム内に複数逐次実行する環境を示した一例である。ベルトコンベア401、人402、荷物403、撮像地点404、撮像装置405、タクトタイム408については図4と同じであるため説明を省略する。図4と異なるのは、情報処理装置100が処理すべきベルトコンベアが401aから401eまでの5本であり、撮像地点404を通る複数の処理対象物である荷物403をそれぞれの撮像装置405で撮像し、処理対象となる5枚の画像が生成される。これら5枚の画像を処理する情報処理装置100は、1つで、かつ、シングルスレッドで処理するため、5枚の画像を逐次処理することになる。また、図8では、撮像地点404を通過した荷物403aが撮像され、画像処理となる画像が得られるが、既に荷物403b~403eを撮像して得られた画像が処理受付済みで、画像処理を実行中又は実行待ちの状態である。
【0037】
図9は、第2実施形態に係る情報処理装置100の動作フローチャートである。なお、ユーザが設定した画像処理の順番と、画像処理と画像処理ライブラリの関係と一連の画像処理を1つ処理したときの実行時間については第1実施形態と同様として説明する。
【0038】
S901からS903は第1実施形態のS301およびS303と同じであるため説明を省略する。
【0039】
S904では、組合せ選択部205は、受信したタクトタイム内に逐次処理しなければならない処理数をカウントする。図8の場合、ベルトコンベア401aの荷物403aが撮像地点404を通過したときに、荷物403aの撮像画像に対して画像処理を開始できるようにする。例えば、荷物が撮像地点404を通過すると、その荷物の撮像画像に対する一連の画像処理の実行を、実行順を示す待機リストに登録する。荷物が撮像地点404を通過したことは、荷物の撮像画像が得られたこと、すなわち荷物の撮像画像を受信したことをもって判定してもよい。また、荷物が撮像地点404を通過したことを示すセンサーからの信号を受信したことを持って荷物が撮像地点404を通過したことを判定しても良い。
【0040】
図8に示す状況では既に、ベルトコンベア401b~401eの荷物403b~403eの撮像画像に対して画像処理が開始できるように、それらの撮像画像に対する一連の画像処理の実行が待機リストに登録されている。仮にどの荷物の撮像画像も一連の画像処理が完了していない場合、タクトタイム内に逐次実行しなければならない一連の画像処理の実行数は5になる。また、既に2つの荷物の画像に対する画像処理が完了している場合、タクトタイム内に逐次実行しなければならない一連の画像処理の実行数は3になる。
【0041】
S905では、組合せ選択部205は、S904で数えた一連の画像処理の実行数に応じて、S903で受信したタクトタイムを変更する。受信したタクトタイムは、ベルトコンベア1本分の処理に費やすことができる時間、すなわち1つの画像に対して一連の画像処理に費やすことができる時間である。そのため、タクトタイム内に一連の画像処理を複数逐次実行する場合は、ベルトコンベア1本分の処理に費やすことができる時間は短くなる。具体的には、受信したタクトタイムが50msで、タクトタイム内に逐次実行しなければならない一連の画像処理の実行数が5である場合は、例えばタクトタイムを1/5にしてベルトコンベア1本分のタクトタイムを10msとする。
【0042】
なお、このベルトコンベア1本分の処理に費やすことができる時間の算出アルゴリズムは、画像1つ分のタクトタイムを単にタクトタイム内での実行数で割ることで算出するようにしてもよい。またこの算出アルゴリズムは、過去の実績からタクトタイム内に実行する一連の画像処理の実行数に応じてパラメータを調整するなどして個別に算出するようにしてもよい。また、この例では受信したタクトタイムをタクトタイム内に実行する一連の画像処理の実行数によって変えているが、各画像処理に対応する画像処理プログラムの実行時間をその実行数によって変えてもよい。例えば、図5に示す画像処理プログラムごとの実行時間は、タクトタイム内での実行数が1の場合であり、複数の画像処理プログラムを逐次実行する場合は実行数倍の時間がかかる。具体的には、5つの画像処理プログラムを逐次実行する場合、単純に5倍の実行時間がかかる場合は1つの画像処理プログラムの実行時間に対して5を掛けた値を実行時間として扱えばよい。例えば、図5に示す各画像処理プログラムの実行時間は、図10に示すように全て5倍したものとればよい。
【0043】
S906では、組合せ選択部205は、S304と処理は同じであるが、S905で算出したタクトタイム内で実行できる画像処理プログラムの組合せを、図6に示すような全ての組合せ候補から検索する。
【0044】
S907では、組合せ選択部205は、S305と同じであるが、S906の検索で得られた組合せ候補の中で、高精度の画像処理ライブラリの画像処理プログラムを最も多く有する組合せを選択する。
【0045】
S908では、画像処理実行部206は、荷物が撮像地点404に到達した順に選択した画像処理プログラムの組合せを待機リストに追加する。
【0046】
S909では、画像処理実行部206は、待機リストに従って、画像処理プログラムの組合せを逐次実行する。
【0047】
S910はS307と同じであるために説明を省略する。
【0048】
このような処理によって、タクトタイムが変動し、かつ一連の画像処理を複数逐次実行する環境においても、そのタクトタイムと一連の画像処理の実行数とに適した高精度で処理できる画像処理プログラムの組合せを使用することができる。これにより処理時間面および処理精度の両立を図り、処理失敗となることを減らすことができる。
【0049】
以上説明したとおり、第2実施形態に係る情報処理装置100によれば、一連の画像処理を複数逐次実行する場合においても、タクトタイム内で高精度に画像処理を実行することができる。
【0050】
(第3実施形態)
第2実施形態では、情報処理装置100で一連の画像処理をタクトタイム内に複数逐次実行する際、処理を受け付けた順に実行していたが、本実施形態では、状況によって実行順を入れ替えることを可能にする。なお、情報処理装置100の構成は第1実施形態と同様であるため説明を省略する。
【0051】
図11は、情報処理装置100で一連の画像処理を複数逐次実行する環境を示した例である。ベルトコンベア401、人402、荷物403、撮像地点404、撮像装置405、タクトタイム408については図4と同じであるため説明を省略する。図11も、図8と同様に撮像地点404を通過した荷物403aの撮像画像に関する画像処理をするが、既に荷物403b~403eの撮像画像が処理受付済みで、その1つに対して画像処理を実行中である状態である。一連の画像処理の実行開始を示す信号を受信して処理を受け付けた順が荷物403e、403d、403c、403b、403aで、画像処理が実行されている画像が荷物403dの撮像画像である。つまり荷物403eの撮像画像に対する処理が終わって、荷物403c、403b、403aの順番でそれらの撮像画像に対する処理を待っている状況である。
【0052】
ここで荷物403dの撮像画像に対する処理が終われば、処理受付順から荷物403cの撮像画像に対する処理を進めるが、タクトタイムの終了時刻が早いものから優先的に処理を行う。処理完了時間受付部204でタクトタイムを受信した際に、実行待ちの画像処理プログラムの組合せが登録された待機リストにおいて、図12に示すような処理受付順と処理を完了しなければならない時刻、すなわちタクトタイムが終了する時刻を管理する。そして、現在実行中の処理が完了した後で、タクトタイムが終了する時刻が一番早い荷物の撮像画像に対する処理を優先的に実行する。
【0053】
例えば、荷物403aの撮像画像に対する処理のタクトタイムが、荷物403c、403bの撮像画像に対する処理のタクトタイムよりも短い場合を考える。ここでは荷物403aの撮像画像に対する処理の処理受付順では最後であるが、タクトタイムの終了時刻が最も早くなる。そのため、タクトタイムの終了時刻に基づき、荷物403aの撮像画像に対する処理を荷物403dの撮像画像に対する処理の次に実行するようにする。
【0054】
このように、受信したタクトタイムに応じて優先的に実行すべき処理を判断して処理順を入れ替えることで、処理対象ごとに別々のタクトタイムが設定された場合に、各タクトタイムを効率的に利用してより高精度の画像処理を実行することができる。
【0055】
(第4実施形態)
第3実施形態では一連の画像処理単位で処理順を変更する例を示したが、第4実施形態では画像処理の単位で処理順を変更する例を示す。なお、情報処理装置100の構成は第1実施形態と同様であるため説明を省略する。
【0056】
図11に示す状況で、荷物403dの撮像画像を処理している最中に荷物403aの撮像画像に対する処理が受け付けられ、荷物403aのタクトタイムの終了時刻が他のタクトタイムの終了時刻より早いとする。そして、荷物403dの撮像画像に対する処理は図6で示す画像処理1から画像処理3までを実行しなければならないものとする。
【0057】
ここで、荷物403aを受け付けた時点で荷物403dの撮像画像に対する処理を区切れる部分で一時中断をする。例えば、荷物403dの撮像画像に対する処理として画像処理2を実行中であった場合、画像処理2が完了した時点で荷物403dの撮像画像に対する処理を中断する。そして、荷物403aの撮像画像に対して一連の画像処理を完了させてから、中断した荷物403dの撮像画像に対して画像処理3から再開する。
【0058】
このように、実行中の処理よりも処理受付順が後の処理の方がタクトタイムの終了時刻が早い場合でも優先すべき処理を早く実行させることで、タクトタイムを効率的に利用してより高精度の画像処理を実行することができる。
【0059】
(その他の実施形態)
第2実施形態では、情報処理装置100でタクトタイム内に同じ一連の画像処理を複数逐次実行する例を説明したが、複数実行する一連の画像処理が異なる場合の例を説明する。なお、情報処理装置100の構成は第1実施形態と同様であるため説明を省略する。
【0060】
図8の情報処理装置100の動作フローチャートを流用して説明すると、一連の画像処理ごとにS901とS902を実行する。例えば5種類の一連の画像処理を実行する必要がある場合は、図5に示すような画像処理の実行順と使用する画像処理ライブラリごとの画像処理プログラムの性能情報との関係を5つ分導出して、それぞれに対して組合せを検索する。
【0061】
S903にてタクトタイムを受信して、S904にて受信したタクトタイム内に逐次実行しなければならない一連の画像処理の実行数をカウントする。S905にてS901で算出した各一連の画像処理の性能情報に対し、実行数に応じて実行時間を算出する。
【0062】
S906以降は実施形態2と同じで、タクトタイム以内に高精度で実行できる画像処理プログラムの組合せをそれぞれ選択することで、処理速度と精度などの処理性能とのバランスを考慮した画像処理を実行することができる。
【0063】
(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【符号の説明】
【0064】
100 情報処理装置
201 ライブラリ関連付け部
202 性能記憶部
203 組合せ候補導出部
205 組合せ選択部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12