開発支援装置および開発支援プログラム
【課題】画像処理装置において実行されるプログラムの開発を容易にすることができる開発支援装置および開発支援プログラムを提供する。
【解決手段】処理の目的が列挙されたリスト表示から、ユーザは、所望する目的を選択する。これにより、当該目的に対応するサンプルユニットの説明画面が表示される。そして、サンプルユニットのプログラムを保存するフォルダのリンクが選択されると、当該フォルダを含むディレクトリが表示され、そして、当該フォルダの画像が、初期動作で表示された画面上にドロップされると、サンプルユニットが実行される。サンプルユニットは、1以上の画像処理モジュール(処理ユニット)を含む。そして、サンプルユニットが実行されることにより、デフォルトで格納されている画像データに対して、各処理ユニットによって規定される処理が実行され、その結果が、モニタ3に表示される。
【解決手段】処理の目的が列挙されたリスト表示から、ユーザは、所望する目的を選択する。これにより、当該目的に対応するサンプルユニットの説明画面が表示される。そして、サンプルユニットのプログラムを保存するフォルダのリンクが選択されると、当該フォルダを含むディレクトリが表示され、そして、当該フォルダの画像が、初期動作で表示された画面上にドロップされると、サンプルユニットが実行される。サンプルユニットは、1以上の画像処理モジュール(処理ユニット)を含む。そして、サンプルユニットが実行されることにより、デフォルトで格納されている画像データに対して、各処理ユニットによって規定される処理が実行され、その結果が、モニタ3に表示される。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、開発支援装置および開発支援プログラムに関し、特に、計測対象物の画像に対して画像処理を行なうことにより検査や判別を行なう画像処理装置を含むシステムにおける画像処理装置で実行されるプログラムの開発に関する。
【背景技術】
【0002】
従来から、画像処理装置で実行させるプログラムの開発に際し、処理内容の構成単位であるオブジェクトプログラムや画像処理モジュールなどを予め準備して用いられていた。なお、画像処理装置における物品の計測態様の多様化などに伴い、プログラムの開発についてより柔軟にカスタマイズできることが希望されるようになってきている。
【0003】
この点、たとえば特許文献1(特開2009−59203号公報)では、複数個の画像処理モジュールを記憶する記憶部にユーザの操作に従って作成された新たな画像処理モジュールを追加して記憶し、そして、当該記憶部に記憶されている画像処理モジュールのうち複数の画像処理モジュールの実行順序をユーザの操作に従って決定して基本フローを作成する技術が開示されている。
【0004】
また、特許文献2(特開2009−87144号公報)には、記憶部に記憶させる複数の画像処理モジュールとして、画像処理機能を特定する第1画像処理モジュールと、第1画像処理モジュールに対する設定情報の入力に利用される画面を表示するための情報である第2画像処理モジュールとを含み、そして、第2画像処理モジュールに基づいて表示された画面に対して入力された情報に基づいて、第1画像処理モジュールに対して画像処理動作の設定を行なうことにより画像処理機能をカスタマイズする技術が開示されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2009−59203号公報
【特許文献2】特開2009−87144号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
上記したような従来の技術によれば、特許文献2に記載の技術に従って画像処理機能をカスタマイズし、また、特許文献1に記載の技術に従って、予め利用された画像処理モジュールを利用しつつ、必要な画像処理モジュールのみを作成すれば、希望に沿う基本フローを作成できる。
【0007】
しかしながら、特許文献1に開示されたような画像処理モジュールの作成には、個々の処理の内容を記述したソースコードの作成を要する。このため、システムインテグレータ(SI)にかかる負担が大きすぎるという問題があった。一方、画像処理装置のメーカにおいて個々の顧客の希望に沿うようなプログラム開発を行なった場合、コストの面で採算が取れなくなるという問題が生じる。
【0008】
本発明は、かかる実情に鑑み考え出されたものであり、その目的は、画像処理装置において実行されるプログラムの開発を容易にすることができる開発支援装置および開発支援プログラムを提供することである。
【課題を解決するための手段】
【0009】
本発明に従った開発支援装置は、特定の画像処理を実現するための特定プログラムを記憶するための記憶手段と、外部からの操作を受け付けるための受付手段と、受付手段が特定の操作を受け付けたことに応じて、特定プログラムを実行するための実行手段とを備え、記憶手段は、特定プログラムの記述を画面に表示させるためのデータである画面表示用データを記憶し、実行手段は、受付手段が特定の操作を受け付けたことに応じて、さらに、画面表示用データを用いて特定プログラムの記述を表示させる。
【0010】
好ましくは、記憶手段は、特定プログラムに関する説明を画面の表示させるためのデータである説明用データをさらに記憶し、実行手段は、特定の操作に応じて、さらに、説明用データを用いて特定プログラムに関する説明を表示させる。
【0011】
好ましくは、特定の操作は、記述および説明を表示させるための第1の操作と、特定プログラムを実行するための第2の操作とを含む。
【0012】
好ましくは、実行手段は、特定プログラムの設定の変更を受け付け、当該変更内容を記憶手段に記憶する。
【0013】
本発明に従った開発支援プログラムは、特定の画像処理を実現するための特定プログラムを記憶するための記憶手段を備えたコンピュータによって実行される開発支援プログラムであって、記憶手段は、特定プログラムの記述を画面に表示させるためのデータである画面表示用データを記憶し、開発支援プログラムは、コンピュータに、外部からの操作を受け付けるステップと、特定の操作を受け付けたことに応じて、画面表示用データを用いて特定プログラムの記述を表示させるステップと、特定プログラムを実行するステップとを実行させる。
【発明の効果】
【0014】
本発明によれば、特定プログラムが実行され、また、当該特定プログラムの記述を表示される。
【0015】
これにより、ユーザは、特定プログラムの処理内容と、当該処理内容を実現するためのプログラムの記述の双方を認識できる。
【図面の簡単な説明】
【0016】
【図1】本発明が適用される画像処理装置の設置例を示す図である。
【図2】画像処理装置の外部構成の概略を示す図である。
【図3】画像処理装置の電気構成を示す図である。
【図4】本実施の形態の画像処理装置のメイン画面を示す図である。
【図5】本実施の形態の画像処理装置のフロー編集ダイアログ画面を示す図である。
【図6】図4のメイン画面の変形例を示す図である。
【図7】図3のコントローラの機能構成を示す図である。
【図8】図3のフラッシュメモリに格納された情報の構成を模式的に示す図である。
【図9】サンプルデータの構成の一例を模式的に示す図である。
【図10】設定データの構成の一例を模式的に示す図である。
【図11】図1のモニタにおける画面表示の一例を示す図である。
【図12】図1のモニタにおける画面表示の他の例を示す図である。
【図13】図1のモニタに表示される説明画面の一例を示す図である。
【図14】図1のモニタに表示される説明画面の一例を示す図である。
【図15】図1のモニタに表示される説明画面の一例を示す図である。
【図16】図の画像処理装置のフラッシュメモリ内のディレクトリの内容を表示する画面の一例を示す図である。
【図17】図1のモニタにおける画面表示のさらに他の例を示す図である。
【図18】開発支援処理で表示されるリストの変形例を示す図である。
【図19】図1のモニタに表示される説明画面の他の例を示す図である。
【図20】図1のモニタに表示される説明画面の他の例を示す図である。
【図21】図1のモニタにおける画面表示の別の例を示す図である。
【図22】図1のモニタにおける画面表示のさらに別の例を示す図である。
【図23】コントローラ2において実行される、開発支援処理のフローチャートである。
【発明を実施するための形態】
【0017】
以下、本発明の検査装置の一実施の形態について、図面を参照しつつ説明する。なお、同一の構成要素には各図において同一の符号を付し、詳細な説明は繰返さない。
【0018】
(1) 画像処理装置の構成
図1は、本発明が適用される画像処理装置の設置例を示す。
【0019】
本実施の形態の画像処理装置は、カメラ1、コントローラ2、モニタ3、コンソール4などにより構成されており、工場の検査ラインLにおいて、搬送されてくるワークWを順に撮像してカラー画像を生成し、その画像を処理することによって、前記ワークW上の計測対象物7(マーク、文字、欠陥など)の位置、姿勢、大きさなどの適否を判別する。尚、コンソール4はマウスやキーボード、タッチパネルなど操作者がCPU(Central Processing Unit)21に指示を送るために用いることができる機器であればその形態は限定されない。カメラ1は1台に限定されず複数台接続することができる。
【0020】
図2は、画像処理装置の外部構成の概略を示す。また、図3は、画像処理装置の電気構成を示す。
【0021】
コントローラ2は、本実施の形態における開発支援装置の一例である。そして、コントローラ2は、CPU21を制御主体として、フラッシュメモリ22、RAM(Random Access Memory)23、グラフィックコントローラ24、カメラ用インターフェース25、入力用インターフェース26、外部用インターフェース27などを具備する。
【0022】
フラッシュメモリ22には、プログラムや処理に必要なパラメータなどが格納され、RAM23には、画像データや途中の演算結果などが一時保存される。
【0023】
CPU21が本実施の形態で述べられる機能を実現するために実行するプログラムは、フラッシュメモリ22に記憶されていても良いし、画像処理装置に対して着脱可能な記憶媒体に記録されていても良い。記憶媒体としては、CD−ROM(Compact Disc - Read Only Memory)、DVD−ROM(Digital Versatile Disk - Read Only Memory)、USB(Universal Serial Bus)メモリ、メモリカード、FD(Flexible Disk)、ハードディスク、磁気テープ、カセットテープ、MO(Magnetic Optical Disc)、MD(Mini Disc)、IC(Integrated Circuit)カード(メモリカードを除く)、光カード、マスクROM、EPROM、EEPROM(Electronically Erasable Programmable Read-Only Memory)などの、不揮発的にプログラムを格納する媒体が挙げられる。
【0024】
カメラ用インターフェース25には、前記カメラ1の駆動回路や、R,G,Bの各画像信号を受け付けるためのバッファ、A/D変換回路(いずれも図示せず。)などが含まれる。入力用インターフェース26は、前記コンソール4からの信号を受け付けるためのものである。外部用インターフェース27は、図示しない外部機器(パーソナルコンピュータ、PLCなど)と通信する際に使用される。グラフィックコントローラ24は、前記モニタに対する表示制御を実行する。
【0025】
外部用I/F(インターフェース)には、PLC(Power Line Communication)やパソコン(パーソナルコンピュータ)が接続されるが、ネットワークを介して他の画像処理装置と互いに接続することも可能である。
【0026】
前記CPU21は、フラッシュメモリ22やRAM23に格納されているプログラムやパラメータなどをモニタ3に表示させたり、コンソール4や外部用I/F27から入力されるデータをフラッシュメモリ22やRAM23に格納する。また、ワーク検出用のセンサ5(光電スイッチ、近接スイッチなど)が接続されている。CPU21は、このセンサ5からワークWを検出した旨を示す信号を入力すると、カメラ用インターフェース25を用いてカメラ1を駆動し、前記ワークWを撮像させる。そして前記ワークWのカラー濃淡画像(以下、「処理対象画像」という。)が生成され、RAM23に保存されると、CPU21は、前記フラッシュメモリ22に記憶されたプログラムに基づき、前記計測対象物7を抽出する処理や、抽出された計測対象物7に対する計測処理を実行し、さらにその計測結果に基づき、計測対象物の良否を判定する。また、処理結果の画像(以下、「処理画像」)や計測処理結果のデータをフラッシュメモリ22やRAM23に格納する。さらに、外部用I/F27を通じてネットワークで接続された他の画像処理装置の画像を取得したり、本画像処理装置から他の画像処理装置へプログラムやパラメータ等を送信する処理も行うことができる。
【0027】
なお、上記図1〜図3に示したコントローラ2は、画像処理専用に開発された装置であるが、これに限らず、たとえば、画像処理用のプログラムがインストールされたパーソナルコンピュータを使用してもよい。この場合のプログラムは、CD−ROMなどの記憶媒体または通信回線を介してパーソナルコンピュータに提供される。
【0028】
(2) 画像処理装置の画面表示
図4は、本実施の形態の画像処理装置のメイン画面を示す。最上部には「ファイル」、「編集」、「表示」、「計測」、「ツール」、「システム」などのシステムメニューを表示するシステムメニューエリアが表示され、その下段には、本画像処理装置で頻繁に使用する作業をツールバーとして表示するツールバーエリアが表示され、さらにその下段には、計測結果、計測対象、再計測、表示切替に関連する情報を表示する計測情報表示エリアが表示される。そして、これらの下に後に詳述するレイアウト切替の設定によって表示が切り替わるレイアウト切替エリアが表示される。
【0029】
システムメニューエリアの「ファイル」は、コンソール4等を通じて選択されると下位の選択メニューとして「セーブ」と「変更履歴」と「シーン切替」を表示する。「セーブ」をすると設定した各種設定データのセーブ処理を行う。「変更履歴」を選択すると、変更履歴ダイアログを表示し、選択された履歴で設定をロードする。変更履歴ダイアログとは、過去に履歴保存された設定変更(保存日時、保存データ種別・分類、保存データファイル名)を一覧で表示するものである。保存データとしては、目的とする検査、判別のために、予め準備された複数の画像処理項目の中から処理項目を選んでそれらを所定の順序で組み合わせて作成されたフロー(シーンデータ)の番号あるいは名称を表示する。「シーン切替」は、選択されるとシーンデータの名称もしくは番号とそのシーンデータが属するグループ(シーングループ)の入力を受け付けるための画面を表示し、テキスト入力もしくはドロップダウンリストにより入力/選択されたシーングループのシーンデータを編集あるいは実行などの作業対象として切り替える。
【0030】
システムメニューエリアの「編集」は、コンソール4等を通じて選択されると下位の選択メニューとして「フロー編集」、「ノンストップ調整開始/終了」とその他処理項目の編集、プロパティ設定を行うための項目を表示する。
【0031】
「フロー編集」を選択すると、フロー編集ダイアログ画面が表示される(図5)。メイン画面で選択表示しているシーンの編集を行う画面である。ウィンドウの上部にはタイトルとして「フロー編集」と表示し、その下段にはツールボタンエリアが設けられ、フロー編集に必要な機能をボタンとして表示する。その下の左側には編集対象のフローをリスト形式で表示するフローエリアが設けられ、右側にはカメラ画像表示エリアが設けられる。最下段左側にはヘルプボタンが設けられ、選択されることにより操作マニュアルの画面を表示する。最下段右側には閉じるボタンが設けられ、選択されることにより、設定されたパラメータをメイン画面へ渡し、画面を閉じる。ツールボタンエリアのボタンには、処理ユニット(画像処理モジュール)を挿入するための「挿入」、処理ユニットのプロパティを設定するための「プロパティ」、処理ユニットを削除するための「削除」、処理ユニットをコピーするための「コピー」、処理ユニットをカットするための「カット」、処理ユニットをペーストするための「ペースト」(コピー/カットボタンが有効で無い場合、無効化ボタンとして機能する)、処理ユニットの位置を上へ移動する「移動(上へ)」、処理ユニットの位置を下へ移動する「移動(下へ)」が設けられる。フローエリアでは、処理ユニットアイコン(図5では、フローエリアの左端に縦に並んだ四角い箱で表示している)にて、処理ユニットに設定された処理項目に対応するイメージ(アイコン)を表示し、そのアイコンが選択されることで、その処理ユニットのプロパティを表示し、設定することができる。各アイコンの右側には処理ユニットの通し番号と処理ユニット名とが表示され、フローの最後はカーソル選択ができるようにエンドマーカを表示する。
【0032】
コントローラ2は、コンソール4を介した入力に応じて、図5に示されたような画面に表示されたフローに含まれる各処理ユニットの設定内容を編集する。
【0033】
フローの編集が完了すると、コントローラ2は、モニタ3に、図4に示したようなメイン画面が表示され、画像処理動作が可能な状態となる。
【0034】
なお、フローの編集の際には、画面のレイアウトの変更も可能である。メイン画面のレイアウトの変形例を図6に示す。
【0035】
図6では、レイアウト切替エリアの左側にはカメラ画像表示エリアが設定され、右側にはフロー表示エリアが設定される。フロー表示エリアには、計測対象の処理フローをリスト形式で表示する。処理ユニット毎にアイコンが設けられ、ボタンとなっており押下することで処理ユニットに対応する処理項目のプロパティ設定が可能となる。計測すると処理ユニット単位での計測結果(OK/NG)が表示される。NGとなったものについては「アイコン」、「計測結果」の少なくとも一方が他の処理ユニットとは異なる態様で表示される。図6では、アイコンにハッチングが付されて表示されている。
【0036】
図6では、各処理ユニット領域は選択可能であり、領域を選択することで「カメラ画像表示」エリアの画像が連動表示される。1枚画像表示の場合は、フローで選択した処理ユニットに対応する画像タブが選択表示され、複数画像表示の場合は、フローで選択した処理ユニットに対応する画像が含まれるページが表示される。但し、レイアウト設定により表示する画像を選択した場合は、選択した処理ユニットのみが表示対象なる。表示対象外とした処理ユニットは、フロー表示エリア内のアイコンの左側にある表示状態を示す色が非表示状態になる。画像処理装置起動時は、「0.カメラ画像入力」が選択状態となる。但し、レイアウト切替時には、処理ユニットの選択状態は変更されない。
【0037】
(3) 画像処理装置の機能構成
図7は、コントローラ2の機能構成を示す図である。
【0038】
図7を参照して、コントローラ2は、読込用プログラム起動部201と、画像リーダ202と、圧縮ファイルリーダ203と、設定データリーダ204と、計測制御部205と、マクロデバッガ206とを含む。各機能は、たとえば、CPU21がフラッシュメモリ22に格納されたプログラムを実行することにより実現される。
【0039】
図8は、フラッシュメモリ22に格納された情報のうち、本実施の形態において説明される画像処理装置の機能に関連する部分の構成を模式的に示す図である。
【0040】
図8を参照して、フラッシュメモリ22に格納される情報は、アプリケーションプログラムと、サンプルユニットのリストと、サンプルデータとを含む。
【0041】
アプリケーションプログラムは、コントローラ2によって実行されるプログラム開発支援アプリケーション(以下、単に「開発支援アプリ」ともいう)のプログラムである。サンプルユニットのリストは、「サンプルユニット」のリストを表示するための表示用データである。本実施の形態の開発支援アプリは、画像処理装置において実行されるユニットと同様の機能を実現するサンプルユニットを、デモンストレーションのような形態で実行させるアプリケーションである。なお、開発支援アプリでは、サンプルユニットのリストが表示され、そして、当該リストから選択されたサンプルユニットが実行される。そして、サンプルデータは、サンプルユニットを実行するためのデータである。サンプルデータは、A〜Nとして、サンプルユニットごとに、設けられている。なお、複数のサンプルユニットが、そのサンプルデータの一部を共有していても良い。
【0042】
図9は、サンプルデータの構成の一例を模式的に示す図である。
本実施の形態では、各サンプルデータは、圧縮ファイルの形式でフラッシュメモリ22に格納されている。そして、各サンプルデータは、画像データと、設定データと、読込用プログラムとを含む。
【0043】
画像データは、各サンプルデータが実行された際に、デモンストレーションとして実行される画像処理動作の対象として利用される画像データである。
【0044】
設定データは、サンプルユニットを実行するためのデータである。図10は、設定データの構成の一例を模式的に示す図である。
【0045】
図10を参照して、設定データは、フロー情報と、パラメータと、レイアウト情報とを含む。フロー情報は、サンプルユニットに含まれる画像処理モジュール(以下、適宜「処理ユニット」ともいう)を実現するための処理手順(プログラム)である。フロー情報は、プログラムであっても良いし、マクロであっても良い。パラメータは、上記フロー情報に係る処理手順が実行される際のパラメータのデフォルト値である。レイアウト情報は、図4や図6に示した計測画面において表示される要素のデフォルトのレイアウトを特定する情報である。レイアウト情報には、アドオンが導入されている場合も有り得る。
【0046】
図9に戻って、読込用プログラムは、各サンプルユニットを開始させるためのプログラムである。
【0047】
(4) 開発支援処理
以下、コントローラ2が実行する開発支援処理について説明する。開発支援処理とは、上記した開発支援アプリを実現するための処理である。
【0048】
図23は、コントローラ2において実行される、開発支援処理のフローチャートである。図23を参照して、CPU21は、コンソール4を介して開発支援アプリを起動するための操作がなされたことを検知すると、ステップS10で、開発支援アプリの初期動作を実行して、ステップS20へ処理を進める。ここで、初期動作とは、たとえばユニットを含まないフローの画面を表示する動作である。図11は、モニタ3における画面表示の一例である。初期動作により、モニタ3には、たとえば図11に示されるような画面が表示される。また、初期動作には、開発支援アプリのトップページのような画面を表示する動作を含む。当該トップページが表示された状態で、ユーザは、コンソール4に対して、サンプルユニットのリストを表示させるための操作を行なう。
【0049】
上記操作を受けて、CPU21は、サンプルユニットのリストを表示する。サンプルユニットのリストを表示する画面の一例を、図12に示す。
【0050】
図12に示された画面には、「カスタマイズ画面と従来画面を切替える」「カスタマイズした画面にスルー/フリーズを切り替えるボタンをつける」「無手順コマンド「IMGSAVE」をカスタマイズする」「手動でエラー信号をOFFする」「計測回数・良品個数・不良品個数をモニタ表示する」…といった、作業の目的を表す項目が列挙されている。各項目は、選択可能な態様で、表示される。ユーザは、各項目の目的を参照し、自己がユニットの作成を必要とする目的に基づいて、項目を選択する。
【0051】
当該画面に対して、コンソール4を介して1の項目が選択されると、CPU21は、選択された項目についての説明画面を表示する。図13〜図15は、図12の画面に表示された項目の1つである「計測回数・良品個数・不良品個数をモニタ表示する」が選択された際に表示される説明画面の一例を示す図である。なお、図14は、図13の画面の続きを示し、図15は、図14の画面の続きを示している。
【0052】
図13から図15に渡って示された説明画面には、「概要」「実現例」「実装方法」の項目が示されている。「概要」は、当該説明画面が対応するサンプルユニットが実行する処理の概要を示す。「実現例」は、サンプルユニットを実行させた際に表示される画面の内容の説明、および、サンプルユニットを実行させるための操作方法を含む。なお、図13中の画面イメージは、サンプルユニットが実行された際の表示画面の画像(図17参照)が挿入されているが、図13では、省略されて記載されている。「実装方法」は、画像処理装置において当該サンプルユニットが実現する機能を組み込むための方法である。当該方法は、当該機能を組み込むために必要な、シーンデータの構成と、プログラムの記述(ユーザインターフェース部品の処理)を含む。なお、図14および図15に示されたプログラムの記述には、(1)〜(7)で記述が指定されている。そして、当該プログラムの記述の下方には、(1)〜(7)に対応する各記述の処理内容の説明が、「解説」として記載されている。たとえば、(1)の記述について、「解説」では「(1)初期値を設定します。」と記載されている。このことは、プログラムの記述中の(1)で指定された部分(dataSet.unitNo=0)が、初期値を設定するための部分であることを示している。
【0053】
図13の「操作方法」の欄の下方に下線を付された「ファイル格納場所」という記述がある。当該記述は、本説明画面が対応するサンプルユニット(図8において「サンプルユニットA」〜「サンプルユニットN」のうちの1つに相当するもの)が保存されているディレクトリにリンクされている。そして、コンソール4を介して「ファイル格納場所」という記述が選択されると、CPU21は、リンクされているディレクトリの内容を表示させる。図16は、このようなディレクトリの内容を表示する画面の一例を示す図である。
【0054】
図16に示された画面では、「FZDemo_DisplayChart」というzip形式で圧縮されたフォルダが示されている。本実施の形態では、図16に示されたような、サンプルユニットの格納場所を表すフォルダの画像が、ドラッグされて、図11に示したような画面上にドロップされると、サンプルユニットが実行される。
【0055】
図8に戻って、CPU21は、ステップS20においてリストを表示させ、また、図13〜図16を参照して説明した一連の処理を実行した後、ステップS30において、サンプルユニットの格納場所を表すフォルダに対して上記の操作(ドラッグとドロップ)がなされたか否かを判断する。そして、そのような操作がなされたと判断すると、ステップS40へ処理を進める。
【0056】
ステップS40では、CPU21は、上記の操作の対象となったサンプルユニットを特定して、ステップS50へ処理を進める。
【0057】
ステップS50では、CPU21の圧縮ファイルリーダ203が、ステップS40で特定したサンプルユニットのサンプルデータの圧縮ファイル(図9参照)を展開した後、ステップS60へ処理が進められる。
【0058】
ステップS60では、CPU21の読込用プログラム起動部201が、ステップS50で展開したプログラムの中の読込用プログラムを起動させて、ステップS70へ処理が進められる。読込用プログラムは、サンプルユニットによる処理を実行させるための実行プログラムである。
【0059】
ステップS70では、CPU21の設定データリーダ204が、ステップS40で特定したサンプルユニットの設定データを読み込んだ後、ステップS80へ処理が進められる。
【0060】
ステップS80では、CPU21の計測制御部205が、サンプルユニットに従った画像処理(計測動作)を実行した後、ステップS90へ処理が進められる。
【0061】
ステップS90では、CPU21は、ステップS80における画像処理(計測動作)の結果を、モニタ3に表示する。このような結果を表示する画面の一例を、図17に示す。
【0062】
図17の画面は、総合結果表示ウィンドウ901と、情報表示ウィンドウ902と、画像表示ウィンドウ903と、ツールボタンウィンドウ904と、テスト計測ウィンドウ905と、フロー表示ウィンドウ906と、詳細結果表示ウィンドウ907とを含む。
【0063】
画像表示ウィンドウ903には、「ABC」という文字画像を含む画像が表示されている。当該画像は、ステップS40で特定されたサンプルユニットの画像データ(図9参照)に対応する画像である。そして、上記の画像処理は、当該画像を対象として実行される。
【0064】
また、フロー表示ウィンドウ906には、サンプルユニットに含まれる処理ユニット(画像処理モジュール)が示されている。具体的には、「カメラ画像入力」「サーチ」という2つの処理ユニットの名称と、各処理ユニットについての計測結果(OK/NG)が表示される。
【0065】
総合結果表示ウィンドウ901には、各処理ユニットについての計測結果に基づいた、総合的な計測結果が示されている。具体的には、すべての処理ユニットの計測結果がOKであればOKが示され、少なくとも1つの処理ユニットの計測結果がNGであれば、NGが表示される。
【0066】
情報表示ウィンドウ902には、計測条件等の情報が表示される。
詳細結果表示ウィンドウ907には、フロー表示ウィンドウ906に表示された処理ユニットのうち、選択された処理ユニットについての、詳細な計測結果が表示される。
【0067】
ツールボタンウィンドウ904には、サンプルユニットにおけるフローを編集(処理ユニットについての設定情報、処理ユニットの順序、等)を行なうためのメニューが表示されている。
【0068】
また、テスト計測ウィンドウ905には、「画像選択ボタン」と「再計測ボタン」が表示されている。
【0069】
画像選択ボタンは、当該サンプルユニットの処理対象となる画像を指定するために操作される。当該ボタンが操作されると、画像リーダ202は、指定された画像を読み込む。ここでは、カメラ1からの入力画像を選択することもできる。
【0070】
再計測ボタンは、計測制御部205に、その時点で指定されている画像に対して、実行中のサンプルユニットによる画像処理を再度実行させるためのボタンである。
【0071】
画像選択ボタンが操作されて、サンプルユニットに含まれる画像データ(図9参照)とは異なる画像が指定され、そして、再計測ボタンが操作されると、計測制御部205は、当該指定された画像を処理対象とした画像処理を実行する。
【0072】
また、図17の画面には、その上部に表示されている棒グラフ等の、種々のパーツが含まれる。ユーザは、コンソール4を介して、当該パーツのレイアウトを変更する情報を入力することができる。設定データリーダ204は、当該情報の入力を受付け、図17の画面表示を、入力された情報に従ってレイアウトを変更して、更新表示する。なお、設定データリーダ204は、当該入力された情報を、適宜フラッシュメモリ22に保存する。
【0073】
以上説明した本実施の形態では、図12に示されたようなリスト表示から、ユーザは、所望する目的を選択する。これにより、当該目的に対応するサンプルユニットの説明画面が表示される(図13〜図15)。そして、サンプルユニットのプログラムを保存するフォルダのリンクが選択されると、当該フォルダを含むディレクトリが表示され(図16)、そして、当該フォルダの画像が、初期動作で表示された画面(図11)上にドロップされると、サンプルユニットが実行される。サンプルユニットは、1以上の画像処理モジュール(処理ユニット)を含む。そして、サンプルユニットが実行されることにより、たとえばデフォルトで格納されている画像データに対して、各処理ユニットによって規定される処理が実行される。そして、サンプルユニットの実行の結果が、モニタ3に表示される(図17)。
【0074】
以上説明した本実施の形態によれば、ユーザは、サンプルユニットを実行することにより、サンプルユニットの内容を認識する。また、ユーザは、サンプルユニットの説明画面を視認することにより、上記のサンプルユニットの内容を実現するためのプログラムの記述を認識する。これにより、ユーザは、自身が所望する画像処理動作とサンプルプログラムによって実現される画像処理動作の差異に検討し、当該差異を補うために上記説明画面に表示されたプログラムの記述を変更することによってプログラムを作成することにより、容易に、自己が所望する画像処理動作のためのプログラムの記述を作成することができる。
【0075】
なお、本実施の形態では、サンプルデータとして記憶される各サンプルユニット(図8参照)のうち、サンプルユニットを実行させるための部分(図9を参照して説明したサンプルデータ)により、特定プログラムが実行される。また、図13〜図15を参照して説明したような説明画面を表示させるための部分により、特定プログラムの記述を画面に表示させるためのデータが構成される。
【0076】
(5) 変形例等
以上説明した開発支援処理では、サンプルユニットとしてユーザが指定した目的に沿ったプログラムが実行された。なお、上記したように、サンプルユニットの設定データに含まれるフロー情報(図10)は、プログラムである場合もあれば、マクロを含む場合もある。フロー情報がマクロである場合の開発支援処理について、以下、説明する。
【0077】
図18は、開発支援処理のステップS20で表示されるリストの変形例を示す図である。
【0078】
図18の画面では、「計測結果画面に図形を追加する」「エッジ位置結果から近似円を算出する」等の、サンプルユニットとして格納されているマクロが実行される目的を示す項目が列挙されている。そして、コンソール4を介して、これらのうちの1を選択する操作がなされると(ステップS30でYES)、CPU21は、選択された目的に対応するマクロの説明画面を表示させる。その表示画面の一例を、図19〜図20に示す。
【0079】
図19〜図20に示された画面には、図18の画面において「計測結果画面に図形を追加する」という項目が選択された際の画面が示されている。なお、図20の画面は、図19の画面の続きを示している。
【0080】
当該説明画面は、図13〜図15を参照して説明した説明画面と同様に、「概要」「実現例」「実装方法」という項目を含む。
【0081】
「概要」は、当該説明画面が対応するサンプルユニットが実行する処理の概要を示す。「実現例」は、サンプルユニットを実行させた際に表示される画面の内容の説明、および、サンプルユニットを実行させるための操作方法を含む。なお、図19中の画面イメージは、サンプルユニットが実行された際の表示画面の画像(図21参照)が挿入されているが、図19では、省略されて記載されている。「実装方法」は、画像処理装置において当該サンプルユニットが実現する機能を組み込むための方法である。当該方法は、当該機能を組み込むために必要な、シーンデータの構成と、マクロプログラムの記述を含む。なお、図20に示されたマクロプログラムの記述には、(1)〜(3)で記述が指定されている。そして、当該マクロプログラムの記述の下方には、(1)〜(3)に対応する各記述の処理内容の説明が、「解説」として記載されている。たとえば、(1)の記述について、「解説」では「(1)表示させたい処理ユニット番号(本サンプルではNO.1の[サーチ])を設定します。」と記載されている。このことは、図20のマクロプログラムの記述中の(1)で指定された部分(MeasureDispG_1.0)が、計測結果に図形を追加して表示することを希望する処理ユニット番号を設定するための部分であることを示している。
【0082】
そして、図19の「操作方法」の欄の下方に下線を付された「ファイル格納場所」という記述がある。当該記述は、本説明画面が対応するサンプルユニット(図8において「サンプルユニットA」〜「サンプルユニットN」のうちの1つに相当するもの)が保存されているディレクトリにリンクされている。そして、コンソール4を介して「ファイル格納場所」という記述が選択されると、CPU21は、リンクされているディレクトリの内容を表示させる。
【0083】
当該ディレクトリには、図20に示されたようなマクロプログラムを含むサンプルユニットが格納されている。
【0084】
本変形例において、マクロプログラムが格納されるディレクトリを表すフォルダの画像がドラッグされて、図11に示されたような画面上にドロップされると、図17を参照して説明したのと同様に、対応するサンプルユニットの実行による計測結果を示す画面が表示される。また、図21には、図17の画面と同様に、総合結果表示ウィンドウ901と、情報表示ウィンドウ902と、画像表示ウィンドウ903と、ツールボタンウィンドウ904と、テスト計測ウィンドウ905と、フロー表示ウィンドウ906と、詳細結果表示ウィンドウ907とが含まれる。
【0085】
そして、図21では、画像表示ウィンドウ903には、当該マクロが実行されることによって表示される画像(四角形の画像および当該四角形の画像の中心を示す十字形の画像)が示されている。
【0086】
本変形例では、リスト表示から項目が選択されると、当該項目に対応した説明画面が表示された。なお、開発支援処理では、リスト表示とともに、または、開発支援アプリの初期画面等において、図22に示されたような、サンプルユニットのマクロプログラムが格納されるディレクトリに表示されたフォルダの画像に対してどのような操作をすることによって、サンプルユニットが実行されるかを説明する画面が表示されても良い。
【0087】
以上説明した本変形例によれば、ユーザは、サンプルユニットを実行することにより、サンプルユニットの内容を認識する。また、ユーザは、サンプルユニットの説明画面を視認することにより、上記のサンプルユニットの内容を実現するためのマクロプログラムの記述を認識する。これにより、ユーザは、自身が所望する画像処理動作とサンプルとして挙げられたマクロプログラムによって実現される画像処理動作の差異に検討し、当該差異を補うために上記説明画面に表示されたマクロプログラムの記述を利用して、マクロプログラムを作成することができる。これにより、容易に、自己が所望する画像処理動作のためのマクロプログラムの記述を作成することができる。
【0088】
なお、マクロデバッガ206は、作成されたマクロプログラムの記述に対してデバッグを行なう。
【0089】
今回開示された各実施の形態およびその変形例はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【0090】
また、各実施の形態およびその変形例は、単独でも、また必要に応じて適宜組み合わされて、実施されることが意図される。
【符号の説明】
【0091】
1 カメラ、2 コントローラ、3 モニタ、4 コンソール、5 センサ、7 計測対象物、22 フラッシュメモリ、23 RAM、24 グラフィックコントローラ、25 カメラ用インターフェース、26 入力用インターフェース、27 外部用インターフェース、201 読込用プログラム起動部、202 画像リーダ、203 圧縮ファイルリーダ、204 設定データリーダ、205 計測制御部、206 マクロデバッガ。
【技術分野】
【0001】
本発明は、開発支援装置および開発支援プログラムに関し、特に、計測対象物の画像に対して画像処理を行なうことにより検査や判別を行なう画像処理装置を含むシステムにおける画像処理装置で実行されるプログラムの開発に関する。
【背景技術】
【0002】
従来から、画像処理装置で実行させるプログラムの開発に際し、処理内容の構成単位であるオブジェクトプログラムや画像処理モジュールなどを予め準備して用いられていた。なお、画像処理装置における物品の計測態様の多様化などに伴い、プログラムの開発についてより柔軟にカスタマイズできることが希望されるようになってきている。
【0003】
この点、たとえば特許文献1(特開2009−59203号公報)では、複数個の画像処理モジュールを記憶する記憶部にユーザの操作に従って作成された新たな画像処理モジュールを追加して記憶し、そして、当該記憶部に記憶されている画像処理モジュールのうち複数の画像処理モジュールの実行順序をユーザの操作に従って決定して基本フローを作成する技術が開示されている。
【0004】
また、特許文献2(特開2009−87144号公報)には、記憶部に記憶させる複数の画像処理モジュールとして、画像処理機能を特定する第1画像処理モジュールと、第1画像処理モジュールに対する設定情報の入力に利用される画面を表示するための情報である第2画像処理モジュールとを含み、そして、第2画像処理モジュールに基づいて表示された画面に対して入力された情報に基づいて、第1画像処理モジュールに対して画像処理動作の設定を行なうことにより画像処理機能をカスタマイズする技術が開示されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2009−59203号公報
【特許文献2】特開2009−87144号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
上記したような従来の技術によれば、特許文献2に記載の技術に従って画像処理機能をカスタマイズし、また、特許文献1に記載の技術に従って、予め利用された画像処理モジュールを利用しつつ、必要な画像処理モジュールのみを作成すれば、希望に沿う基本フローを作成できる。
【0007】
しかしながら、特許文献1に開示されたような画像処理モジュールの作成には、個々の処理の内容を記述したソースコードの作成を要する。このため、システムインテグレータ(SI)にかかる負担が大きすぎるという問題があった。一方、画像処理装置のメーカにおいて個々の顧客の希望に沿うようなプログラム開発を行なった場合、コストの面で採算が取れなくなるという問題が生じる。
【0008】
本発明は、かかる実情に鑑み考え出されたものであり、その目的は、画像処理装置において実行されるプログラムの開発を容易にすることができる開発支援装置および開発支援プログラムを提供することである。
【課題を解決するための手段】
【0009】
本発明に従った開発支援装置は、特定の画像処理を実現するための特定プログラムを記憶するための記憶手段と、外部からの操作を受け付けるための受付手段と、受付手段が特定の操作を受け付けたことに応じて、特定プログラムを実行するための実行手段とを備え、記憶手段は、特定プログラムの記述を画面に表示させるためのデータである画面表示用データを記憶し、実行手段は、受付手段が特定の操作を受け付けたことに応じて、さらに、画面表示用データを用いて特定プログラムの記述を表示させる。
【0010】
好ましくは、記憶手段は、特定プログラムに関する説明を画面の表示させるためのデータである説明用データをさらに記憶し、実行手段は、特定の操作に応じて、さらに、説明用データを用いて特定プログラムに関する説明を表示させる。
【0011】
好ましくは、特定の操作は、記述および説明を表示させるための第1の操作と、特定プログラムを実行するための第2の操作とを含む。
【0012】
好ましくは、実行手段は、特定プログラムの設定の変更を受け付け、当該変更内容を記憶手段に記憶する。
【0013】
本発明に従った開発支援プログラムは、特定の画像処理を実現するための特定プログラムを記憶するための記憶手段を備えたコンピュータによって実行される開発支援プログラムであって、記憶手段は、特定プログラムの記述を画面に表示させるためのデータである画面表示用データを記憶し、開発支援プログラムは、コンピュータに、外部からの操作を受け付けるステップと、特定の操作を受け付けたことに応じて、画面表示用データを用いて特定プログラムの記述を表示させるステップと、特定プログラムを実行するステップとを実行させる。
【発明の効果】
【0014】
本発明によれば、特定プログラムが実行され、また、当該特定プログラムの記述を表示される。
【0015】
これにより、ユーザは、特定プログラムの処理内容と、当該処理内容を実現するためのプログラムの記述の双方を認識できる。
【図面の簡単な説明】
【0016】
【図1】本発明が適用される画像処理装置の設置例を示す図である。
【図2】画像処理装置の外部構成の概略を示す図である。
【図3】画像処理装置の電気構成を示す図である。
【図4】本実施の形態の画像処理装置のメイン画面を示す図である。
【図5】本実施の形態の画像処理装置のフロー編集ダイアログ画面を示す図である。
【図6】図4のメイン画面の変形例を示す図である。
【図7】図3のコントローラの機能構成を示す図である。
【図8】図3のフラッシュメモリに格納された情報の構成を模式的に示す図である。
【図9】サンプルデータの構成の一例を模式的に示す図である。
【図10】設定データの構成の一例を模式的に示す図である。
【図11】図1のモニタにおける画面表示の一例を示す図である。
【図12】図1のモニタにおける画面表示の他の例を示す図である。
【図13】図1のモニタに表示される説明画面の一例を示す図である。
【図14】図1のモニタに表示される説明画面の一例を示す図である。
【図15】図1のモニタに表示される説明画面の一例を示す図である。
【図16】図の画像処理装置のフラッシュメモリ内のディレクトリの内容を表示する画面の一例を示す図である。
【図17】図1のモニタにおける画面表示のさらに他の例を示す図である。
【図18】開発支援処理で表示されるリストの変形例を示す図である。
【図19】図1のモニタに表示される説明画面の他の例を示す図である。
【図20】図1のモニタに表示される説明画面の他の例を示す図である。
【図21】図1のモニタにおける画面表示の別の例を示す図である。
【図22】図1のモニタにおける画面表示のさらに別の例を示す図である。
【図23】コントローラ2において実行される、開発支援処理のフローチャートである。
【発明を実施するための形態】
【0017】
以下、本発明の検査装置の一実施の形態について、図面を参照しつつ説明する。なお、同一の構成要素には各図において同一の符号を付し、詳細な説明は繰返さない。
【0018】
(1) 画像処理装置の構成
図1は、本発明が適用される画像処理装置の設置例を示す。
【0019】
本実施の形態の画像処理装置は、カメラ1、コントローラ2、モニタ3、コンソール4などにより構成されており、工場の検査ラインLにおいて、搬送されてくるワークWを順に撮像してカラー画像を生成し、その画像を処理することによって、前記ワークW上の計測対象物7(マーク、文字、欠陥など)の位置、姿勢、大きさなどの適否を判別する。尚、コンソール4はマウスやキーボード、タッチパネルなど操作者がCPU(Central Processing Unit)21に指示を送るために用いることができる機器であればその形態は限定されない。カメラ1は1台に限定されず複数台接続することができる。
【0020】
図2は、画像処理装置の外部構成の概略を示す。また、図3は、画像処理装置の電気構成を示す。
【0021】
コントローラ2は、本実施の形態における開発支援装置の一例である。そして、コントローラ2は、CPU21を制御主体として、フラッシュメモリ22、RAM(Random Access Memory)23、グラフィックコントローラ24、カメラ用インターフェース25、入力用インターフェース26、外部用インターフェース27などを具備する。
【0022】
フラッシュメモリ22には、プログラムや処理に必要なパラメータなどが格納され、RAM23には、画像データや途中の演算結果などが一時保存される。
【0023】
CPU21が本実施の形態で述べられる機能を実現するために実行するプログラムは、フラッシュメモリ22に記憶されていても良いし、画像処理装置に対して着脱可能な記憶媒体に記録されていても良い。記憶媒体としては、CD−ROM(Compact Disc - Read Only Memory)、DVD−ROM(Digital Versatile Disk - Read Only Memory)、USB(Universal Serial Bus)メモリ、メモリカード、FD(Flexible Disk)、ハードディスク、磁気テープ、カセットテープ、MO(Magnetic Optical Disc)、MD(Mini Disc)、IC(Integrated Circuit)カード(メモリカードを除く)、光カード、マスクROM、EPROM、EEPROM(Electronically Erasable Programmable Read-Only Memory)などの、不揮発的にプログラムを格納する媒体が挙げられる。
【0024】
カメラ用インターフェース25には、前記カメラ1の駆動回路や、R,G,Bの各画像信号を受け付けるためのバッファ、A/D変換回路(いずれも図示せず。)などが含まれる。入力用インターフェース26は、前記コンソール4からの信号を受け付けるためのものである。外部用インターフェース27は、図示しない外部機器(パーソナルコンピュータ、PLCなど)と通信する際に使用される。グラフィックコントローラ24は、前記モニタに対する表示制御を実行する。
【0025】
外部用I/F(インターフェース)には、PLC(Power Line Communication)やパソコン(パーソナルコンピュータ)が接続されるが、ネットワークを介して他の画像処理装置と互いに接続することも可能である。
【0026】
前記CPU21は、フラッシュメモリ22やRAM23に格納されているプログラムやパラメータなどをモニタ3に表示させたり、コンソール4や外部用I/F27から入力されるデータをフラッシュメモリ22やRAM23に格納する。また、ワーク検出用のセンサ5(光電スイッチ、近接スイッチなど)が接続されている。CPU21は、このセンサ5からワークWを検出した旨を示す信号を入力すると、カメラ用インターフェース25を用いてカメラ1を駆動し、前記ワークWを撮像させる。そして前記ワークWのカラー濃淡画像(以下、「処理対象画像」という。)が生成され、RAM23に保存されると、CPU21は、前記フラッシュメモリ22に記憶されたプログラムに基づき、前記計測対象物7を抽出する処理や、抽出された計測対象物7に対する計測処理を実行し、さらにその計測結果に基づき、計測対象物の良否を判定する。また、処理結果の画像(以下、「処理画像」)や計測処理結果のデータをフラッシュメモリ22やRAM23に格納する。さらに、外部用I/F27を通じてネットワークで接続された他の画像処理装置の画像を取得したり、本画像処理装置から他の画像処理装置へプログラムやパラメータ等を送信する処理も行うことができる。
【0027】
なお、上記図1〜図3に示したコントローラ2は、画像処理専用に開発された装置であるが、これに限らず、たとえば、画像処理用のプログラムがインストールされたパーソナルコンピュータを使用してもよい。この場合のプログラムは、CD−ROMなどの記憶媒体または通信回線を介してパーソナルコンピュータに提供される。
【0028】
(2) 画像処理装置の画面表示
図4は、本実施の形態の画像処理装置のメイン画面を示す。最上部には「ファイル」、「編集」、「表示」、「計測」、「ツール」、「システム」などのシステムメニューを表示するシステムメニューエリアが表示され、その下段には、本画像処理装置で頻繁に使用する作業をツールバーとして表示するツールバーエリアが表示され、さらにその下段には、計測結果、計測対象、再計測、表示切替に関連する情報を表示する計測情報表示エリアが表示される。そして、これらの下に後に詳述するレイアウト切替の設定によって表示が切り替わるレイアウト切替エリアが表示される。
【0029】
システムメニューエリアの「ファイル」は、コンソール4等を通じて選択されると下位の選択メニューとして「セーブ」と「変更履歴」と「シーン切替」を表示する。「セーブ」をすると設定した各種設定データのセーブ処理を行う。「変更履歴」を選択すると、変更履歴ダイアログを表示し、選択された履歴で設定をロードする。変更履歴ダイアログとは、過去に履歴保存された設定変更(保存日時、保存データ種別・分類、保存データファイル名)を一覧で表示するものである。保存データとしては、目的とする検査、判別のために、予め準備された複数の画像処理項目の中から処理項目を選んでそれらを所定の順序で組み合わせて作成されたフロー(シーンデータ)の番号あるいは名称を表示する。「シーン切替」は、選択されるとシーンデータの名称もしくは番号とそのシーンデータが属するグループ(シーングループ)の入力を受け付けるための画面を表示し、テキスト入力もしくはドロップダウンリストにより入力/選択されたシーングループのシーンデータを編集あるいは実行などの作業対象として切り替える。
【0030】
システムメニューエリアの「編集」は、コンソール4等を通じて選択されると下位の選択メニューとして「フロー編集」、「ノンストップ調整開始/終了」とその他処理項目の編集、プロパティ設定を行うための項目を表示する。
【0031】
「フロー編集」を選択すると、フロー編集ダイアログ画面が表示される(図5)。メイン画面で選択表示しているシーンの編集を行う画面である。ウィンドウの上部にはタイトルとして「フロー編集」と表示し、その下段にはツールボタンエリアが設けられ、フロー編集に必要な機能をボタンとして表示する。その下の左側には編集対象のフローをリスト形式で表示するフローエリアが設けられ、右側にはカメラ画像表示エリアが設けられる。最下段左側にはヘルプボタンが設けられ、選択されることにより操作マニュアルの画面を表示する。最下段右側には閉じるボタンが設けられ、選択されることにより、設定されたパラメータをメイン画面へ渡し、画面を閉じる。ツールボタンエリアのボタンには、処理ユニット(画像処理モジュール)を挿入するための「挿入」、処理ユニットのプロパティを設定するための「プロパティ」、処理ユニットを削除するための「削除」、処理ユニットをコピーするための「コピー」、処理ユニットをカットするための「カット」、処理ユニットをペーストするための「ペースト」(コピー/カットボタンが有効で無い場合、無効化ボタンとして機能する)、処理ユニットの位置を上へ移動する「移動(上へ)」、処理ユニットの位置を下へ移動する「移動(下へ)」が設けられる。フローエリアでは、処理ユニットアイコン(図5では、フローエリアの左端に縦に並んだ四角い箱で表示している)にて、処理ユニットに設定された処理項目に対応するイメージ(アイコン)を表示し、そのアイコンが選択されることで、その処理ユニットのプロパティを表示し、設定することができる。各アイコンの右側には処理ユニットの通し番号と処理ユニット名とが表示され、フローの最後はカーソル選択ができるようにエンドマーカを表示する。
【0032】
コントローラ2は、コンソール4を介した入力に応じて、図5に示されたような画面に表示されたフローに含まれる各処理ユニットの設定内容を編集する。
【0033】
フローの編集が完了すると、コントローラ2は、モニタ3に、図4に示したようなメイン画面が表示され、画像処理動作が可能な状態となる。
【0034】
なお、フローの編集の際には、画面のレイアウトの変更も可能である。メイン画面のレイアウトの変形例を図6に示す。
【0035】
図6では、レイアウト切替エリアの左側にはカメラ画像表示エリアが設定され、右側にはフロー表示エリアが設定される。フロー表示エリアには、計測対象の処理フローをリスト形式で表示する。処理ユニット毎にアイコンが設けられ、ボタンとなっており押下することで処理ユニットに対応する処理項目のプロパティ設定が可能となる。計測すると処理ユニット単位での計測結果(OK/NG)が表示される。NGとなったものについては「アイコン」、「計測結果」の少なくとも一方が他の処理ユニットとは異なる態様で表示される。図6では、アイコンにハッチングが付されて表示されている。
【0036】
図6では、各処理ユニット領域は選択可能であり、領域を選択することで「カメラ画像表示」エリアの画像が連動表示される。1枚画像表示の場合は、フローで選択した処理ユニットに対応する画像タブが選択表示され、複数画像表示の場合は、フローで選択した処理ユニットに対応する画像が含まれるページが表示される。但し、レイアウト設定により表示する画像を選択した場合は、選択した処理ユニットのみが表示対象なる。表示対象外とした処理ユニットは、フロー表示エリア内のアイコンの左側にある表示状態を示す色が非表示状態になる。画像処理装置起動時は、「0.カメラ画像入力」が選択状態となる。但し、レイアウト切替時には、処理ユニットの選択状態は変更されない。
【0037】
(3) 画像処理装置の機能構成
図7は、コントローラ2の機能構成を示す図である。
【0038】
図7を参照して、コントローラ2は、読込用プログラム起動部201と、画像リーダ202と、圧縮ファイルリーダ203と、設定データリーダ204と、計測制御部205と、マクロデバッガ206とを含む。各機能は、たとえば、CPU21がフラッシュメモリ22に格納されたプログラムを実行することにより実現される。
【0039】
図8は、フラッシュメモリ22に格納された情報のうち、本実施の形態において説明される画像処理装置の機能に関連する部分の構成を模式的に示す図である。
【0040】
図8を参照して、フラッシュメモリ22に格納される情報は、アプリケーションプログラムと、サンプルユニットのリストと、サンプルデータとを含む。
【0041】
アプリケーションプログラムは、コントローラ2によって実行されるプログラム開発支援アプリケーション(以下、単に「開発支援アプリ」ともいう)のプログラムである。サンプルユニットのリストは、「サンプルユニット」のリストを表示するための表示用データである。本実施の形態の開発支援アプリは、画像処理装置において実行されるユニットと同様の機能を実現するサンプルユニットを、デモンストレーションのような形態で実行させるアプリケーションである。なお、開発支援アプリでは、サンプルユニットのリストが表示され、そして、当該リストから選択されたサンプルユニットが実行される。そして、サンプルデータは、サンプルユニットを実行するためのデータである。サンプルデータは、A〜Nとして、サンプルユニットごとに、設けられている。なお、複数のサンプルユニットが、そのサンプルデータの一部を共有していても良い。
【0042】
図9は、サンプルデータの構成の一例を模式的に示す図である。
本実施の形態では、各サンプルデータは、圧縮ファイルの形式でフラッシュメモリ22に格納されている。そして、各サンプルデータは、画像データと、設定データと、読込用プログラムとを含む。
【0043】
画像データは、各サンプルデータが実行された際に、デモンストレーションとして実行される画像処理動作の対象として利用される画像データである。
【0044】
設定データは、サンプルユニットを実行するためのデータである。図10は、設定データの構成の一例を模式的に示す図である。
【0045】
図10を参照して、設定データは、フロー情報と、パラメータと、レイアウト情報とを含む。フロー情報は、サンプルユニットに含まれる画像処理モジュール(以下、適宜「処理ユニット」ともいう)を実現するための処理手順(プログラム)である。フロー情報は、プログラムであっても良いし、マクロであっても良い。パラメータは、上記フロー情報に係る処理手順が実行される際のパラメータのデフォルト値である。レイアウト情報は、図4や図6に示した計測画面において表示される要素のデフォルトのレイアウトを特定する情報である。レイアウト情報には、アドオンが導入されている場合も有り得る。
【0046】
図9に戻って、読込用プログラムは、各サンプルユニットを開始させるためのプログラムである。
【0047】
(4) 開発支援処理
以下、コントローラ2が実行する開発支援処理について説明する。開発支援処理とは、上記した開発支援アプリを実現するための処理である。
【0048】
図23は、コントローラ2において実行される、開発支援処理のフローチャートである。図23を参照して、CPU21は、コンソール4を介して開発支援アプリを起動するための操作がなされたことを検知すると、ステップS10で、開発支援アプリの初期動作を実行して、ステップS20へ処理を進める。ここで、初期動作とは、たとえばユニットを含まないフローの画面を表示する動作である。図11は、モニタ3における画面表示の一例である。初期動作により、モニタ3には、たとえば図11に示されるような画面が表示される。また、初期動作には、開発支援アプリのトップページのような画面を表示する動作を含む。当該トップページが表示された状態で、ユーザは、コンソール4に対して、サンプルユニットのリストを表示させるための操作を行なう。
【0049】
上記操作を受けて、CPU21は、サンプルユニットのリストを表示する。サンプルユニットのリストを表示する画面の一例を、図12に示す。
【0050】
図12に示された画面には、「カスタマイズ画面と従来画面を切替える」「カスタマイズした画面にスルー/フリーズを切り替えるボタンをつける」「無手順コマンド「IMGSAVE」をカスタマイズする」「手動でエラー信号をOFFする」「計測回数・良品個数・不良品個数をモニタ表示する」…といった、作業の目的を表す項目が列挙されている。各項目は、選択可能な態様で、表示される。ユーザは、各項目の目的を参照し、自己がユニットの作成を必要とする目的に基づいて、項目を選択する。
【0051】
当該画面に対して、コンソール4を介して1の項目が選択されると、CPU21は、選択された項目についての説明画面を表示する。図13〜図15は、図12の画面に表示された項目の1つである「計測回数・良品個数・不良品個数をモニタ表示する」が選択された際に表示される説明画面の一例を示す図である。なお、図14は、図13の画面の続きを示し、図15は、図14の画面の続きを示している。
【0052】
図13から図15に渡って示された説明画面には、「概要」「実現例」「実装方法」の項目が示されている。「概要」は、当該説明画面が対応するサンプルユニットが実行する処理の概要を示す。「実現例」は、サンプルユニットを実行させた際に表示される画面の内容の説明、および、サンプルユニットを実行させるための操作方法を含む。なお、図13中の画面イメージは、サンプルユニットが実行された際の表示画面の画像(図17参照)が挿入されているが、図13では、省略されて記載されている。「実装方法」は、画像処理装置において当該サンプルユニットが実現する機能を組み込むための方法である。当該方法は、当該機能を組み込むために必要な、シーンデータの構成と、プログラムの記述(ユーザインターフェース部品の処理)を含む。なお、図14および図15に示されたプログラムの記述には、(1)〜(7)で記述が指定されている。そして、当該プログラムの記述の下方には、(1)〜(7)に対応する各記述の処理内容の説明が、「解説」として記載されている。たとえば、(1)の記述について、「解説」では「(1)初期値を設定します。」と記載されている。このことは、プログラムの記述中の(1)で指定された部分(dataSet.unitNo=0)が、初期値を設定するための部分であることを示している。
【0053】
図13の「操作方法」の欄の下方に下線を付された「ファイル格納場所」という記述がある。当該記述は、本説明画面が対応するサンプルユニット(図8において「サンプルユニットA」〜「サンプルユニットN」のうちの1つに相当するもの)が保存されているディレクトリにリンクされている。そして、コンソール4を介して「ファイル格納場所」という記述が選択されると、CPU21は、リンクされているディレクトリの内容を表示させる。図16は、このようなディレクトリの内容を表示する画面の一例を示す図である。
【0054】
図16に示された画面では、「FZDemo_DisplayChart」というzip形式で圧縮されたフォルダが示されている。本実施の形態では、図16に示されたような、サンプルユニットの格納場所を表すフォルダの画像が、ドラッグされて、図11に示したような画面上にドロップされると、サンプルユニットが実行される。
【0055】
図8に戻って、CPU21は、ステップS20においてリストを表示させ、また、図13〜図16を参照して説明した一連の処理を実行した後、ステップS30において、サンプルユニットの格納場所を表すフォルダに対して上記の操作(ドラッグとドロップ)がなされたか否かを判断する。そして、そのような操作がなされたと判断すると、ステップS40へ処理を進める。
【0056】
ステップS40では、CPU21は、上記の操作の対象となったサンプルユニットを特定して、ステップS50へ処理を進める。
【0057】
ステップS50では、CPU21の圧縮ファイルリーダ203が、ステップS40で特定したサンプルユニットのサンプルデータの圧縮ファイル(図9参照)を展開した後、ステップS60へ処理が進められる。
【0058】
ステップS60では、CPU21の読込用プログラム起動部201が、ステップS50で展開したプログラムの中の読込用プログラムを起動させて、ステップS70へ処理が進められる。読込用プログラムは、サンプルユニットによる処理を実行させるための実行プログラムである。
【0059】
ステップS70では、CPU21の設定データリーダ204が、ステップS40で特定したサンプルユニットの設定データを読み込んだ後、ステップS80へ処理が進められる。
【0060】
ステップS80では、CPU21の計測制御部205が、サンプルユニットに従った画像処理(計測動作)を実行した後、ステップS90へ処理が進められる。
【0061】
ステップS90では、CPU21は、ステップS80における画像処理(計測動作)の結果を、モニタ3に表示する。このような結果を表示する画面の一例を、図17に示す。
【0062】
図17の画面は、総合結果表示ウィンドウ901と、情報表示ウィンドウ902と、画像表示ウィンドウ903と、ツールボタンウィンドウ904と、テスト計測ウィンドウ905と、フロー表示ウィンドウ906と、詳細結果表示ウィンドウ907とを含む。
【0063】
画像表示ウィンドウ903には、「ABC」という文字画像を含む画像が表示されている。当該画像は、ステップS40で特定されたサンプルユニットの画像データ(図9参照)に対応する画像である。そして、上記の画像処理は、当該画像を対象として実行される。
【0064】
また、フロー表示ウィンドウ906には、サンプルユニットに含まれる処理ユニット(画像処理モジュール)が示されている。具体的には、「カメラ画像入力」「サーチ」という2つの処理ユニットの名称と、各処理ユニットについての計測結果(OK/NG)が表示される。
【0065】
総合結果表示ウィンドウ901には、各処理ユニットについての計測結果に基づいた、総合的な計測結果が示されている。具体的には、すべての処理ユニットの計測結果がOKであればOKが示され、少なくとも1つの処理ユニットの計測結果がNGであれば、NGが表示される。
【0066】
情報表示ウィンドウ902には、計測条件等の情報が表示される。
詳細結果表示ウィンドウ907には、フロー表示ウィンドウ906に表示された処理ユニットのうち、選択された処理ユニットについての、詳細な計測結果が表示される。
【0067】
ツールボタンウィンドウ904には、サンプルユニットにおけるフローを編集(処理ユニットについての設定情報、処理ユニットの順序、等)を行なうためのメニューが表示されている。
【0068】
また、テスト計測ウィンドウ905には、「画像選択ボタン」と「再計測ボタン」が表示されている。
【0069】
画像選択ボタンは、当該サンプルユニットの処理対象となる画像を指定するために操作される。当該ボタンが操作されると、画像リーダ202は、指定された画像を読み込む。ここでは、カメラ1からの入力画像を選択することもできる。
【0070】
再計測ボタンは、計測制御部205に、その時点で指定されている画像に対して、実行中のサンプルユニットによる画像処理を再度実行させるためのボタンである。
【0071】
画像選択ボタンが操作されて、サンプルユニットに含まれる画像データ(図9参照)とは異なる画像が指定され、そして、再計測ボタンが操作されると、計測制御部205は、当該指定された画像を処理対象とした画像処理を実行する。
【0072】
また、図17の画面には、その上部に表示されている棒グラフ等の、種々のパーツが含まれる。ユーザは、コンソール4を介して、当該パーツのレイアウトを変更する情報を入力することができる。設定データリーダ204は、当該情報の入力を受付け、図17の画面表示を、入力された情報に従ってレイアウトを変更して、更新表示する。なお、設定データリーダ204は、当該入力された情報を、適宜フラッシュメモリ22に保存する。
【0073】
以上説明した本実施の形態では、図12に示されたようなリスト表示から、ユーザは、所望する目的を選択する。これにより、当該目的に対応するサンプルユニットの説明画面が表示される(図13〜図15)。そして、サンプルユニットのプログラムを保存するフォルダのリンクが選択されると、当該フォルダを含むディレクトリが表示され(図16)、そして、当該フォルダの画像が、初期動作で表示された画面(図11)上にドロップされると、サンプルユニットが実行される。サンプルユニットは、1以上の画像処理モジュール(処理ユニット)を含む。そして、サンプルユニットが実行されることにより、たとえばデフォルトで格納されている画像データに対して、各処理ユニットによって規定される処理が実行される。そして、サンプルユニットの実行の結果が、モニタ3に表示される(図17)。
【0074】
以上説明した本実施の形態によれば、ユーザは、サンプルユニットを実行することにより、サンプルユニットの内容を認識する。また、ユーザは、サンプルユニットの説明画面を視認することにより、上記のサンプルユニットの内容を実現するためのプログラムの記述を認識する。これにより、ユーザは、自身が所望する画像処理動作とサンプルプログラムによって実現される画像処理動作の差異に検討し、当該差異を補うために上記説明画面に表示されたプログラムの記述を変更することによってプログラムを作成することにより、容易に、自己が所望する画像処理動作のためのプログラムの記述を作成することができる。
【0075】
なお、本実施の形態では、サンプルデータとして記憶される各サンプルユニット(図8参照)のうち、サンプルユニットを実行させるための部分(図9を参照して説明したサンプルデータ)により、特定プログラムが実行される。また、図13〜図15を参照して説明したような説明画面を表示させるための部分により、特定プログラムの記述を画面に表示させるためのデータが構成される。
【0076】
(5) 変形例等
以上説明した開発支援処理では、サンプルユニットとしてユーザが指定した目的に沿ったプログラムが実行された。なお、上記したように、サンプルユニットの設定データに含まれるフロー情報(図10)は、プログラムである場合もあれば、マクロを含む場合もある。フロー情報がマクロである場合の開発支援処理について、以下、説明する。
【0077】
図18は、開発支援処理のステップS20で表示されるリストの変形例を示す図である。
【0078】
図18の画面では、「計測結果画面に図形を追加する」「エッジ位置結果から近似円を算出する」等の、サンプルユニットとして格納されているマクロが実行される目的を示す項目が列挙されている。そして、コンソール4を介して、これらのうちの1を選択する操作がなされると(ステップS30でYES)、CPU21は、選択された目的に対応するマクロの説明画面を表示させる。その表示画面の一例を、図19〜図20に示す。
【0079】
図19〜図20に示された画面には、図18の画面において「計測結果画面に図形を追加する」という項目が選択された際の画面が示されている。なお、図20の画面は、図19の画面の続きを示している。
【0080】
当該説明画面は、図13〜図15を参照して説明した説明画面と同様に、「概要」「実現例」「実装方法」という項目を含む。
【0081】
「概要」は、当該説明画面が対応するサンプルユニットが実行する処理の概要を示す。「実現例」は、サンプルユニットを実行させた際に表示される画面の内容の説明、および、サンプルユニットを実行させるための操作方法を含む。なお、図19中の画面イメージは、サンプルユニットが実行された際の表示画面の画像(図21参照)が挿入されているが、図19では、省略されて記載されている。「実装方法」は、画像処理装置において当該サンプルユニットが実現する機能を組み込むための方法である。当該方法は、当該機能を組み込むために必要な、シーンデータの構成と、マクロプログラムの記述を含む。なお、図20に示されたマクロプログラムの記述には、(1)〜(3)で記述が指定されている。そして、当該マクロプログラムの記述の下方には、(1)〜(3)に対応する各記述の処理内容の説明が、「解説」として記載されている。たとえば、(1)の記述について、「解説」では「(1)表示させたい処理ユニット番号(本サンプルではNO.1の[サーチ])を設定します。」と記載されている。このことは、図20のマクロプログラムの記述中の(1)で指定された部分(MeasureDispG_1.0)が、計測結果に図形を追加して表示することを希望する処理ユニット番号を設定するための部分であることを示している。
【0082】
そして、図19の「操作方法」の欄の下方に下線を付された「ファイル格納場所」という記述がある。当該記述は、本説明画面が対応するサンプルユニット(図8において「サンプルユニットA」〜「サンプルユニットN」のうちの1つに相当するもの)が保存されているディレクトリにリンクされている。そして、コンソール4を介して「ファイル格納場所」という記述が選択されると、CPU21は、リンクされているディレクトリの内容を表示させる。
【0083】
当該ディレクトリには、図20に示されたようなマクロプログラムを含むサンプルユニットが格納されている。
【0084】
本変形例において、マクロプログラムが格納されるディレクトリを表すフォルダの画像がドラッグされて、図11に示されたような画面上にドロップされると、図17を参照して説明したのと同様に、対応するサンプルユニットの実行による計測結果を示す画面が表示される。また、図21には、図17の画面と同様に、総合結果表示ウィンドウ901と、情報表示ウィンドウ902と、画像表示ウィンドウ903と、ツールボタンウィンドウ904と、テスト計測ウィンドウ905と、フロー表示ウィンドウ906と、詳細結果表示ウィンドウ907とが含まれる。
【0085】
そして、図21では、画像表示ウィンドウ903には、当該マクロが実行されることによって表示される画像(四角形の画像および当該四角形の画像の中心を示す十字形の画像)が示されている。
【0086】
本変形例では、リスト表示から項目が選択されると、当該項目に対応した説明画面が表示された。なお、開発支援処理では、リスト表示とともに、または、開発支援アプリの初期画面等において、図22に示されたような、サンプルユニットのマクロプログラムが格納されるディレクトリに表示されたフォルダの画像に対してどのような操作をすることによって、サンプルユニットが実行されるかを説明する画面が表示されても良い。
【0087】
以上説明した本変形例によれば、ユーザは、サンプルユニットを実行することにより、サンプルユニットの内容を認識する。また、ユーザは、サンプルユニットの説明画面を視認することにより、上記のサンプルユニットの内容を実現するためのマクロプログラムの記述を認識する。これにより、ユーザは、自身が所望する画像処理動作とサンプルとして挙げられたマクロプログラムによって実現される画像処理動作の差異に検討し、当該差異を補うために上記説明画面に表示されたマクロプログラムの記述を利用して、マクロプログラムを作成することができる。これにより、容易に、自己が所望する画像処理動作のためのマクロプログラムの記述を作成することができる。
【0088】
なお、マクロデバッガ206は、作成されたマクロプログラムの記述に対してデバッグを行なう。
【0089】
今回開示された各実施の形態およびその変形例はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【0090】
また、各実施の形態およびその変形例は、単独でも、また必要に応じて適宜組み合わされて、実施されることが意図される。
【符号の説明】
【0091】
1 カメラ、2 コントローラ、3 モニタ、4 コンソール、5 センサ、7 計測対象物、22 フラッシュメモリ、23 RAM、24 グラフィックコントローラ、25 カメラ用インターフェース、26 入力用インターフェース、27 外部用インターフェース、201 読込用プログラム起動部、202 画像リーダ、203 圧縮ファイルリーダ、204 設定データリーダ、205 計測制御部、206 マクロデバッガ。
【特許請求の範囲】
【請求項1】
特定の画像処理を実現するための特定プログラムを記憶するための記憶手段と、
外部からの操作を受け付けるための受付手段と、
前記受付手段が特定の操作を受け付けたことに応じて、前記特定プログラムを実行するための実行手段とを備え、
前記記憶手段は、前記特定プログラムの記述を画面に表示させるためのデータである画面表示用データを記憶し、
前記実行手段は、前記受付手段が前記特定の操作を受け付けたことに応じて、さらに、前記画面表示用データを用いて前記特定プログラムの記述を表示させる、開発支援装置。
【請求項2】
前記記憶手段は、前記特定プログラムに関する説明を画面の表示させるためのデータである説明用データをさらに記憶し、
前記実行手段は、前記特定の操作に応じて、さらに、前記説明用データを用いて前記特定プログラムに関する説明を表示させる、請求項1に記載の開発支援装置。
【請求項3】
前記特定の操作は、
前記記述および前記説明を表示させるための第1の操作と、
前記特定プログラムを実行するための第2の操作とを含む、請求項2に記載の開発支援装置。
【請求項4】
前記実行手段は、前記特定プログラムの設定の変更を受け付け、当該変更内容を前記記憶手段に記憶する、請求項1〜請求項3のいずれかに記載の開発支援装置。
【請求項5】
特定の画像処理を実現するための特定プログラムを記憶するための記憶手段を備えたコンピュータによって実行される開発支援プログラムであって、
前記記憶手段は、前記特定プログラムの記述を画面に表示させるためのデータである画面表示用データを記憶し、
前記開発支援プログラムは、前記コンピュータに、
外部からの操作を受け付けるステップと、
特定の操作を受け付けたことに応じて、前記画面表示用データを用いて前記特定プログラムの記述を表示させるステップと、
前記特定プログラムを実行するステップとを実行させる、開発支援プログラム。
【請求項1】
特定の画像処理を実現するための特定プログラムを記憶するための記憶手段と、
外部からの操作を受け付けるための受付手段と、
前記受付手段が特定の操作を受け付けたことに応じて、前記特定プログラムを実行するための実行手段とを備え、
前記記憶手段は、前記特定プログラムの記述を画面に表示させるためのデータである画面表示用データを記憶し、
前記実行手段は、前記受付手段が前記特定の操作を受け付けたことに応じて、さらに、前記画面表示用データを用いて前記特定プログラムの記述を表示させる、開発支援装置。
【請求項2】
前記記憶手段は、前記特定プログラムに関する説明を画面の表示させるためのデータである説明用データをさらに記憶し、
前記実行手段は、前記特定の操作に応じて、さらに、前記説明用データを用いて前記特定プログラムに関する説明を表示させる、請求項1に記載の開発支援装置。
【請求項3】
前記特定の操作は、
前記記述および前記説明を表示させるための第1の操作と、
前記特定プログラムを実行するための第2の操作とを含む、請求項2に記載の開発支援装置。
【請求項4】
前記実行手段は、前記特定プログラムの設定の変更を受け付け、当該変更内容を前記記憶手段に記憶する、請求項1〜請求項3のいずれかに記載の開発支援装置。
【請求項5】
特定の画像処理を実現するための特定プログラムを記憶するための記憶手段を備えたコンピュータによって実行される開発支援プログラムであって、
前記記憶手段は、前記特定プログラムの記述を画面に表示させるためのデータである画面表示用データを記憶し、
前記開発支援プログラムは、前記コンピュータに、
外部からの操作を受け付けるステップと、
特定の操作を受け付けたことに応じて、前記画面表示用データを用いて前記特定プログラムの記述を表示させるステップと、
前記特定プログラムを実行するステップとを実行させる、開発支援プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【公開番号】特開2013−16013(P2013−16013A)
【公開日】平成25年1月24日(2013.1.24)
【国際特許分類】
【出願番号】特願2011−148215(P2011−148215)
【出願日】平成23年7月4日(2011.7.4)
【出願人】(000002945)オムロン株式会社 (3,542)
【Fターム(参考)】
【公開日】平成25年1月24日(2013.1.24)
【国際特許分類】
【出願日】平成23年7月4日(2011.7.4)
【出願人】(000002945)オムロン株式会社 (3,542)
【Fターム(参考)】
[ Back to top ]