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

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

▶ オムロン株式会社の特許一覧

特許7571627画像処理装置、編集方法およびプログラム
<>
  • 特許-画像処理装置、編集方法およびプログラム 図1
  • 特許-画像処理装置、編集方法およびプログラム 図2
  • 特許-画像処理装置、編集方法およびプログラム 図3
  • 特許-画像処理装置、編集方法およびプログラム 図4
  • 特許-画像処理装置、編集方法およびプログラム 図5
  • 特許-画像処理装置、編集方法およびプログラム 図6
  • 特許-画像処理装置、編集方法およびプログラム 図7
  • 特許-画像処理装置、編集方法およびプログラム 図8
  • 特許-画像処理装置、編集方法およびプログラム 図9
  • 特許-画像処理装置、編集方法およびプログラム 図10
  • 特許-画像処理装置、編集方法およびプログラム 図11
  • 特許-画像処理装置、編集方法およびプログラム 図12
  • 特許-画像処理装置、編集方法およびプログラム 図13
  • 特許-画像処理装置、編集方法およびプログラム 図14
  • 特許-画像処理装置、編集方法およびプログラム 図15
  • 特許-画像処理装置、編集方法およびプログラム 図16
  • 特許-画像処理装置、編集方法およびプログラム 図17
  • 特許-画像処理装置、編集方法およびプログラム 図18
  • 特許-画像処理装置、編集方法およびプログラム 図19
  • 特許-画像処理装置、編集方法およびプログラム 図20
  • 特許-画像処理装置、編集方法およびプログラム 図21
  • 特許-画像処理装置、編集方法およびプログラム 図22
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-15
(45)【発行日】2024-10-23
(54)【発明の名称】画像処理装置、編集方法およびプログラム
(51)【国際特許分類】
   G06F 3/0481 20220101AFI20241016BHJP
【FI】
G06F3/0481
【請求項の数】 6
(21)【出願番号】P 2021036579
(22)【出願日】2021-03-08
(65)【公開番号】P2022136792
(43)【公開日】2022-09-21
【審査請求日】2024-01-16
(73)【特許権者】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】中岡 象平
(72)【発明者】
【氏名】井尻 隆史
【審査官】渡辺 慶人
(56)【参考文献】
【文献】特開2005-301492(JP,A)
【文献】特開2015-085190(JP,A)
【文献】特開2018-136913(JP,A)
【文献】特開2013-140572(JP,A)
【文献】国際公開第2014/061093(WO,A1)
【文献】中国特許出願公開第1680912(CN,A)
【文献】欧州特許出願公開第03050507(EP,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/01
3/048 - 3/04895
8/00 - 8/38
8/60 - 8/77
9/44 - 9/445
9/451
A61B 6/00 - 6/58
G06T 1/00 - 1/40
3/00 - 5/94
11/60 - 13/80
17/05
19/00 - 19/20
(57)【特許請求の範囲】
【請求項1】
画像処理装置であって、
実行指示に応じて、画像処理フローを実行する実行部と、
編集操作に応じて、前記画像処理フローを定義するデータを編集する編集部と、
前記画像処理フローの実行および編集を支援するUI画面を提示する提示部と、を備え、
前記画像処理フローは、第1テンプレートデータと第1追加データとを組み合わせることにより作成される第1画像処理フローを含み、
前記第1テンプレートデータは、1以上の処理項目を含む第2画像処理フローを示し、
前記第1追加データは、1以上の処理項目を含む第3画像処理フローを示し、
前記第1画像処理フローは、前記第2画像処理フローの第1挿入位置に前記第3画像処理フローが挿入された画像処理フローであり、
前記提示部は、
前記第1画像処理フローの実行および編集を支援する第1UI画面を提示している状態において、前記第2画像処理フローの実行および編集を支援する第2UI画面の第1起動指示を受け付け可能であり、
前記第1起動指示の受け付けに応じて、前記第2UI画面を提示し、
前記実行部は、
前記第1UI画面がアクティブである状態において、前記実行指示に応じて、前記第1画像処理フローを実行し、
前記第2UI画面がアクティブである状態において、前記実行指示に応じて、前記第2画像処理フローを実行し、
前記編集部は、
前記第1UI画面がアクティブである状態において、前記編集操作に応じて、前記第1追加データを編集し、
前記第2UI画面がアクティブである状態において、前記編集操作に応じて、前記第1テンプレートデータを編集する、画像処理装置。
【請求項2】
前記提示部は、
前記第1起動指示の受け付けに応じて、認証情報を入力するための入力画面を提示し、
前記入力画面への入力情報に基づく認証に成功したことに応じて、前記第2UI画面を提示する、請求項1に記載の画像処理装置。
【請求項3】
前記第2画像処理フローは、第2テンプレートデータと第2追加データとを組み合わせることにより作成され、
前記第2テンプレートデータは、1以上の処理項目を含む第4画像処理フローを示し、
前記第2追加データは、1以上の処理項目を含む第5画像処理フローを示し、
前記第2画像処理フローは、前記第4画像処理フローにおける第2挿入位置に前記第5画像処理フローが挿入された画像処理フローであり、
前記提示部は、
前記第1UI画面を提示している状態において、前記第4画像処理フローの実行および編集を支援する第3UI画面の第2起動指示を受け付け可能であり、
前記第2起動指示の受け付けに応じて、前記第3UI画面を提示し、
前記実行部は、前記第3UI画面がアクティブである状態において、前記実行指示に応じて、前記第4画像処理フローを実行し、
前記編集部は、
前記第2UI画面がアクティブである状態において、前記編集操作に応じて、前記第2追加データを編集し、
前記第3UI画面がアクティブである状態において、前記編集操作に応じて、前記第2テンプレートデータを編集する、請求項1または2に記載の画像処理装置。
【請求項4】
前記画像処理フローは、前記第1テンプレートデータと第3追加データとを組み合わせることにより作成される第6画像処理フローを含み、
前記第3追加データは、1以上の処理項目を含む第7画像処理フローを示し、
前記第6画像処理フローは、前記第2画像処理フローにおける前記第1挿入位置に前記第7画像処理フローが挿入された画像処理フローであり、
前記提示部は、
前記第1UI画面を提示している状態において、前記第6画像処理フローの実行および編集を支援する第4UI画面の第3起動指示を受け付け可能であり、
前記第3起動指示の受け付けに応じて、前記第4UI画面を提示し、
前記実行部は、前記第4UI画面がアクティブである状態において、前記実行指示に応じて、前記第6画像処理フローを実行し、
前記編集部は、前記第4UI画面がアクティブである状態において、前記編集操作に応じて、前記第3追加データを編集する、請求項1から3のいずれか1項に記載の画像処理装置。
【請求項5】
画像処理装置における画像処理フローの編集方法であって、
前記画像処理フローの実行および編集を支援するUI画面を提示するステップと、
実行指示に応じて、前記画像処理フローを実行するステップと、
編集操作に応じて、前記画像処理フローを定義するデータを編集するステップと、を備え、
前記画像処理フローは、テンプレートデータと追加データとを組み合わせることにより作成される第1画像処理フローを含み、
前記テンプレートデータは、1以上の処理項目を含む第2画像処理フローを示し、
前記追加データは、1以上の処理項目を含む第3画像処理フローを示し、
前記第1画像処理フローは、前記第2画像処理フローにおける挿入位置に前記第3画像処理フローが挿入された画像処理フローであり、
前記提示するステップは、
前記第1画像処理フローの実行および編集を支援する第1UI画面を提示している状態において、前記第2画像処理フローの実行および編集を支援する第2UI画面の第1起動指示を受け付けるステップと、
前記第1起動指示の受け付けに応じて、前記第2UI画面を提示するステップと、を含み、
前記実行するステップは、
前記第1UI画面がアクティブである状態において、前記実行指示に応じて、前記第1画像処理フローを実行するステップと、
前記第2UI画面がアクティブである状態において、前記実行指示に応じて、前記第2画像処理フローを実行するステップと、を含み、
前記編集するステップは、
前記第1UI画面がアクティブである状態において、前記編集操作に応じて、前記追加データを編集するステップと、
前記第2UI画面がアクティブである状態において、前記編集操作に応じて、前記テンプレートデータを編集するステップと、を含む、編集方法。
【請求項6】
請求項5に記載の編集方法をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、画像処理装置、編集方法およびプログラムに関する。
【背景技術】
【0002】
国際公開第2011/108193号(特許文献1)は、基本プログラム管理テーブルと個別要件管理テーブルとを用いてアプリケーションプログラムを作成するプログラム作成支援装置を開示している。基本プログラム管理テーブルは、ユーザに共通な基本プログラムを構成する複数のプログラム列を管理する。個別要件管理テーブルは、ユーザ毎に定義できる個別要件を実現するプログラム列を管理する。
【先行技術文献】
【特許文献】
【0003】
【文献】国際公開第2011/108193号
【発明の概要】
【発明が解決しようとする課題】
【0004】
FA(Factory Automation)分野において、ワークなどの検査対象物を自動で検査するための画像処理装置が普及している。ワークを検査するための画像処理フローは、様々な処理項目の組み合わせによって実現される。そのため、画像処理装置に対して特許文献1に記載の技術が適用され得る。すなわち、様々な画像処理フローに適用され得る共通の基本プログラムを定義付けるテンプレートデータと、個別要件を定義付ける追加データとを組み合わせることにより、画像処理フローを作成することが考えられる。
【0005】
画像処理フローは、通常、ワークを撮像することにより得られた画像に対する画像処理結果を確認しながら調整される。画像処理結果に応じて、個別要件を実現する追加プログラムだけでなく、共通のテンプレートデータを調整する必要が生じ得る。しかしながら、特許文献1に記載の技術において、基本プログラムは、ユーザに共通であるため、調整されることが想定されていない。そのため、テンプレートデータの調整に手間がかかる。
【0006】
本開示は、上記の問題に鑑みてなされたものであり、その目的は、共通するテンプレートデータと個別要件を定義付ける追加データとを用いて作成される画像処理フローを容易に調整可能な画像処理装置、編集方法およびプログラムを提供することである。
【課題を解決するための手段】
【0007】
本開示の一例によれば、画像処理装置は、実行指示に応じて、画像処理フローを実行する実行部と、編集操作に応じて、画像処理フローを定義するデータを編集する編集部と、画像処理フローの実行および編集を支援するUI画面を提示する提示部と、を備える。画像処理フローは、第1テンプレートデータと第1追加データとを組み合わせることにより作成される第1画像処理フローを含む。第1テンプレートデータは、1以上の処理項目を含む第2画像処理フローを示す。第1追加データは、1以上の処理項目を含む第3画像処理フローを示す。第1画像処理フローは、第2画像処理フローの第1挿入位置に第3画像処理フローが挿入された画像処理フローである。提示部は、第1画像処理フローの実行および編集を支援する第1UI画面を提示している状態において、第2画像処理フローの実行および編集を支援する第2UI画面の第1起動指示を受け付け可能であり、第1起動指示の受け付けに応じて、第2UI画面を提示する。実行部は、第1UI画面がアクティブである状態において、実行指示に応じて、第1画像処理フローを実行する。実行部は、第2UI画面がアクティブである状態において、実行指示に応じて、第2画像処理フローを実行する。編集部は、第1UI画面がアクティブである状態において、編集操作に応じて、第1追加データを編集する。編集部は、第2UI画面がアクティブである状態において、編集操作に応じて、第1テンプレートデータを編集する。
【0008】
この開示によれば、ユーザは、第1UI画面および第2UI画面のアクティブ状態を切り替えることにより、第1画像処理フローおよび第2画像処理フローの画像処理結果を確認しながら、第1テンプレートデータおよび第1追加データに対する編集操作を行なう。その結果、ユーザは、共通する第1テンプレートデータと個別要件を定義付ける第1追加データとを用いて作成される第1画像処理フローを容易に調整できる。
【0009】
上述の開示において、提示部は、第1起動指示の受け付けに応じて、認証情報を入力するための入力画面を提示し、入力画面への入力情報に基づく認証に成功したことに応じて、第2UI画面を提示する。
【0010】
この開示によれば、権限のない者によって第1テンプレートデータが編集されることを防止できる。
【0011】
上述の開示において、第2画像処理フローは、第2テンプレートデータと第2追加データとを組み合わせることにより作成される。第2テンプレートデータは、1以上の処理項目を含む第4画像処理フローを示す。第2追加データは、1以上の処理項目を含む第5画像処理フローを示す。第2画像処理フローは、第4画像処理フローにおける第2挿入位置に第5画像処理フローが挿入された画像処理フローである。提示部は、第1UI画面を提示している状態において、第4画像処理フローの実行および編集を支援する第3UI画面の第2起動指示を受け付け可能であり、第2起動指示の受け付けに応じて、第3UI画面を提示する。実行部は、第3UI画面がアクティブである状態において、実行指示に応じて、第4画像処理フローを実行する。編集部は、第2UI画面がアクティブである状態において、編集操作に応じて、第2追加データを編集する。編集部は、第3UI画面がアクティブである状態において、編集操作に応じて、第2テンプレートデータを編集する。
【0012】
この開示によれば、ユーザは、第3UI画面を用いて、第2テンプレートデータを編集でき、第2UI画面を用いて、第2テンプレートデータと組み合わされる第2追加データを編集できる。
【0013】
上述の開示において、画像処理フローは、第1テンプレートデータと第3追加データとを組み合わせることにより作成される第6画像処理フローを含む。第3追加データは、1以上の処理項目を含む第7画像処理フローを示す。第6画像処理フローは、第2画像処理フローにおける第1挿入位置に第7画像処理フローが挿入された画像処理フローである。提示部は、第1UI画面を提示している状態において、第6画像処理フローの実行および編集を支援する第4UI画面の第3起動指示を受け付け可能であり、第3起動指示の受け付けに応じて、第4UI画面を提示する。実行部は、第4UI画面がアクティブである状態において、実行指示に応じて、第6画像処理フローを実行する。編集部は、第4UI画面がアクティブである状態において、編集操作に応じて、第3追加データを編集する。
【0014】
この開示によれば、ユーザは、第1テンプレートデータを用いる別の第6画像処理フローの画像処理結果も確認しながら、第1テンプレートデータに対する編集操作を行なうことができる。
【0015】
本開示の一例によれば、画像処理装置における画像処理フローの編集方法は、画像処理フローの実行および編集を支援するUI画面を提示するステップと、実行指示に応じて、画像処理フローを実行するステップと、編集操作に応じて、画像処理フローを定義するデータを編集するステップと、を備える。画像処理フローは、テンプレートデータと追加データとを組み合わせることにより作成される第1画像処理フローを含む。テンプレートデータは、1以上の処理項目を含む第2画像処理フローを示す。追加データは、1以上の処理項目を含む第3画像処理フローを示す。第1画像処理フローは、第2画像処理フローにおける挿入位置に第3画像処理フローが挿入された画像処理フローである。提示するステップは、第1画像処理フローの実行および編集を支援する第1UI画面を提示している状態において、第2画像処理フローの実行および編集を支援する第2UI画面の第1起動指示を受け付けるステップと、第1起動指示の受け付けに応じて、第2UI画面を提示するステップと、を含む。実行するステップは、第1UI画面がアクティブである状態において、実行指示に応じて、第1画像処理フローを実行するステップと、第2UI画面がアクティブである状態において、実行指示に応じて、第2画像処理フローを実行するステップと、を含む。編集するステップは、第1UI画面がアクティブである状態において、編集操作に応じて、追加データを編集するステップと、第2UI画面がアクティブである状態において、編集操作に応じて、テンプレートデータを編集するステップと、を含む。
【0016】
本開示の一例によれば、プログラムは、上記の編集方法をコンピュータに実行させる。これらの開示によっても、共通するテンプレートデータと個別要件を定義付ける追加データとを用いて作成される画像処理フローを容易に調整できる。
【発明の効果】
【0017】
本開示によれば、共通するテンプレートデータと個別要件を定義付ける追加データとを用いて作成される画像処理フローを容易に調整できる。
【図面の簡単な説明】
【0018】
図1】実施の形態に係る画像処理装置を適用した場面の一例を示す図である。
図2】実施の形態に係る画像処理装置を含む画像処理システムの全体構成を示す概略図である。
図3】画像処理装置のハードウェア構成を示す模式図である。
図4】テンプレートデータと追加データとを組み合わせて画像処理フローを作成する方法の一例を示す図である。
図5】画像処理装置が提示するUI画面の一例を示す図である。
図6】実施の形態に係るテンプレートデータの作成方法の一例を示す図である。
図7】パラメータの値を設定するためのウィンドウの一例を示す図である。
図8】実施の形態に係るテンプレートデータの一例を示す図である。
図9】実施の形態に係る追加データの作成方法の一例を示す図である。
図10】実施の形態に係る追加データの一例を示す図である。
図11】テンプレートデータと追加データとに基づいて実行される画像処理フローを定義付けるデータの一例を示す図である。
図12】品種A,Bの画像処理フローの一例を示す図である。
図13】共通フローおよび追加フローを含む画像処理フローの実行および編集を支援するUI画面の一例を示す図である。
図14】パラメータを編集するためのウィンドウの一例を示す図である。
図15】ボタン27がクリックされたときの画面遷移の一例を示す図である。
図16】認証情報を入力するための入力画面の一例を示す図である。
図17】共通フローの実行および編集を支援するUI画面の一例を示す図である。
図18】共通フローの実行による画像処理結果を示すUI画面の一例を示す図である。
図19】共通フローの実行による画像処理結果を示すUI画面の別の例を示す図である。
図20】処理項目「位置ずれ修正」のパラメータを編集するためのウィンドウの一例を示す図である。
図21】変形例2に係る画像処理装置において提示されるUI画面の一例を示す図である。
図22】変形例3に係る画像処理装置において提示されるUI画面の一例を示す図である。
【発明を実施するための形態】
【0019】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。以下で説明される各変形例は、適宜選択的に組み合わされてもよい。
【0020】
§1 適用例
本実施の形態にかかる画像処理装置の概略について説明する。図1は、実施の形態に係る画像処理装置を適用した場面の一例を示す図である。図1に示されるように、画像処理装置100は、ディスプレイ200およびキーボード300と接続されている。
【0021】
図1に示されるように、画像処理装置100は、実行部11と、編集部12と、提示部13と、を備える。実行部11は、実行指示に応じて、画像処理フローを実行する。編集部12は、編集操作に応じて、画像処理フローを定義するデータを編集する。提示部13は、画像処理フローの実行および編集を支援するユーザインターフェイス画面(以下、「UI画面」と称する。)をディスプレイ200に提示する。
【0022】
編集部12は、複数の画像処理フローに適用され得るテンプレートデータと、個別要件を定義する追加データとを組み合わせることにより、画像処理フローを作成する機能を有する。
【0023】
テンプレートデータは、1以上の処理項目を含む画像処理フロー(以下、「共通フロー」と称する。)を示す。追加データは、1以上の処理項目を含む画像処理フロー(以下、「追加フロー」を称する。)を示す。編集部12は、テンプレートデータと追加データとを組み合わせることにより、共通フローにおける挿入位置に追加フローが挿入された画像処理フローを作成する。共通フローにおける挿入位置は、テンプレートデータによって予め定められる。
【0024】
ユーザは、画像処理結果を確認しながら、テンプレートデータと追加データとを組み合わせることにより作成された画像処理フローを調整する。画像処理結果によっては、テンプレートデータおよび追加データの調整が必要なケースがある。そのため、本実施の形態に係る画像処理装置100は、画像処理結果を確認しながら、テンプレートデータおよび追加データを編集しやすいUI画面を提示する。
【0025】
図1に示されるように、提示部13は、テンプレートデータと追加データとを組み合わせることにより作成された画像処理フロー30の実行および編集を支援するUI画面20をディスプレイ200に提示する。
【0026】
画像処理フロー30は、テンプレートデータによって示される共通フロー31と追加データによって示される追加フロー33とを組み合わせることにより作成される。図1に示す例では、共通フロー31は、処理項目「A」~「C」がこの順に実行されるフローである。追加フロー33は、処理項目「D」,「E」がこの順に実行されるフローである。
【0027】
追加フロー33は、共通フロー31において、テンプレートデータによって示される挿入位置32に挿入される。図1に示す例では、追加フロー33は、共通フロー31における処理項目「B」と処理項目「C」との間の挿入位置32に挿入される。
【0028】
UI画面20は、処理対象となる画像データ(以下、単に「画像」と称する。)に対して画像処理フロー30に従った画像処理を実行させるボタン21を含む。すなわち、ボタン21は、画像処理フロー30の実行を指示するためのボタンである。実行部11は、UI画面20がアクティブである状態において、ボタン21がクリックされたことに応じて、処理対象となる画像に対して画像処理フロー30に従った画像処理を実行し、画像処理結果をディスプレイ200に表示する。なお、処理対象となる画像は、図示しないカメラの撮像によって取得されてもよいし、画像処理装置100の記憶部から読み出されてもよい。
【0029】
編集部12は、UI画面20がアクティブである状態において、画像処理フロー30に対する編集操作を受け付ける。ただし、テンプレートデータによって定義される共通フロー31は、他の画像処理フローにも適用され得る。そのため、編集部12は、UI画面20において、テンプレートデータによって示される、共通フロー31に含まれる1以上の処理項目、当該1以上の処理項目の実行順序および共通フロー31における挿入位置32の編集操作を受け付けない。すなわち、編集部12は、テンプレートデータに対して組み合わされる追加データへの編集操作を受け付ける。たとえば、編集部12は、追加フロー33を構成する処理項目の変更、削除および追加などの編集操作を受け付ける。
【0030】
UI画面20は、編集内容を画像処理フロー30に反映するためのボタン22を含む。編集部12は、UI画面20がアクティブである状態において、ボタン22がクリックされたことに応じて、編集された追加データを保存する。
【0031】
このように、ユーザは、UI画面20において、ボタン21をクリックすることにより画像処理結果を確認し、画像処理結果に応じて、追加データを編集できる。しかしながら、ユーザは、UI画面20において、テンプレートデータを編集できない。上述したように、画像処理結果によっては、テンプレートデータの調整が必要なケースがある。そのため、提示部13は、UI画面20をディスプレイ200に提示している状態において、共通フロー31の実行および編集を支援するUI画面40の起動指示を受け付け可能である。提示部13は、当該起動指示の受け付けに応じて、UI画面40をディスプレイ200に提示する。
【0032】
UI画面40は、処理対象となる画像に対して共通フロー31に従った画像処理を実行させるボタン41を含む。すなわち、ボタン41は、共通フロー31の実行を指示するためのボタンである。実行部11は、UI画面40がアクティブである状態において、ボタン41がクリックされたことに応じて、処理対象となる画像に対して共通フロー31に従った画像処理を実行し、画像処理結果をディスプレイ200に表示する。なお、処理対象となる画像は、図示しないカメラの撮像によって取得されてもよいし、画像処理装置100の記憶部から読み出されてもよい。
【0033】
編集部12は、UI画面40がアクティブである状態において、共通フロー31に対する編集操作を受け付ける。すなわち、編集部12は、テンプレートデータへの編集操作を受け付ける。たとえば、編集部12は、共通フロー31を構成する処理項目の変更、削除および追加などの編集操作を受け付ける。
【0034】
UI画面40は、編集内容を共通フロー31に反映するためのボタン42を含む。編集部12は、UI画面40がアクティブである状態において、ボタン42がクリックされたことに応じて、編集されたテンプレートデータを保存する。
【0035】
このように、実行部11は、UI画面20がアクティブである状態において、画像処理の実行指示に応じて、画像処理フロー30を実行する。実行部11は、UI画面40がアクティブである状態において、画像処理の実行指示に応じて、共通フロー31を実行する。さらに、編集部12は、UI画面20がアクティブである状態において、編集操作に応じて、追加データを編集する。編集部12は、UI画面40がアクティブである状態において、編集操作に応じて、テンプレートデータを編集する。これにより、ユーザは、UI画面20,40を切り替え、かつ、ボタン21,41をクリックすることにより、画像処理フロー30および共通フロー31の画像処理結果を確認しながら、テンプレートデータおよび追加データを編集できる。その結果、ユーザは、共通するテンプレートデータと個別要件を定義付ける追加データとを用いて作成される画像処理フロー30を容易に調整できる。
【0036】
§2 具体例
<A.画像処理システムの全体構成>
図2は、本実施の形態に係る画像処理装置を含む画像処理システムの全体構成を示す概略図である。図1に示されるように、画像処理システム1は、主要なコンポーネントとして、視覚センサとも称される画像処理装置100と、画像処理装置100に接続された撮像部8と、画像処理装置100と通信可能なPLC(Programmable Logic Controller)5とを含む。一例として、ディスプレイ200と一体的に構成された画像処理装置100を示す。
【0037】
画像処理装置100は、生産ラインに組み込まれ、検査対象物(以下、「ワークW」と称する。)上の欠陥や汚れの有無の検査、ワークWの大きさや配置向きなどの計測、ワークW表面上の文字や図形などの認識といった画像処理を実行する。すなわち、画像処理装置100は、ワークWを撮像することで生成された画像に対する画像処理を実行する。ワークWは、ベルトコンベヤなどの搬送機構6によって搬送され、撮像部8によって順次撮像される。PLC5は、画像処理装置100と連係して、搬送機構6などの制御を実行する。
【0038】
たとえば、PLC5、他のパーソナルコンピュータまたはサーバ装置は、画像処理フローの実行開始を示すトリガ信号を画像処理装置100に送信する。画像処理装置100は、トリガ信号の入力に応じて、画像処理フローを実行し、ワークWの検査、計測、認識などの結果を示す信号をPLC5に出力する。
【0039】
撮像部8は、一例として、レンズなどの光学系に加えて、CCD(Coupled Charged Device)やCMOS(Complementary Metal Oxide Semiconductor)センサといった、複数の画素に区画された撮像素子を含んで構成される。撮像部8による撮像によって取得された画像データ(以下、「カメラ画像」と称する。)は、画像処理装置100へ伝送される。そして、画像処理装置100は、撮像部8により撮像されたカメラ画像に対して画像処理を行なう。撮像部8によって撮像されるワークWに対して光を照射する照明装置をさらに設けてもよい。
【0040】
複数品種のワークWを検査する場合、画像処理装置100は、品種毎に画像処理フローを変更する。そのため、ユーザは、品種毎に画像処理フローを設定する。ただし、類似する複数品種にそれぞれ対応する複数の画像処理フローは、通常、共通するフロー(共通フロー)を含む。そのため、画像処理装置100は、共通フローと、品種毎に設定された個別のフロー(追加フロー)とを組み合わせることにより品種毎の画像処理フローを作成する機能を有する。これにより、共通フローが作成済みである場合、ユーザは、品種に対応する追加フローを設定することにより、当該品種を検査するための画像処理フローを画像処理装置100に実行させることができる。
【0041】
<B.画像処理装置のハードウェア構成>
図3は、画像処理装置のハードウェア構成を示す模式図である。図3に示すように、画像処理装置100は、典型的には、汎用的なコンピュータアーキテクチャに従う構造を有しており、予めインストールされたプログラムをプロセッサが実行することで、後述するような各種の処理を実現する。
【0042】
より具体的には、画像処理装置100は、CPU(Central Processing Unit)やMPU(Micro-Processing Unit)などのプロセッサ110と、RAM(Random Access Memory)112と、表示コントローラ114と、システムコントローラ116と、I/O(Input Output)コントローラ118と、ハードディスク120と、カメラインターフェイス122と、入力インターフェイス124と、PLCインターフェイス126と、通信インターフェイス128と、メモリカードインターフェイス130と、を含む。これらの各部は、システムコントローラ116を中心として、互いにデータ通信可能に接続される。
【0043】
プロセッサ110は、システムコントローラ116との間でプログラム(コード)などを交換して、これらを所定順序で実行することで、目的の演算処理を実現する。
【0044】
システムコントローラ116は、プロセッサ110、RAM112、表示コントローラ114、およびI/Oコントローラ118とそれぞれバスを介して接続されており、各部との間でデータ交換などを行うとともに、画像処理装置100全体の処理を司る。
【0045】
RAM112は、典型的には、DRAM(Dynamic Random Access Memory)などの揮発性の記憶装置であり、ハードディスク120から読み出されたプログラムや、撮像部8によって取得された画像(画像データ)、画像に対する処理結果、およびワークデータなどを保持する。
【0046】
表示コントローラ114は、ディスプレイ200と接続されており、システムコントローラ116からの内部コマンドに従って、各種の情報を表示するための信号をディスプレイ200へ出力する。ディスプレイ200は、一例として、液晶ディスプレイや有機EL(Electro Luminescence)ディスプレイや有機ELなどを含む。
【0047】
I/Oコントローラ118は、画像処理装置100に接続される記録媒体や外部機器との間のデータ交換を制御する。より具体的には、I/Oコントローラ118は、ハードディスク120と、カメラインターフェイス122と、入力インターフェイス124と、PLCインターフェイス126と、通信インターフェイス128と、メモリカードインターフェイス130と接続される。
【0048】
ハードディスク120は、典型的には、不揮発性の磁気記憶装置であり、プロセッサ110で実行される制御プログラム150に加えて、1以上のテンプレートデータ160および1以上の個別データ172などが格納される。このハードディスク120にインストールされる制御プログラム150は、メモリカード106などに格納された状態で流通する。さらに、ハードディスク120には、画像が格納される。なお、ハードディスク120に代えて、フラッシュメモリなどの半導体記憶装置やDVD-RAM(Digital Versatile Disk Random Access Memory)などの光学記憶装置を採用してもよい。
【0049】
個別データ172は、テンプレートデータ160を識別するテンプレートID174と、当該テンプレートデータ160に組み合わされる追加データ170と、を含む。
【0050】
プロセッサ110が制御プログラム150を実行することにより、図1に示す実行部11、編集部12および提示部13が実現される。
【0051】
カメラインターフェイス122は、ワークW(検査対象物)を撮像することで生成された画像データを受け付ける入力部に相当し、プロセッサ110と撮像部8との間のデータ伝送を仲介する。より具体的には、カメラインターフェイス122は、1つ以上の撮像部8と接続が可能であり、プロセッサ110からカメラインターフェイス122を介して撮像部8に撮像指示が出力される。これにより、撮像部8は、被写体を撮像し、カメラインターフェイス122を介して、生成された画像をプロセッサ110に出力する。
【0052】
入力インターフェイス124は、プロセッサ110とキーボード300、マウス、タッチパネル、専用コンソールなどの入力装置との間のデータ伝送を仲介する。すなわち、入力インターフェイス124は、ユーザが入力装置を操作することで与えられる操作指令を受け付ける。
【0053】
PLCインターフェイス126は、プロセッサ110とPLC5との間のデータ伝送を仲介する。より具体的には、PLCインターフェイス126は、PLC5によって制御される生産ラインの状態に係る情報やワークWに係る情報などをプロセッサ110へ伝送する。
【0054】
通信インターフェイス128は、プロセッサ110と図示しない他のパーソナルコンピュータやサーバ装置などとの間のデータ伝送を仲介する。通信インターフェイス128は、典型的には、イーサネット(登録商標)やUSB(Universal Serial Bus)などからなる。なお、後述するように、メモリカード106に格納されたプログラムを画像処理装置100にインストールする形態に代えて、通信インターフェイス128を介して、配信サーバなどからダウンロードしたプログラムを画像処理装置100にインストールしてもよい。
【0055】
メモリカードインターフェイス130は、プロセッサ110と記録媒体であるメモリカード106との間のデータ伝送を仲介する。すなわち、メモリカード106には、画像処理装置100で実行される制御プログラム150などが格納された状態で流通し、メモリカードインターフェイス130は、このメモリカード106から制御プログラム150を読み出す。また、メモリカードインターフェイス130は、プロセッサ110の内部指令に応答して、撮像部8によって取得されたカメラ画像および/または画像処理装置100における処理結果などをメモリカード106へ書き込む。なお、メモリカード106は、SD(Secure Digital)などの汎用的な半導体記憶デバイスや、フレキシブルディスク(Flexible Disk)などの磁気記録媒体や、CD-ROM(Compact Disk Read Only Memory)などの光学記録媒体等からなる。
【0056】
上述のような汎用的なコンピュータアーキテクチャに従う構造を有するコンピュータを利用する場合には、本実施の形態に係る機能を提供するためのアプリケーションに加えて、コンピュータの基本的な機能を提供するためのOS(Operating System)がインストールされていてもよい。この場合には、本実施の形態に係るプログラムは、OSの一部として提供されるプログラムモジュールのうち、必要なモジュールを所定の順序および/またはタイミングで呼出して処理を実行するものであってもよい。すなわち、本実施の形態に係るプログラム自体は、上記のようなモジュールを含んでおらず、OSと協働して処理が実行される場合もある。
【0057】
さらに、本実施の形態に係る制御プログラム150は、他のプログラムの一部に組み込まれて提供されるものであってもよい。その場合にも、プログラム自体には、上記のような組み合わせられる他のプログラムに含まれるモジュールを含んでおらず、当該他のプログラムと協働して処理が実行される。すなわち、本実施の形態に係る制御プログラム150としては、このような他のプログラムに組み込まれた形態であってもよい。
【0058】
なお、代替的に、制御プログラム150の実行により提供される機能の一部もしくは全部を専用のハードウェア回路として実装してもよい。
【0059】
<C.テンプレートデータと追加データとを組み合わせて画像処理フローを作成する方法>
図4は、テンプレートデータと追加データとを組み合わせて画像処理フローを作成する方法の一例を示す図である。
【0060】
編集部12として動作するプロセッサ110は、共通フロー31を定義付けるためのテンプレートデータ160を取得する。テンプレートデータ160は、1以上の処理項目50と、当該1以上の処理項目50の実行順序とを示す。共通フロー31は、当該1以上の処理項目50が当該実行順序に従って並べられたフローである。図4に例示されるテンプレートデータ160は、処理項目50a~50eがこの順に並べられた共通フロー31を定義付ける。
【0061】
テンプレートデータ160は、さらに、共通フロー31において、新たな処理項目の挿入が許可される挿入位置32を示す。図4に例示されるテンプレートデータ160は、処理項目50cと処理項目50dとの間の位置を挿入位置32として示す。
【0062】
テンプレートデータ160は、例えばシステムエンジニア(SE)、システムインテグレーター(「SIer」とも称される。)、ベンダー等により予め作成される。
【0063】
プロセッサ110は、共通フロー31の挿入位置32に挿入される追加フロー33を定義付けるための追加データ170を作成する。追加データ170は、例えばベンダー、生産ラインの管理者、生産ラインの作業員等の入力に従って作成される。図4に示されるように、プロセッサ110は、品種Aに対応する追加フロー33Aを定義付けるための追加データ170Aと、品種Bに対応する追加フロー33Bを定義付けるための追加データ170Bとを作成する。
【0064】
追加データ170A,170Bの各々は、1以上の処理項目52と、当該1以上の処理項目52の実行順序とを示す。追加フロー33は、当該1以上の処理項目52が当該実行順序に従って並べられたフローである。図4に例示される追加データ170Aは、処理項目52a,52bがこの順に並べられた追加フロー33Aを定義付ける。図4に例示される追加データ170Bは、処理項目52c,52dがこの順に並べられた追加フロー33Bを定義付ける。
【0065】
プロセッサ110は、品種Aに対応する個別データ172として、追加データ170Aとテンプレートデータ160を識別するテンプレートID174とを含むデータを作成する。同様に、プロセッサ110は、品種Bに対応する個別データ172として、追加データ170Bとテンプレートデータ160を識別するテンプレートID174とを含むデータを作成する。プロセッサ110は、作成した個別データ172をハードディスク120に保存する。
【0066】
実行部11として動作するプロセッサ110は、テンプレートデータ160と追加データ170とを組み合わせることにより作成される画像処理フロー30を実行する。具体的には、プロセッサ110は、品種AのワークWを検査するとき、テンプレートデータ160によって定義付けられる共通フロー31の挿入位置32に、追加データ170Aによって定義付けられる追加フロー33Aを挿入した画像処理フロー30Aを実行する。プロセッサ110は、品種BのワークWを検査するとき、テンプレートデータ160によって定義付けられる共通フロー31の挿入位置32に、追加データ170Bによって定義付けられる追加フロー33Bを挿入した画像処理フロー30Bを実行する。
【0067】
テンプレートデータ160が作成済みである場合、品種に対応する追加フロー33を定義付けるための追加データ170を作成するだけで、当該品種のワークWを検査するための画像処理フローが実行される。すなわち、共通フロー31も含めた画像処理フローを一から作成する必要がなく、画像処理フローの作成に要する手間が削減される。
【0068】
<D.テンプレートデータおよび追加データを作成するときのUI画面>
画像処理装置100は、予め定義されている複数の処理項目のうちから任意の処理項目の選択を受け付けるUI画面を提示する。ユーザは、UI画面において任意の処理項目を選択および配置することにより、テンプレートデータ160および追加データ170を作成できる。なお、本明細書における処理項目は、特定の用途を有する機能単位であり、「ユニット」とも称される。各処理項目について、処理対象および処理結果を特定することができるようになっている。
【0069】
なお、UI画面を操作するユーザには、SE、SIer、ベンダー、生産ラインの管理者、生産ラインの作業員等が含まれる。画像処理プログラムの設計段階に応じて、UI画面を操作するユーザが異なる。例えば、画像処理フローの設計の初期段階では、SE,SIer、ベンダー等がUI画面を操作することにより、テンプレートデータ160が作成される。画像処理フローの設計の最終段階では、ベンダー、管理者、作業員等がUI画面を操作することにより、追加データ170が作成される。
【0070】
図5は、画像処理装置が提示するUI画面の一例を示す図である。図5には、画像処理フローの設計において表示されるUI画面60が示される。
【0071】
UI画面60は、作業領域61と、オブジェクト選択領域62と、画像表示領域63と、挿入/追加ボタン64と、順序入替ボタン65とを含む。
【0072】
オブジェクト選択領域62には、複数のオブジェクトが一覧表示される。複数のオブジェクトは、予め準備された複数の処理項目の各々に対応するオブジェクト400を含む。複数の処理項目は、例えば、画像処理装置100に接続され得る撮像部8(図1参照)から画像を取得するための取得処理を定義する処理項目、画像内において検査対象物を表わす領域のサーチ処理を定義する処理項目、画像内において指定色の画素をラベリングする処理を定義する処理項目などを含む。オブジェクト400は、画像処理フローの作成のために利用される。なお、図5では、「ラベリング」に対応するオブジェクトにのみ符号「400」を付与しているが、他の処理項目(例えば、「サーチ」,・・・,「円形角度取得」)に対応するオブジェクトも「オブジェクト400」である。
【0073】
さらに、オブジェクト選択領域62には、オブジェクト400とは異なるオブジェクト402が表示される。オブジェクト402は、挿入位置を設定するために利用される。
【0074】
ユーザは、オブジェクト選択領域62において、所望のオブジェクト400,402を選択する((1)処理項目を選択)とともに、作業領域61において選択したオブジェクトを追加すべき位置(順序)を選択する(追加位置)。そして、ユーザが挿入/追加ボタン64を選択する((3)挿入/追加ボタンを押す)と、選択されたオブジェクトが作業領域61に追加される((4)オブジェクトが追加される)。また、ユーザは、作業領域61においてオブジェクトを選択した上で、順序入替ボタン65を選択することで、オブジェクトの配置順序を適宜変更することもできる。
【0075】
ユーザは、この処理を適宜繰り返すことで、目的の画像処理フローを実現するためのテンプレートデータ160および追加データ170の設定を行なう。
【0076】
<E.テンプレートデータの作成方法>
図6は、実施の形態に係るテンプレートデータの作成方法の一例を示す図である。ステップS1に示されるように、初期状態において、作業領域61には、オブジェクトが配置されていない。あるいは、初期状態において、通常使用される処理項目「カメラ画像入力」に対応するオブジェクト400が配置されていてもよい。この状態において、オブジェクト選択領域62(図5参照)に表示されるオブジェクト400をユーザが選択することにより、ステップS2に示されるように、1以上のオブジェクト400が作業領域61に追加される。ユーザは、共通フロー31を構成する処理項目に対応するオブジェクト400を選択する。また、ユーザは、選択した1以上のオブジェクト400の配置順序が当該1以上のオブジェクト400に対応する1以上の処理項目の実行順序と一致するように、当該1以上のオブジェクト400を配置する。図6に例示される作業領域61では、オブジェクト400a~400eが上下方向に沿ってこの順に配置されている。なお、以下では、オブジェクト400a~400eを特に区別しない場合、オブジェクト400a~400eの各々を単に「オブジェクト400」という。
【0077】
さらに、オブジェクト選択領域62に表示されるオブジェクト402をユーザが選択することにより、ステップS3に示されるように、1以上のオブジェクト402が作業領域61に追加される。ユーザは、新たな処理項目の挿入を許可する位置にオブジェクト402を配置する。図6に例示される作業領域61では、オブジェクト400cとオブジェクト400dとの間にオブジェクト402が配置されている。なお、オブジェクト402が配置されると、オブジェクト402の直下にオブジェクト403が自動的に配置される。
【0078】
予め準備される複数の処理項目の中には、予め設定された1以上のパラメータの値を用いて実行される処理項目が含まれる。このような処理項目について、ユーザは、当該1以上のパラメータの値を予め設定する必要がある。そのため、プロセッサ110は、作業領域61に配置されたオブジェクト400が選択されると、選択されたオブジェクト400に対応する処理項目の実行に必要なパラメータの値を設定するためのウィンドウを表示する。
【0079】
図7は、パラメータの値を設定するためのウィンドウの一例を示す図である。パラメータの種別は、処理項目に応じて予め定められる。図7には、図6に例示される作業領域61に配置されたオブジェクト400aに対応するウィンドウ500が示される。図7に例示されるウィンドウ500は、パラメータ「ShutterSpeed」,「Gain」の値を設定するための入力欄502と、値の変更の可否を設定するための入力欄504とを含む。ユーザは、入力欄502にパラメータの値を入力し、入力欄504に変更可否を入力する。
【0080】
プロセッサ110は、作業領域61に配置されたオブジェクト400,402,403およびその配置順序と、作業領域61に配置された各オブジェクト400に対応するウィンドウ500への入力とに応じて、テンプレートデータ160を作成する。
【0081】
図8は、実施の形態に係るテンプレートデータ160の一例を示す図である。図8には、図7に例示される作業領域61に配置されたオブジェクト400a~400e,402,403に基づいて作成されたテンプレートデータ160が示される。図8に例示されるテンプレートデータ160は、テーブル形式を有する。ただし、テンプレートデータ160は、テーブル形式に限定されない。
【0082】
図8に示されるように、テンプレートデータ160は、作業領域61に配置されたオブジェクト400,402,403の各々に対応するレコード14を含む。以下、オブジェクト400に対応するレコード14を「レコード14_0」とし、オブジェクト402に対応するレコード14を「レコード14_2」とし、オブジェクト403に対応するレコード14を「レコード14_3」とする。作業領域61に配置されたオブジェクト400は、共通フロー31に含まれる処理項目50を示す。そのため、レコード14_0は、処理項目50に関する情報を示す。作業領域61に配置されたオブジェクト402は、共通フロー31の挿入位置32の開始点を示す。そのため、レコード14_2は、挿入位置32の開始点に関する情報を示す。作業領域61に配置されたオブジェクト403は、共通フロー31の挿入位置32の終了点を示す。そのため、レコード14_3は、挿入位置32の終了点に関する情報を示す。
【0083】
各レコード14は、ユニット番号160aと、ユニット識別名160bと、ユニットID160cと、パラメータ識別名160dと、設定値160eと、変更可否160fとを含む。
【0084】
レコード14_0のユニット識別名160bには、オブジェクト400に対応する処理項目50の名称が設定される。レコード14_0のユニットID160cには、オブジェクト400に対応する処理項目50を識別するIDが設定される。
【0085】
なお、作業領域61に同一のオブジェクト400,402が複数個配置されている場合、プロセッサ110は、複数の同一のオブジェクトを区別するために、ユーザ入力に従ってユニット識別名160bを変更してもよい。
【0086】
レコード14_2,14_3のユニット識別名160bには、オブジェクト402,403の名称がそれぞれ設定される。レコード14_2,14_3のユニットID160cには、オブジェクト402,403に対応するIDがそれぞれ設定される。
【0087】
なお、作業領域61に同一のオブジェクト400,402が複数個配置されている場合、プロセッサ110は、複数の同一のオブジェクトを区別するために、当該オブジェクトに対応するIDに枝番を付与して、枝番が付与されたIDをユニットID160cに設定する。あるいは、プロセッサ110は、複数の同一のオブジェクトを区別するために、当該複数のオブジェクトに対して互いに異なるIDを付与してもよい。
【0088】
各レコード14のユニット番号160aには、作業領域61におけるオブジェクト400,402,403の配置順序が設定される。レコード14_0のユニット番号160aは、対応するユニット識別名160bで示される処理項目の実行順序を示す。レコード14_2のユニット番号160aは、新たな処理項目の挿入が許可される挿入位置32の開始点を示す。レコード14_3のユニット番号160aは、挿入位置32の終了点を示す。
【0089】
レコード14_0のパラメータ識別名160dには、オブジェクト400に対応する処理項目50の実行に必要なパラメータの名称が設定される。なお、処理項目50の実行に必要な複数のパラメータが存在する場合、パラメータ識別名160dには、当該複数のパラメータの各々の名称が設定される。
【0090】
レコード14_0の設定値160eには、オブジェクト400に対応するウィンドウ500(図7参照)の入力欄502に入力された値(以下、「デフォルト値」と称する。)が設定される。レコード14_0の変更可否160fには、オブジェクトに対応するウィンドウ500(図7参照)の入力欄504に入力された可否が設定される。
【0091】
なお、レコード14_2,14_3のパラメータ識別名160d、設定値160eおよび変更可否160fは、ブランクである。
【0092】
プロセッサ110は、作成したテンプレートデータ160をハードディスク120に保存する。
【0093】
<F.追加データの作成方法>
図9は、実施の形態に係る追加データの作成方法の一例を示す図である。ステップS11に示されるように、プロセッサ110は、指定されたテンプレートデータ160をハードディスク120から読み出し、読み出したテンプレートデータ160によって示される共通フロー31を作業領域61に表示させる。作業領域61には、テンプレートデータ160によって示される1以上の処理項目50にそれぞれ対応する1以上のオブジェクト400が実行順序に従って配置される。さらに、テンプレートデータ160によって示される挿入位置32にオブジェクト402,403が連続して配置される。図9に例示される作業領域61には、オブジェクト400a~400eがこの順に配置されており、オブジェクト400cとオブジェクト400dとの間にオブジェクト402,403が連続して配置されている。
【0094】
プロセッサ110は、作業領域61において、連続するオブジェクト402,403の間の位置のみ選択可能とする。プロセッサ110は、選択可能な位置をユーザに認識させるために、連続するオブジェクト402,403の表示形式と、これら以外のオブジェクトの表示形式とを異ならせる。図9に例示される作業領域61では、連続するオブジェクト402,403以外のオブジェクトに斜線が施されている。
【0095】
共通フロー31が作業領域61に表示されている状態において、ユーザは、連続するオブジェクト402,403の間の位置を選択し、かつ、オブジェクト選択領域62(図5参照)に表示されるオブジェクト400を選択する。ユーザは、追加フロー33を構成する所望の処理項目に対応するオブジェクト400を選択する。これにより、ステップS12に示されるように、オブジェクト402とオブジェクト403との間に1以上のオブジェクト400が挿入される。図9に例示される作業領域61では、オブジェクト402とオブジェクト403との間に、オブジェクト400f,400gがこの順に挿入されている。
【0096】
次に、ステップS13に示されるように、挿入したオブジェクト400に対応する処理項目の実行に必要なパラメータの値が設定される。パラメータの値の設定は、図7に示すような処理項目に対応するウィンドウ500を用いて行なわれる。
【0097】
次に、テンプレートデータ160によって示される1以上の処理項目50の実行に必要な1以上のパラメータのうち変更可であるパラメータの値が設定される。ステップS14に示されるように、プロセッサ110は、変更可であるパラメータの値を設定するためのウィンドウ510を表示させる。ウィンドウ510は、変更可であるパラメータの値を設定するための入力欄512を含む。ユーザは、入力欄512にパラメータの値を入力する。
【0098】
プロセッサ110は、オブジェクト402とオブジェクト403との間に挿入されたオブジェクト400およびその配置順序と、ウィンドウ500,510への入力とに応じて、追加データ170を作成する。追加データ170は、1以上の処理項目52(図4参照)と、当該1以上の処理項目52の実行順序とを示す。さらに、追加データ170は、当該1以上の処理項目52の実行に必要なパラメータの値を示す。加えて、追加データ170は、共通フロー31を構成する1以上の処理項目50(図4参照)の実行に必要な1以上のパラメータのうち、変更可に設定されたパラメータ(以下、「個別パラメータ」と称する。)の値を示す。
【0099】
プロセッサ110は、作業領域61のオブジェクト402とオブジェクト403との間に挿入された各オブジェクト400に対応する処理項目を追加すべき処理項目52(図4参照)として設定する。プロセッサ110は、オブジェクト402とオブジェクト403との間に挿入された1以上のオブジェクト400の配置順序に基づいて、追加すべき1以上の処理項目52の実行順序を設定する。さらに、プロセッサ110は、ウィンドウ500への入力に従って、処理項目52の実行に必要なパラメータの値を設定する。プロセッサ110は、ウィンドウ510への入力に従って、共通フロー31を構成する1以上の処理項目50(図4参照)の実行に必要な1以上のパラメータのうち個別パラメータの値を設定する。
【0100】
図10は、実施の形態に係る追加データ170の一例を示す図である。図10には、図9に例示される作業領域61におけるオブジェクト400f、400gと、ウィンドウ500,510への入力とに基づいて作成された追加データ170が示される。図10に例示される追加データ170は、テーブル形式で表される。ただし、追加データ170は、テーブル形式に限定されない。
【0101】
図10に示されるように、追加データ170は、共通フロー31に関する部分データ15と、追加フロー33に関する部分データ16とを含む。
【0102】
部分データ15は、各個別パラメータに対応するレコード17_0を含む。レコード17_0は、データ種別170aと、ユニット識別名170cと、ユニットID170dと、パラメータ識別名170eと、設定値170fとを含む。レコード17_0のユニット識別名170cおよびユニットID170dには、個別パラメータを用いて実行される指定処理項目の名称およびIDがそれぞれ設定される。レコード17_0のパラメータ識別名170eには、個別パラメータの名称が設定される。レコード17_0の設定値170fには、ウィンドウ510(図8参照)の入力欄512に入力された値が設定される。
【0103】
部分データ16は、レコード17_1と、1以上のレコード17_2とを含む。レコード17_1は、ステップS12(図9参照)においてオブジェクト400が挿入された挿入位置32の開始点を示すオブジェクト402に対応する。1以上のレコード17_2は、ステップS12において挿入された1以上のオブジェクト400にそれぞれ対応する。
【0104】
レコード17_1は、「追加」を示すデータ種別170aと、ユニット識別名170cと、ユニットID170dとを含む。レコード17_1のユニット識別名170cおよびユニットID170dには、挿入位置32の開始点を示すオブジェクト402の名称およびIDがそれぞれ設定される。
【0105】
レコード17_2は、ユニット番号170bと、ユニット識別名170cと、ユニットID170dと、パラメータ識別名170eと、設定値170fと、変更可否170gとを含む。
【0106】
レコード17_2のユニット識別名170cおよびユニットID170dには、オブジェクト400に対応する処理項目52の名称およびIDが設定される。レコード17_2のユニット番号170bには、オブジェクト402とオブジェクト403との間における、オブジェクト400の配置順序が設定される。レコード17_2のユニット番号170bは、対応するユニット識別名170cおよびユニットID170dによって識別される処理項目52の実行順序を示す。
【0107】
レコード17_2のパラメータ識別名170eには、オブジェクト400に対応する処理項目52の実行に必要なパラメータの名称が設定される。レコード17_2の設定値170fには、オブジェクト400に対応するウィンドウ500(図7参照)の入力欄502に入力された値が設定される。レコード17_2の変更可否170gには、オブジェクト400に対応するウィンドウ500の入力欄504に入力された可否が設定される。
【0108】
プロセッサ110は、作成した追加データ170と、指定されたテンプレートデータ160を識別するテンプレートID174と、を含む個別データ172を作成し、作成した個別データ172をハードディスク120に保存する。
【0109】
<G.テンプレートデータと追加データとに基づいた画像処理フローの実行>
次に、テンプレートデータ160と追加データ170とに基づいた画像処理フロー30の実行方法について説明する。
【0110】
プロセッサ110は、指定された個別データ172を読み出す。さらに、プロセッサ110は、読み出した個別データ172のテンプレートIDによって識別されるテンプレートデータ160をハードディスク120から読み出す。プロセッサ110は、読み出したテンプレートデータ160と個別データ172に含まれる追加データ170とに基づいて、テンプレートデータ160によって示される共通フロー31に追加データ170によって示される追加フロー33を組み合わせた画像処理フロー30を実行する。具体的には、プロセッサ110は、共通フロー31における挿入位置32に追加フロー33を挿入した画像処理フロー30を実行する。
【0111】
図11は、テンプレートデータと追加データとに基づいて実行される画像処理フローを定義付けるデータの一例を示す図である。図11には、図8に例示されるテンプレートデータ160と図10に例示される追加データ170とに基づいて実行される画像処理フロー30を定義付けるデータが示される。
【0112】
プロセッサ110は、追加データ170の部分データ16に含まれるレコード17_1のユニット識別名170cおよびユニットID170dと一致するユニット識別名160bおよびユニットID160cを有するレコード14_2をテンプレートデータ160から特定する。プロセッサ110は、テンプレートデータ160において、特定したレコード14_2とその直下のレコード14_3との間に、追加データ170の部分データ16に含まれるレコード14_2をユニット番号170bの順に従って追加する。
【0113】
さらに、プロセッサ110は、テンプレートデータ160において、「変更可」を示す変更可否160fに対応するパラメータ識別名160dおよび設定値160eを特定する。プロセッサ110は、特定したパラメータ識別名160dと同一のパラメータ識別名170eを含むレコード17_0を、追加データ170の部分データ16から抽出する。プロセッサ110は、テンプレートデータ160において特定した設定値160e(デフォルト値)を、追加データ170から抽出したレコード17_0の設定値170fに変更する。このように、プロセッサ110は、個別パラメータについて、テンプレートデータ160によって示されるデフォルト値ではなく、追加データ170によって示される値を用いる。
【0114】
このようにして、プロセッサ110は、図11に示されるようなデータを作成し、作成したデータに従って画像処理フロー30を実行する。
【0115】
<H.テンプレートデータの調整の要望>
図8および図11に示されるように、テンプレートデータ160によって示されるパラメータ(例えば、処理項目「カメラ画像入力」の「Gain」)の値(デフォルト値)は、追加データ170によって変更される。そのため、追加データ170を調整することにより、共通フロー31のパラメータの値が変更できる。しかしながら、同じ共通フロー31を用いる別の画像処理フロー30においても、当該パラメータの値を同じように変更したいという要望が有り得る。たとえば、生産ラインの環境の変化により、ワークWの撮像時の条件を変更する必要が生じた場合、各追加データ170を調整するよりも、テンプレートデータ160の設定値160e(図8参照)を調整する方が好ましい。このように、追加データ170ではなく、テンプレートデータ160を調整したいという要望が有り得る。
【0116】
<I.テンプレートデータを用いて作成された画像処理フローの実行および編集を支援するUI画面においてテンプレートデータを編集するときの問題点>
テンプレートデータ160と追加データ170とを組み合わせることによって作成された画像処理フロー30の実行および編集を支援するためのUI画面において、テンプレートデータ160の編集操作を受け付け可能にすることが考えられる。しかしながら、テンプレートデータ160を編集する際には、当該テンプレートデータ160を用いる別の画像処理フロー30への影響を確認する必要がある。
【0117】
品種AのワークWに対応する画像処理フロー30と品種BのワークWに対応する画像処理フロー30とが同一のテンプレートデータ160を用いて作成される場合について説明する。
【0118】
品種Aに対応する画像処理フロー30の実行および編集を支援するUI画面においてテンプレートデータ160を編集するとき、品種Bの画像に対する編集後の共通フロー31による画像処理結果を確認する必要が生じる。この場合、品種Bの画像に対して、品種Aに対応する画像処理フロー30を実行させることにより、品種Bの画像に対する共通フロー31の画像処理結果を確認することが考えられる。しかしながら、品種Aに対応する画像処理フロー30によっては、品種Bの画像に対して共通フロー31が実行されないことがあり得る。
【0119】
図12は、品種A,Bの画像処理フローの一例を示す図である。品種AのワークWを検査するための画像処理フロー30Aは、テンプレートデータ160と追加データ170Aとを組み合わせることにより作成される。品種BのワークWを検査するための画像処理フロー30Bは、テンプレートデータ160と追加データ170Bとを組み合わせることにより作成される。
【0120】
図12に示されるテンプレートデータ160は、処理項目「画像入力」、「第1検査」および「第2検査」をこの順で実行する共通フロー31を示し、処理項目「画像入力」と処理項目「第1検査」との間の挿入位置32を示す。
【0121】
図12に示される追加データ170A,170Bによってそれぞれ示される追加フロー33A,33Bは、処理項目「分岐」を含む。追加フロー33Aに含まれる処理項目「分岐」は、品種AのワークWの特徴を検出したときにのみ、次の処理項目に移動し、品種AのワークWの特徴を検出しないときに画像処理を終了させる。追加フロー33Bに含まれる処理項目「分岐」は、品種BのワークWの特徴を検出したときにのみ、次の処理項目に移動し、品種AのワークWの特徴を検出しないときに画像処理を終了させる。
【0122】
画像処理フロー30Aは、共通フロー31の挿入位置32に追加フロー33Aが挿入されることにより作成される。そのため、品種BのワークWの写る画像が画像処理フロー30Aに入力された場合、処理項目「分岐」で処理が終了される。すなわち、品種Bの画像に対して処理項目「第1検査」,「第2検査」が実施されない。
【0123】
同様に、画像処理フロー30Bは、共通フロー31の挿入位置32に追加フロー33Bが挿入されることにより作成される。そのため、品種AのワークWの写る画像が画像処理フロー30Bに入力された場合、処理項目「分岐」で処理が終了される。すなわち、品種Aの画像に対して処理項目「第1検査」,「第2検査」が実施されない。
【0124】
そのため、品種Aに対応する画像処理フロー30Aの実行および編集を支援するUI画面においてテンプレートデータ160を編集するとき、品種BのワークWの写る画像に対する共通フロー31の画像処理結果を確認できないという問題が生じる。
【0125】
上記の問題を解決するために、品種BのワークWの写る画像に対する共通フロー31の画像処理結果が確認できるように、品種Aに対応する画像処理フロー30Aを設計変更することが考えられる。すなわち、品種BのワークWの写る画像に対して共通フロー31の全ての処理項目が実行されるように、画像処理フロー30Aを設計変更する。しかしながら、このような設計変更には手間がかかる。
【0126】
<J.テンプレートデータおよび追加データの調整方法の具体例>
上記のような問題を解決するために、本実施の形態に係る画像処理装置100は、テンプレートデータ160および追加データ170の調整を支援するUI画面を提示する。図13図20を参照して、テンプレートデータ160および追加データ170の調整方法の具体例を説明する。
【0127】
図13は、共通フローおよび追加フローを含む画像処理フローの実行および編集を支援するUI画面の一例を示す図である。
【0128】
図13に例示されるUI画面20は、ボタン21,22,26a,26b,27と、領域23~25と、を含む。
【0129】
ボタン22は、ファイルに対する操作を受け付ける。ボタン22がクリックされることに応じて、プロセッサ110は、各種のファイル操作を受け付ける。例えば、プロセッサ110は、ボタン22の操作に応じて、個別データ172の選択操作を受け付ける。プロセッサ110は、個別データ172の選択操作を受け付けると、当該個別データ172のテンプレートID174によって識別されるテンプレートデータ160と当該個別データ172の追加データ170とを読み込む。さらに、プロセッサ110は、ボタン22の操作に応じて、編集された追加データ170をハードディスク120に保存する。
【0130】
領域23には、実行および編集の対象となる画像処理フロー30を構成する1以上の処理項目が実行順序に従って表示される。図13に示す画像処理フロー30は、テンプレートデータ160によって示される共通フロー31と追加データ170によって示される追加フロー33とを組み合わせることにより作成される。領域23には、表示される1以上の処理項目のうちの1つを選択するためのカーソル23aが表示される。図13では、追加フロー33に含まれる処理項目「結果表示」が選択されている。
【0131】
ボタン21は、領域23に表示されている画像処理フロー30の実行を開始するためのボタンである。ボタン21がクリックされることにより、プロセッサ110は、画像処理フロー30を実行する。
【0132】
領域24,25には、画像処理結果が表示される。具体的には、領域24には、入力画像に対して画像処理を実行することにより得られる画像(以下、「計測画像」とも称する。」が表示される。プロセッサ110は、ボタン21のクリックに応じて画像処理フロー30を実行し、計測画像を領域24に表示する。プロセッサ110は、カーソル23aによって処理項目が選択されている場合、先頭の処理項目から選択されている処理項目までの画像処理を実行することにより得られる計測画像を領域24に表示させる。
【0133】
領域25には、画像処理結果を示すテキスト情報が表示される。例えば、画像処理フロー30に処理項目「OCR」と処理項目「結果表示」とが含まれる場合、画像に対してOCR(Optical Character Recognition)処理を実行することにより認識された文字列が規定の文字列であるか否かが判定される。プロセッサ110は、当該判定結果を示すテキスト情報を領域25に表示させる。
【0134】
ボタン26aは、カーソル23aによって選択されている処理項目の実行に使用されるパラメータを設定するためのボタンである。ボタン26aがクリックされることにより、プロセッサ110は、パラメータを編集するためのウィンドウを提示する。
【0135】
図14は、パラメータを編集するためのウィンドウの一例を示す図である。図14に例示されるウィンドウ26cは、処理項目「OCR」の実行に使用されるパラメータの編集のために用いられる。ウィンドウ26cは、ボタン26d,26f、タブ群26eおよび領域26fを含む。ユーザは、ボタン26dおよびタブ群26eを操作することにより、パラメータを編集する。領域26fには、計測画像が表示される。そのため、ユーザは、計測画像を確認しながらパラメータを編集できる。ボタン26gがクリックされたことに応じて、プロセッサ110は、追加データ170を更新する。
【0136】
図13に戻って、ボタン26bは、追加フロー33に対する処理項目の追加、変更および削除を行なうためのボタンである。ボタン26bがクリックされたことに応じて、プロセッサ110は、図5に示すオブジェクト選択領域62、挿入/追加ボタン64および順序入替ボタン65をUI画面20内に表示させる。これにより、ユーザは、追加フロー33に対する処理項目の追加、変更および削除を行なうことができる。プロセッサ110は、挿入/追加ボタン64および順序入替ボタン65に対する操作に応じて、追加データ170を更新する。
【0137】
このように、ボタン26a,26b,26d,26f、タブ群26e、挿入/追加ボタン64および順序入替ボタン65は、追加データ170に対する編集操作を受け付けるためのボタン群である。
【0138】
ボタン27は、共通フロー31の実行および編集を支援するUI画面の起動を指示するためのボタンである。
【0139】
図15は、ボタン27がクリックされたときの画面遷移の一例を示す図である。図15に示されるように、プロセッサ110は、ボタン27がクリックされたことに応じて、ハードディスク120に格納される1以上のテンプレートデータ160の一覧28aを含むウィンドウ28を表示させる。ユーザは、一覧28aの中から、実行および編集の対象となる共通フロー31を示すテンプレートデータ160を選択する。ユーザの選択に応じて、プロセッサ110は、共通フロー31の実行および編集を支援するUI画面を起動する。
【0140】
なお、共通フロー31の編集は、権限のある者にのみ限定されることが望ましい。そのため、ボタン27がクリックされたことに応じて、プロセッサ110は、認証処理を実行してもよい。すなわち、提示部13として動作するプロセッサ110は、共通フロー31の実行および編集を支援するUI画面の起動指示の受け付けに応じて、認証情報を入力するための入力画面を提示する。プロセッサ110は、入力画面への入力情報に基づく認証に成功したことに応じて、共通フロー31の実行および編集を支援するUI画面を提示する。
【0141】
図16は、認証情報を入力するための入力画面の一例を示す図である。プロセッサ110は、ボタン27のクリックに応じて、認証情報を入力するための入力画面29を提示する。ボタン27は、ハードディスク120に格納される1以上のテンプレートデータ160の一覧28aを含むウィンドウ28の提示を指示するためのボタンである。そのため、プロセッサ110は、一覧28aの提示指示の受け付けに応じて、入力画面29を提示する。
【0142】
入力画面29は、ユーザ名を入力するための入力欄29aと、パスワードを入力するための入力欄29bと、を含む。プロセッサ110は、ハードディスク120に予め格納されている認証情報と、入力欄29a,29bへの入力情報とを照合することにより、認証を行なう。プロセッサ110は、認証に成功したことに応じて、図15に示すウィンドウ28を提示する。
【0143】
あるいは、プロセッサ110は、ウィンドウ28の一覧28aの中からテンプレートデータ160が選択されたことに応じて、図16に示す入力画面29を提示してもよい。プロセッサ110は、ハードディスク120に予め格納されている認証情報と、入力欄29a,29bへの入力情報とを照合することにより、認証を行なう。プロセッサ110は、認証に成功したことに応じて、共通フロー31の実行および編集を支援するUI画面を提示する。
【0144】
図17は、共通フロー31の実行および編集を支援するUI画面の一例を示す図である。図17に示されるように、プロセッサ110は、UI画面20とは別に、共通フロー31の実行および編集を支援するUI画面40を提示する。
【0145】
UI画面40は、ボタン41,42,46a,46bと、領域43~25と、を含む。
【0146】
ボタン42は、ファイルに対する操作を受け付ける。ボタン42がクリックされることに応じて、プロセッサ110は、各種のファイル操作を受け付ける。例えば、プロセッサ110は、ボタン42の操作に応じて、編集されたテンプレートデータ160をハードディスク120に保存する。
【0147】
領域43には、実行および編集の対象となる共通フロー31を構成する1以上の処理項目が実行順序に従って表示される。領域43には、1以上の処理項目のうちの1つを選択するためのカーソル43aが表示される。図17では、共通フロー31に含まれる処理項目「カメラ画像入力」が選択されている。
【0148】
ボタン41は、領域43に表示されている共通フロー31の実行を開始するためのボタンである。ボタン41がクリックされることにより、プロセッサ110は、共通フロー31を実行する。
【0149】
領域44,45には、画像処理結果が表示される。具体的には、領域44には、入力画像に対して画像処理を実行することにより得られる計測画像が表示される。プロセッサ110は、ボタン41のクリックに応じて共通フロー31を実行し、計測画像を領域44に表示する。プロセッサ110は、カーソル43aによって処理項目が選択されている場合、先頭の処理項目から選択されている処理項目までの画像処理を実行することにより得られる計測画像を領域44に表示させる。領域45には、画像処理結果を示すテキスト情報が表示される。
【0150】
ボタン46aは、カーソル43aによって選択されている処理項目の実行に使用されるパラメータのデフォルト値を編集するためのボタンである。ボタン46aがクリックされることにより、プロセッサ110は、例えば図14に示すようなウィンドウ26c(あるいは、図7に示すウィンドウ500)を表示させる。プロセッサ110は、ウィンドウ26c(あるいはウィンドウ500)への操作に応じて、テンプレートデータ160の設定値160e(図8参照)を更新する。
【0151】
ボタン46bは、共通フロー31に対する処理項目の追加、変更および削除を行なうためのボタンである。ボタン46bがクリックされたことに応じて、プロセッサ110は、図5に示すオブジェクト選択領域62、挿入/追加ボタン64および順序入替ボタン65をUI画面40内に表示させる。これにより、ユーザは、共通フロー31に対する処理項目の追加、変更および削除を行なうことができる。プロセッサ110は、挿入/追加ボタン64および順序入替ボタン65に対する操作に応じて、テンプレートデータ160を更新する。
【0152】
このように、ボタン46a,46b,挿入/追加ボタン64および順序入替ボタン65は、テンプレートデータ160に対する編集操作を受け付けるためのボタン群である。プロセッサ110は、これらのボタン群の操作を受けた後、ボタン42の操作に応じて、編集されたテンプレートデータ160をハードディスク120に保存する。
【0153】
テンプレートデータ160の編集および保存が終了すると、通常、当該テンプレートデータ160によって示される共通フロー31を含む画像処理フロー30への影響が確認される。そのため、ユーザは、UI画面20をクリックして、UI画面20をアクティブ状態に切り替える。これにより、プロセッサ110は、UI画面20への操作を受け付ける。たとえば、プロセッサ110は、UI画面20のボタン22を操作に応じて、編集および保存されたテンプレートデータ160を読み込む。その後、プロセッサ110は、ボタン21がクリックされたことに応じて、画像処理フロー30の実行によって得られる画像処理結果を領域24,25に提示する。これにより、ユーザは、テンプレートデータ160の編集による画像処理フロー30への影響を確認できる。再度テンプレートデータ160の編集が必要な場合、ユーザは、UI画面40をクリックして、UI画面40をアクティブ状態に切り替える。これにより、プロセッサ110は、UI画面40への操作を受け付ける。このようにして、ユーザは、UI画面20,40のいずれかをアクティブ状態に切り替えることにより、画像処理フロー30および共通フロー31の画像処理結果を確認しながら、画像処理フロー30および共通フロー31を編集できる。
【0154】
図18は、共通フローの実行による画像処理結果を示すUI画面の一例を示す図である。図19は、共通フローの実行による画像処理結果を示すUI画面の別の例を示す図である。図18には、品種AのワークWの写る画像が入力されたときの、共通フロー31の実行による画像処理結果を示すUI画面40が示される。図19には、品種BのワークWの写る画像が入力されたときの、共通フロー31の実行による画像処理結果を示すUI画面40が示される。UI画面40では、共通フロー31にのみ画像が入力される。そのため、図18,19に示されるように、ユーザは、共通フロー31を含む複数の画像処理フロー30の各々が対象とする画像を共通フロー31に入力し、共通フロー31の実行による画像処理結果を確認できる。
【0155】
図18に示す例では、ワークWが上下反転された状態で写る画像が入力される。そのため、処理項目「位置ずれ修正」が正常に動作していない。このような場合、ユーザは、処理項目「位置ずれ修正」の実行に必要なパラメータの編集を行なう。具体的には、ユーザは、領域43において処理項目「位置ずれ修正」にカーソル43aを合わせ、ボタン46aをクリックする。これにより、プロセッサ110は、処理項目「位置ずれ修正」のパラメータを編集するためのウィンドウを提示する。
【0156】
図20は、処理項目「位置ずれ修正」のパラメータを編集するためのウィンドウの一例を示す図である。図20に示されるウィンドウ46cは、回転補正の有効/無効を切り替えるためのチェックボックス46dを含む。チェックボックス46dがチェックされることにより、プロセッサ110は、回転補正が有効であることを示すように、テンプレートデータ160を編集する。プロセッサ110は、ボタン42(図18参照)の操作に応じて、編集されたテンプレートデータ160をハードディスク120に保存する。これにより、プロセッサ110は、共通フロー31に含まれる処理項目「位置ずれ修正」において、画像を180°回転させる。
【0157】
<K.変形例>
(変形例1)
プロセッサ110は、ウィンドウ28(図15参照)の一覧28aの中から、複数のテンプレートデータ160の選択を受け付けてもよい。プロセッサ110は、複数のテンプレートデータ160の選択を受け付けた場合、当該複数のテンプレートデータ160にそれぞれ対応する複数のUI画面40を起動させる。これにより、ユーザは、選択した複数のテンプレートデータ160の各々について、対応するUI画面40をアクティブに切り替えることにより、当該UI画面40を用いて当該テンプレートデータ160によって示される共通フロー31の実行および編集を行なう。
【0158】
たとえば、画像処理フロー30は、複数の共通フロー31を含んでもよい。このような場合、ユーザは、ウィンドウ28において、当該複数の共通フロー31にそれぞれ対応する複数のテンプレートデータ160を選択する。
【0159】
(変形例2)
テンプレートデータ160は、別のテンプレートデータと、当該別のテンプレートデータに対する追加データとによって構成されてもよい。
【0160】
図21は、変形例2に係る画像処理装置において提示されるUI画面の一例を示す図である。
【0161】
図21に示されるように、画像処理フロー30は、上記の実施の形態と同様に、共通フロー31を定義するテンプレートデータ160と追加フロー33を定義する追加データ170とを組み合わせることにより作成される。すなわち、画像処理フロー30は、共通フロー31における挿入位置32に追加フロー33が挿入された画像処理フローである。
【0162】
さらに、共通フロー31は、別の共通フロー34を定義するテンプレートデータ160_1と別の追加フロー35を定義する追加データ170_1とを組み合わせることにより作成される。すなわち、共通フロー31は、共通フロー34における挿入位置36に追加フロー35が挿入された画像処理フローである。なお、共通フロー34は、1以上の処理項目を含む。テンプレートデータ160_1は、共通フロー34における挿入位置36を定義する。追加フロー35は、1以上の処理項目を含む。追加データ170_1は、追加フロー35における挿入位置32を定義する。
【0163】
変形例2では、提示部13として動作するプロセッサ110は、画像処理フロー30の実行および編集を支援するUI画面20を提示している状態において、共通フロー31,34の実行および編集をそれぞれ支援するUI画面40,40_1の起動指示を受け付ける。プロセッサ110は、起動指示の受け付けに応じて、UI画面40,40_1を提示する。
【0164】
UI画面40は、処理対象となる画像に対して共通フロー31に従った画像処理を実行させるボタン41を含む。プロセッサ110は、UI画面40がアクティブである状態において、ボタン41がクリックされたことに応じて、処理対象となる画像に対して共通フロー31に従った画像処理を実行し、画像処理結果をディスプレイ200に表示する。
【0165】
編集部12として動作するプロセッサ110は、UI画面40がアクティブである状態において、共通フロー31に対する編集操作を受け付ける。ただし、共通フロー31は、テンプレートデータ160_1と追加データ170_1とを組み合わせることにより作成される。そのため、プロセッサ110は、UI画面40において、テンプレートデータ160_1によって示される、共通フロー34に含まれる1以上の処理項目、当該1以上の処理項目の実行順序および共通フロー34における挿入位置36の編集操作を受け付けない。すなわち、プロセッサ110は、テンプレートデータ160_1に対して組み合わされる追加データ170_1への編集操作を受け付ける。たとえば、プロセッサ110は、追加フロー35に対する処理項目の追加、変更および削除、追加フロー35を構成する処理項目の実行に使用されるパラメータのデフォルト値の変更、ならびに追加フロー35における挿入位置32の変更などの編集操作を受け付ける。さらに、プロセッサ110は、共通フロー34に含まれる処理項目の実行に使用されるパラメータのうち値の変更が可能に設定されたパラメータの値の編集操作も受け付ける。
【0166】
UI画面40は、編集内容を追加データ170_1に反映するためのボタン42を含む。プロセッサ110は、UI画面40がアクティブである状態において、ボタン42がクリックされたことに応じて、編集された追加データ170_1を保存する。
【0167】
UI画面40_1は、処理対象となる画像に対して共通フロー34に従った画像処理を実行させるボタン41_1を含む。プロセッサ110は、UI画面40_1がアクティブである状態において、ボタン41_1がクリックされたことに応じて、処理対象となる画像に対して共通フロー34に従った画像処理を実行し、画像処理結果をディスプレイ200に表示する。
【0168】
編集部12として動作するプロセッサ110は、UI画面40_1がアクティブである状態において、共通フロー34に対する編集操作を受け付ける。すなわち、プロセッサ110は、テンプレートデータ160_1への編集操作を受け付ける。たとえば、プロセッサ110は、共通フロー34を構成する処理項目の変更、削除および追加、ならびに共通フロー34における挿入位置36の変更などの編集操作を受け付ける。
【0169】
UI画面40_1は、編集内容をテンプレートデータ160_1に反映するためのボタン42_1を含む。プロセッサ110は、UI画面40_1がアクティブである状態において、ボタン42_1がクリックされたことに応じて、編集されたテンプレートデータ160_1を保存する。
【0170】
(変形例3)
提示部13として動作するプロセッサ110は、共通フロー31の実行および編集を支援するUI画面40を提示しているとき、当該共通フロー31を用いる別の画像処理フローの実行および編集を支援するUI画面を提示してもよい。
【0171】
図22は、変形例3に係る画像処理装置において提示されるUI画面の一例を示す図である。
【0172】
図22に示される画像処理フロー30_1は、テンプレートデータ160と別の追加データ170_2とを組み合わせることにより作成される。追加データ170_2は、1以上の処理項目を含む追加フロー33_1を示す。画像処理フロー30_1は、共通フロー31における挿入位置32に追加フロー33_1が挿入された画像処理フローである。
【0173】
提示部13として動作するプロセッサ110は、UI画面20およびUI画面40を提示している状態において、画像処理フロー30_1の実行および編集を支援するUI画面20_1の起動指示を受け付け可能である。プロセッサ110は、当該起動指示の受け付けに応じて、画像処理フロー30_1の実行および編集を支援するUI画面20_1を提示する。
【0174】
たとえば、プロセッサ110は、提示しているUI画面40に表示される共通フロー31に対応するテンプレートID174を含む個別データ172をハードディスク120から抽出する。プロセッサ110は、抽出した個別データ172の一覧を提示し、個別データ172の選択指示を上記の起動指示として受け付ける。プロセッサ110は、選択された個別データ172によって定義付けられる画像処理フロー30_1の実行および編集を支援するUI画面20_1を起動する。
【0175】
UI画面20_1は、処理対象となる画像に対して画像処理フロー30_1に従った画像処理を実行させるボタン21_1を含む。すなわち、ボタン21_1は、画像処理フロー30_1の実行を指示するためのボタンである。実行部11として動作するプロセッサ110は、画像処理フローの実行および編集を支援するUI画面がアクティブである状態において、ボタン21がクリックされたことに応じて、画像処理フロー30_1を実行すればよい。
【0176】
編集部12として動作するプロセッサ110は、UI画面20_1がアクティブである状態において、画像処理フロー30_1に対する編集操作を受け付ける。ただし、共通フロー31は、他の画像処理フローにも適用され得る。そのため、プロセッサ110は、追加フロー33_1を構成する処理項目の変更、削除および追加などの編集操作を受け付ける。プロセッサ110は、編集操作に応じて、追加データ170_2を編集すればよい。
【0177】
これにより、ユーザは、共通フロー31を用いる別の画像処理フロー30_1の画像処理結果を確認しやすくなる。さらに、ユーザは、確認結果に応じて、画像処理フロー30_1を構成する追加フロー33_1を編集できる。
【0178】
(変形例4)
ワークWの検査を行なうとき、画像処理装置100は、通常、PLC5、他のパーソナルコンピュータまたはサーバ装置などの外部機器からのトリガ信号の入力を受けて、画像処理フロー30を実行し、画像処理結果を外部機器へ出力する。画像処理フロー30の一部である共通フロー31は、ワークWの検査用として不十分である。そのため、トリガ信号の入力を受けて、共通フロー31が実行されることは好ましくない。さらに、共通フロー31の実行による画像処理結果がPLC5、他のパーソナルコンピュータまたはサーバ装置に出力されることも好ましくない。
【0179】
そのため、実行部11として動作するプロセッサ110は、外部機器からトリガ信号が入力されたとき、常に画像処理フロー30を実行してもよい。すなわち、プロセッサ110は、UI画面20,40のいずれかアクティブであったとしても、外部機器からのトリガ信号の入力に応じて画像処理フロー30を実行し、画像処理結果を外部に出力する。あるいは、プロセッサ110は、UI画面20がアクティブであるときにのみ外部機器からトリガ信号を受け付け、トリガ信号の入力に応じて、画像処理フロー30を実行し、画像処理結果を外部機器に出力してもよい。すなわち、プロセッサ110は、UI画面40がアクティブであるときには外部機器からトリガ信号を受け付けない。言い換えると、プロセッサ110は、UI画面40がアクティブであるときに外部機器からトリガ信号が入力されたとしても共通フロー31を実行しない。これにより、画像処理フロー30を前提として構築された外部機器に対して画像処理装置100から誤った信号が送信されるという問題、および、外部機器からの入力に対して画像処理装置100が誤った動作を行なってしまうという問題が回避される。
【0180】
さらに、プロセッサ110は、外部機器への信号出力を定義する処理項目が共通フロー31に含まれている場合であっても、UI画面40において実行指示を受け付けたとき、外部機器への信号出力を行なわないことが好ましい。これにより、画像処理フロー30を前提として構築された外部機器に対して画像処理装置100から誤った信号が送信されるという問題が回避される。
【0181】
§3 付記
以上のように、本実施の形態は以下のような開示を含む。
【0182】
(構成1)
画像処理装置(100)であって、
実行指示に応じて、画像処理フローを実行する実行部(11,110)と、
編集操作に応じて、前記画像処理フローを定義するデータを編集する編集部(12,110)と、
前記画像処理フローの実行および編集を支援するUI画面を提示する提示部(13,110)と、を備え、
前記画像処理フローは、第1テンプレートデータ(160)と第1追加データ(170)とを組み合わせることにより作成される第1画像処理フロー(30)を含み、
前記第1テンプレートデータ(160)は、1以上の処理項目を含む第2画像処理フロー(31)を示し、
前記第1追加データ(170)は、1以上の処理項目を含む第3画像処理フロー(33)を示し、
前記第1画像処理フロー(30)は、前記第2画像処理フロー(31)の第1挿入位置(32)に前記第3画像処理フロー(33)が挿入された画像処理フローであり、
前記提示部(13,110)は、
前記第1画像処理フロー(30)の実行および編集を支援する第1UI画面(20)を提示している状態において、前記第2画像処理フロー(31)の実行および編集を支援する第2UI画面(40)の第1起動指示を受け付け可能であり、
前記第1起動指示の受け付けに応じて、前記第2UI画面(40)を提示し、
前記実行部(11,110)は、
前記第1UI画面(20)がアクティブである状態において、前記実行指示に応じて、前記第1画像処理フロー(30)を実行し、
前記第2UI画面(40)がアクティブである状態において、前記実行指示に応じて、前記第2画像処理フロー(31)を実行し、
前記編集部(12,110)は、
前記第1UI画面(20)がアクティブである状態において、前記編集操作に応じて、前記第1追加データ(170)を編集し、
前記第2UI画面(40)がアクティブである状態において、前記編集操作に応じて、前記第1テンプレートデータ(160)を編集する、画像処理装置(100)。
【0183】
(構成2)
前記提示部(13,110)は、
前記第1起動指示の受け付けに応じて、認証情報を入力するための入力画面(29)を提示し、
前記入力画面(29)への入力情報に基づく認証に成功したことに応じて、前記第2UI画面(40)を提示する、構成1に記載の画像処理装置(100)。
【0184】
(構成3)
前記第2画像処理フロー(31)は、第2テンプレートデータ(160_1)と第2追加データ(170_1)とを組み合わせることにより作成され、
前記第2テンプレートデータ(160_1)は、1以上の処理項目を含む第4画像処理フロー(34)を示し、
前記第2追加データ(170_1)は、1以上の処理項目を含む第5画像処理フロー(35)を示し、
前記第2画像処理フロー(31)は、前記第4画像処理フロー(34)における第2挿入位置(36)に前記第5画像処理フロー(35)が挿入された画像処理フローであり、
前記提示部(13,110)は、
前記第1UI画面(20)を提示している状態において、前記第4画像処理フロー(34)の実行および編集を支援する第3UI画面(40_1)の第2起動指示を受け付け可能であり、
前記第2起動指示の受け付けに応じて、前記第3UI画面(40_1)を提示し、
前記実行部(11,110)は、前記第3UI画面(40_1)がアクティブである状態において、前記実行指示に応じて、前記第4画像処理フロー(34)を実行し、
前記編集部(12,110)は、
前記第2UI画面(40)がアクティブである状態において、前記編集操作に応じて、前記第2追加データ(170_1)を編集し、
前記第3UI画面(40_1)がアクティブである状態において、前記編集操作に応じて、前記第2テンプレートデータ(160_1)を編集する、構成1または2に記載の画像処理装置(100)。
【0185】
(構成4)
前記画像処理フローは、前記第1テンプレートデータ(160)と第3追加データ(170_2)とを組み合わせることにより作成される第6画像処理フロー(30_1)を含み、
前記第3追加データ(170_2)は、1以上の処理項目を含む第7画像処理フロー(33_1)を示し、
前記第6画像処理フロー(30_1)は、前記第2画像処理フロー(31)における前記第1挿入位置(32)に前記第7画像処理フロー(33_1)が挿入された画像処理フローであり、
前記提示部(13,110)は、
前記第1UI画面(20)を提示している状態において、前記第6画像処理フロー(30_1)の実行および編集を支援する第4UI画面(20_1)の第3起動指示を受け付け可能であり、
前記第3起動指示の受け付けに応じて、前記第4UI画面(20_1)を提示し、
前記実行部(11,110)は、前記第4UI画面(20_1)がアクティブである状態において、前記実行指示に応じて、前記第6画像処理フロー(30_1)を実行し、
前記編集部(12,110)は、前記第4UI画面(20_1)がアクティブである状態において、前記編集操作に応じて、前記第3追加データ(170_2)を編集する、構成1から3のいずれかに記載の画像処理装置(100)。
【0186】
(構成5)
画像処理装置(100)における画像処理フローの編集方法であって、
前記画像処理フローの実行および編集を支援するUI画面を提示するステップと、
実行指示に応じて、前記画像処理フローを実行するステップと、
編集操作に応じて、前記画像処理フローを定義するデータを編集するステップと、を備え、
前記画像処理フローは、テンプレートデータ(160)と追加データ(170)とを組み合わせることにより作成される第1画像処理フロー(30)を含み、
前記テンプレートデータ(170)は、1以上の処理項目を含む第2画像処理フロー(31)を示し、
前記追加データ(170)は、1以上の処理項目を含む第3画像処理フロー(33)を示し、
前記第1画像処理フロー(30)は、前記第2画像処理フロー(31)における挿入位置(32)に前記第3画像処理フロー(33)が挿入された画像処理フローであり、
前記提示するステップは、
前記第1画像処理フロー(30)の実行および編集を支援する第1UI画面(20)を提示している状態において、前記第2画像処理フロー(31)の実行および編集を支援する第2UI画面(40)の第1起動指示を受け付けるステップと、
前記第1起動指示の受け付けに応じて、前記第2UI画面(40)を提示するステップと、を含み、
前記実行するステップは、
前記第1UI画面(20)がアクティブである状態において、前記実行指示に応じて、前記第1画像処理フロー(30)を実行するステップと、
前記第2UI画面(40)がアクティブである状態において、前記実行指示に応じて、前記第2画像処理フロー(31)を実行するステップと、を含み、
前記編集するステップは、
前記第1UI画面(20)がアクティブである状態において、前記編集操作に応じて、前記追加データ(170)を編集するステップと、
前記第2UI画面(40)がアクティブである状態において、前記編集操作に応じて、前記テンプレートデータ(160)を編集するステップと、を含む、編集方法。
【0187】
(構成6)
構成5に記載の編集方法をコンピュータに実行させるプログラム。
【0188】
本発明の実施の形態について説明したが、今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0189】
1 画像処理システム、5 PLC、6 搬送機構、8 撮像部、11 実行部、12 編集部、13 提示部、14,17 レコード、15,16 部分データ、20,40,60 UI画面、21,22,26a,26b,26d,26f,26g,27,41,42,46a,46b ボタン、23~25,26f,43~45 領域、23a,43a カーソル、26c,28,46c,500,510 ウィンドウ、26e タブ群、28a 一覧、29 入力画面、29a,29b,502,504,512 入力欄、30,30A,30B,30_1 画像処理フロー、31,34 共通フロー、32,36 挿入位置、33,33A,33B,33_1,35 追加フロー、46d チェックボックス、50,50a~50e,52,52a~52d 処理項目、61 作業領域、62 オブジェクト選択領域、63 画像表示領域、64 挿入/追加ボタン、65 順序入替ボタン、100 画像処理装置、106 メモリカード、110 プロセッサ、112 RAM、114 表示コントローラ、116 システムコントローラ、118 I/Oコントローラ、120 ハードディスク、122 カメラインターフェイス、124 入力インターフェイス、126 PLCインターフェイス、128 通信インターフェイス、130 メモリカードインターフェイス、150 制御プログラム、160 テンプレートデータ、170,170A,170B,170_1,170_2 追加データ、172 個別データ、174 テンプレートID、200 ディスプレイ、300 キーボード、400,400a~400g,402,403 オブジェクト、W ワーク。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22