(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023152069
(43)【公開日】2023-10-16
(54)【発明の名称】画像センサ、制御方法およびプログラム
(51)【国際特許分類】
G06F 9/50 20060101AFI20231005BHJP
G06T 1/20 20060101ALI20231005BHJP
G06F 15/78 20060101ALI20231005BHJP
【FI】
G06F9/50 150Z
G06T1/20 B
G06F15/78 599
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2022062010
(22)【出願日】2022-04-01
(71)【出願人】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】110002860
【氏名又は名称】弁理士法人秀和特許事務所
(72)【発明者】
【氏名】谷口 拓
【テーマコード(参考)】
5B057
5B062
【Fターム(参考)】
5B057CH02
5B057DA01
5B057DA07
5B062CC04
5B062CC05
(57)【要約】
【課題】検査処理に影響を及ぼさずに、速やかにウイルス対策が可能な検査装置を提供することを目的とする。
【解決手段】対象物の撮像画像に基づく計測処理を行う画像センサであって、複数のコアを有する演算装置と、対象物の画像を撮像する撮像部と、前記計測処理の前記複数のコアへの割り当て方が少なくとも異なる、複数の動作モードを設定可能なモード設定部と、設定されている動作モードで前記計測処理を行う計測処理部と、前記動作モードに応じて決定される、ウイルス検査処理の前記複数のコアへの割り当て方を用いて、ウイルス検査を行うウイルス検査部と、を備える、画像センサ。
【選択図】
図1
【特許請求の範囲】
【請求項1】
対象物の撮像画像に基づく計測処理を行う画像センサであって、
複数のコアを有する演算装置と、
対象物の画像を撮像する撮像部と、
前記計測処理の前記複数のコアへの割り当て方が少なくとも異なる、複数の動作モードを設定可能なモード設定部と、
設定されている動作モードで前記計測処理を行う計測処理部と、
前記動作モードに応じて決定される、ウイルス検査処理の前記複数のコアへの割り当て方を用いて、ウイルス検査を行うウイルス検査部と、
を備える、画像センサ。
【請求項2】
前記計測処理は、前記対象物の品質検査処理、または、前記対象物の位置決め処理を含む、
請求項1に記載の画像センサ。
【請求項3】
前記計測処理の主処理を第1のコアに割り当て、前記計測処理の副処理を第2のコアに割り当てる第1の動作モードでは、
前記ウイルス検査部は、前記第2のコアが前記計測処理の副処理を行っていない間に、前記第2のコアを用いて前記ウイルス検査処理を行う、
請求項1または2に記載の画像センサ。
【請求項4】
前記副処理は、ロギング処理および表示処理である、
請求項3に記載の画像センサ。
【請求項5】
前記計測処理の主処理を第1のコアに割り当て、前記計測処理を停止することなく前記計測処理の設定を変更するための処理を第2のコアに割り当てる第2の動作モードでは、
前記ウイルス検査部は、前記第2のコアを用いて前記ウイルス検査処理を行い、前記計測処理の設定の変更を行う際には、前記第2のコアによる前記ウイルス検査処理を中断する、
請求項1または2に記載の画像センサ。
【請求項6】
前記計測処理の前記複数のコアのうちの空いているいずれかのコアに割り当てる第3の検査モードでは、
前記ウイルス検査部は、前記複数のコアのうちの空いているいずれかのコアを用いて前記ウイルス検査処理を行い、前記ウイルス検査を実行中のコアに前記計測処理が割り当てられた場合には別の空いているコアを用いて前記ウイルス検査処理を行う、
請求項1または2に記載の画像センサ。
【請求項7】
複数のコアを有する演算装置と撮像部とを備え、前記撮像部によって撮像される対象物の撮像画像に基づいて計測処理を行う画像センサの制御方法であって、
前記計測処理の前記複数のコアへの割り当て方が少なくとも異なる、複数の動作モードを設定するモード設定ステップと
設定されている動作モードで前記計測処理を行う計測処理ステップと、
前記動作モードに応じて決定される、ウイルス検査処理の前記複数のコアへの割り当て方を用いて、ウイルス検査を行うウイルス検査ステップと、
を備える、画像センサの制御方法。
【請求項8】
請求項7に記載の制御方法の各ステップをコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、画像センサに関し、特に、撮像画像に基づく計測処理とウイルス検査とを実施できる装置に関する。
【背景技術】
【0002】
生産現場に備えられるFA(Factory Automation)の制御システムがサイバー攻撃の脅威に晒される可能性が高まっている。制御システム間の通信にイーサネット(登録商標)などの標準プロトコルが使用され、また、OS(Operating System)も汎用OSが使用されるケースが増えていることから、制御システムも一般的な情報セキュリティの脅威に脅かされる。制御システムがサイバー攻撃を受けて、例えば、画像センサがコンピュータウイルスに冒された場合、撮像画像に基づく計測処理を適切に実施できず不良製品が出荷される等のリスクが発生する。したがって、生産現場では、このようなリスクを防止するために画像センサについてセキュリティ対策を施したいという要求がある。
【0003】
コンピュータウイルスを含むマルウェア対策として、ウイルス対策ソフトがある(特許文献1)。ウイルス対策ソフトは、あらかじめ定義された特徴を有する危険なプログラムの実行を防止したり、あらかじめ定義された安全なプログラムのみを実行したりすることで、セキュリティ脅威を排除する。しかしながら、画像計測処理(例えば、製品検査)と並行してウイルス検査を実行すると、画像計測性能に影響が出て製造パフォーマンスが低下する恐れがある。一方、画像計測処理を行っていないタイミングでのみウイルス検査を実行すると、ウイルス発見が遅れる恐れがある。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
本開示は、撮像画像に基づく計測処理に影響を及ぼさずに、速やかにウイルス対策が可能な検査装置を提供することを目的とする。
【課題を解決するための手段】
【0006】
本開示の一態様は、対象物の撮像画像に基づく計測処理を行う画像センサであって、複数のコアを有する演算装置と、対象物の画像を撮像する撮像部と、前記計測処理の前記複数のコアへの割り当て方が少なくとも異なる、複数の動作モードを設定可能なモード設定部と、設定されている動作モードで前記計測処理を行う計測処理部と、前記動作モードに応じて決定される、ウイルス検査処理の前記複数のコアへの割り当て方を用いて、ウイルス検査を行うウイルス検査部と、を備える、画像センサである。
【0007】
上記の開示によれば、計測処理の動作モードに応じた適切なコア割り当て方法を用いて、ウイルス検査を実施でき、計測処理に及ぼす影響を抑制しつつ、速やかなウイルス検査が実施可能となる。
【0008】
例えば、前記計測処理の主処理を第1のコアに割り当て、前記計測処理の副処理を第2のコアに割り当てる第1の動作モードでは、前記ウイルス検査部は、前記第2のコアが前記計測処理の副処理を行っていない間に、前記第2のコアを用いて前記ウイルス検査処理を行うようにしてもよい。ここで、副処理には、例えば、ロギング処理や表示処理が含ま
れうる。また、第1のコアや第2のコアは、複数のコアのうちの特定の1つのコアに限定されずに、全体の一部かつ複数のコアであってもよい。
【0009】
また、例えば、前記計測処理の主処理を第1のコアに割り当て、前記計測処理を停止することなく前記計測処理の設定を変更するための処理を第2のコアに割り当てる第2の動作モードでは、前記ウイルス検査部は、前記第2のコアを用いて前記ウイルス検査処理を行い、前記計測処理の設定の変更を行う際には、前記第2のコアによる前記ウイルス検査処理を中断するようにしてもよい。
【0010】
また、例えば、前記計測処理の前記複数のコアのうちの空いているいずれかのコアに割り当てる第3の動作モードでは、前記ウイルス検査部は、前記複数のコアのうちの空いているいずれかのコアを用いて前記ウイルス検査処理を行い、前記ウイルス検査を実行中のコアに前記計測処理が割り当てられた場合には別の空いているコアを用いて前記ウイルス検査処理を行うようにしてもよい。
【0011】
本開示において、撮像画像に基づく計測処理として、対象物の品質検査処理、または対象物の位置決め処理が例示できるが、これに限定されず、画像を用いた処理であれば任意の処理が含まれる。
【0012】
本開示は、上記手段の少なくとも一部を備える画像センサとして捉えることができる。本開示は、上記処理の少なくとも一部を含む方法、または、かかる方法を実現するためのプログラムやそのプログラムを非一時的に記録した記録媒体として捉えることもできる。また、本開示は、上記手段および処理の各々は可能な限り互いに組み合わせ装置または方法を含む。
【発明の効果】
【0013】
本開示は、撮像画像に基づく計測処理に影響を及ぼさずに、速やかなウイルス対策が可能となる。
【図面の簡単な説明】
【0014】
【
図2】画像計測装置のハードウェア構成を示すブロック図
【
図4】画像計測装置が行う全体処理を示すフローチャート
【
図5】動作モードごとのコアの処理分担を説明する図(2コアの場合)
【
図6】標準モードでのウイルス検査処理のコアへの割り当て方法を説明するフローチャート
【
図7】ノンストップ調整モードでのウイルス検査処理のコアへの割り当て方法を説明するフローチャート
【
図8】倍速マルチインプットモードでのウイルス検査処理のコアへの割り当て方法を説明するフローチャート
【
図9】動作モードごとのコアの処理分担を説明する図(4コア・並列化なしの場合)
【
図10】動作モードごとのコアの処理分担を説明する図(4コア・並列化ありの場合)
【発明を実施するための形態】
【0015】
<適用例>
まず、本発明を適用した画像センサ(計測装置)の一例について説明する。画像センサは、対象物を撮像した撮像画像に基づいて様々な計測処理を行うことができる。計測処理
として、例えば、対象物を撮像した画像に基づく、対象物の品質検査、物体認識、個体識別、バーコードや2次元コードの読取、OCR処理、対象物の位置決め処理などが挙げられる。以下では、計測処理として主に対象物の品質検査を例に挙げて説明するが、計測処理の内容は特に限定されない。
【0016】
本実施の形態に係る画像センサ1は、対象物の計測処理を行うとともに、装置自体についてウイルス検査を行う。
【0017】
本実施形態において、「ウイルス検査」とは、画像センサ1の正常動作を妨げる不正なプログラムまたはデータを検知することが例示できるが、これに限定されない。不正なプログラム等が検知された場合に、当該プログラム等を削除あるいは隔離したり、当該プログラムの実行又はデータへのアクセスを禁止したりする処理が、ウイルス検査に含まれてもよい。
【0018】
図1は、本実施形態に係る画像センサ1を含む画像センサシステムの構成を模式的に示す図である。画像センサ1は、画像計測装置10とカメラ(撮像部)20を含んで構成される。画像センサ1は、ワーク42の生産ラインに適用されうる。画像センサ1は、カメラ(撮像部)20がワーク42を撮影することにより出力される撮影画像を用いて、ワーク42の計測処理を行う。ワーク42の搬送や計測処理は、PLC40によって制御される。ここで、ワーク42の種類は特に限定されず、撮影画像を用いて検査可能な物体であれば任意の物体であってよい。
図1では、カメラ20が1つの例を示しているが、複数のカメラ20が1つの画像計測装置10に接続されて、複数のカメラから得られる撮影画像についての計測処理を行ってもよい。複数のカメラ20は、例えば、異なるラインに設置されてもよいし、同じラインに設置されてもよい。
【0019】
画像センサ1は、計測処理の動作モードを選択可能に構成される。画像センサ1の画像計測装置10は、複数のコアを有する演算装置を有しており、動作モードに応じて、計測処理タスクのコアへの割り当て方法が異なる。複数のコアを有する演算装置は、複数のコアを有する1つのCPU(中央演算装置)以外にも、それぞれが複数のコアを有する複数のCPU、および、1つのコアを有する複数のCPUを含む。
【0020】
また、画像センサ1は、計測処理中に、自装置に対するウイルス検査処理も実行する。ここで、ウイルス検査処理が計測処理に与える影響を抑制しつつ、かつ、ウイルス検知を遅らせないことが望まれる。そこで、画像センサ1は、ウイルス検査処理タスクのコアの割り当て方を、計測処理の動作モードに応じて切り替える。計測処理におけるコアの割り当て方に応じてウイルス検査処理の実行に適切なコアが異なるので、このようにすることで、画像センサ1は、各動作モードでの計測処理に悪影響を与えないようにしつつ、ウイルス検査処理を効率的および迅速に行うようにできる。
【0021】
<構成>
図2は、本実施形態に係る画像計測装置のハードウェア構成を模式的に示す図である。画像計測装置10は、CPU(Central Processing Unit; 中央演算装置)11、メモリ
12、HDD13、カメラIF14、表示コントローラ15、入力IF16、通信IF17を備える。これらの要素は、バス18を介して互いにデータ通信可能に接続される。
【0022】
CPU11は、コア11a、11bを有するマルチコアプロセッサであり、複数のタスクを並行して実行可能である。CPU11は、HDD13に格納されたプログラムをメモリ12に展開して実行する。なお、ここではCPU11が2つのコアを有する例を示しているが、CPU11は3個以上のコアを有していてもよいし、画像計測装置10がシングルコアCPUを複数有していてもよい。
【0023】
メモリ12は、典型的にはDRAM(Dynamic Random Access Memory)などの揮発性の記憶装置である。HDD13は、不揮発性の記憶装置である。画像計測装置10は、HDD13に代えて、あるいはHDD13に加えて、SSD(Solid State Drive)などの半
導体記憶装置を備えてもよい。
【0024】
カメラIF14は、CPU11とカメラ20との間のデータ伝送を仲介する。すなわち、カメラIF14は、カメラ20からの撮影画像をCPU11に出力すると共に、CPU11からの撮影指令に基づくコマンドをカメラ20に出力する。
【0025】
表示コントローラ15は、操作表示装置30の表示部31と接続される。表示コントローラ15は、CPU11における処理結果を含む情報に基づく表示制御データにしたがい、表示部31を駆動することにより、表示部31に当該情報を表示させる。
【0026】
入力IF16は、表示装置30のタッチパネル32と接続されて、CPU11とタッチパネル32との間のデータ伝送を仲介する。すなわち、入力IF16は、ユーザがタッチパネル32を操作することで与えられる操作指令を受け付けて、CPU11に出力する。
【0027】
通信IF17は、PLC40やサーバと、CPU11との間で各種データをやりとりする。通信IF17は、PLC40およびサーバとの間で各種データをやりとりするための通信ネットワークに対応するハードウェア回路を含む。
【0028】
図3は、本実施形態に係る画像計測装置10の機能構成の一例を示す図である。CPU11は、HDD13に記憶されている計測処理プログラムおよびウイルス検査プログラムをそれぞれ実行することにより、計測処理部101、ウイルス検査部102、設定部103として機能する。
【0029】
計測処理部101は、カメラ20からの撮影画像に基づいて、ワークに対する計測処理を行う。計測処理の一例は、ワークの品質検査処理である。例えば、計測処理部101は、撮像画像をモデル画像と照合するパターンマッチングを実施するマッチング部および評価部を有し、評価部はパターンマッチングの結果に基づいて、ワークと良品モデルの形状および表面色などの一致度に基づいて評価結果を算出して出力する。あるいは、計測処理部101は、ワークの寸法や色や形状を検出して良品の基準を満たすか否か判定したり、バーコードや2次元コードあるいは文字や記号を読み取って適切であるかを検査したりしてもよい。また、計測処理は品質検査に限られず、例えば、位置決め計測であってもよい。位置決め計測では、位置決め用マークあるいはエッジなどからワークの位置を特定する。計測結果は、メモリ12に格納されたり、操作表示装置30に表示されたりする。また、計測結果はPLC40にも送信され、PLC40は計測結果に基づいて不良品を除去したり、位置決め計測結果に基づいて製造ラインを制御したりする。
【0030】
計測処理は、いくつかのサブタスクから構成される。本明細書では、計測処理において必須のタスクを主処理と呼び、必須ではない処理を副処理と呼ぶ。計測処理がパターンマッチングに基づく品質検査処理である場合は、主処理は、例えば、パターンマッチング処理、一致度の算出、および評価結果の出力(通知)である。副処理は、例えば、ロギング処理や、検査結果の表示処理が含まれる。ロギングや表示処理では、撮影画像および検査結果を示す画像がストレージに保存されたり画面表示されたりし、比較的処理負荷が高い。
【0031】
ウイルス検査部102は、HDD13に格納されているプログラムやデータを検査する。ウイルス検査部102は、例えばいわゆるブラックリスト方式を用いてウイルス検査を
行う。具体的には、ウイルス検査部102は、コンピュータウイルスを識別するためのパターンファイルを参照して、当該パターンと一致するものをコンピュータウイルスであると判断する。コンピュータウイルスが検知されると、ウイルス検査部102は、検知されたウイルスが実行されないように、このコンピュータウイルスを無効化する。本実施形態では、ウイルス検査部102は、ブラックリスト方式の代わりにホワイトリスト方式を用いてウイルス検査を行ってもよい。ホワイトリスト方式では、安全なアプリケーションのパターンが定義されたパターンファイルを参照して、定義されたパターンと一致しないパターンをコンピュータウイルスであると判断する。
【0032】
計測処理部101およびウイルス検査部102が行う処理(タスク)は、CPU11のコア11a、11bによって実行される。この際、どのタスクをどのコアに割り当てて実行するかは、設定される動作モードによって異なる。この点については後ほど説明する。
【0033】
設定部103は、画像計測装置10の動作設定処理を行う機能部である。ユーザは、操作表示装置30に表示される設定画面を介して、各種の設定が可能である。例えば、ユーザは、設定部103を用いて、検査項目の設定や、検査に用いるパラメータ(閾値など)の設定が可能である。また、本実施形態では、ユーザは設定部103を介して、検査の動作モードを複数のモードの中から設定可能である。本実施形態では、計測処理の動作モードとして、「標準モード」「倍速マルチインプットモード」「複数ラインランダムモード」「ノンストップ調整モード」の4つのモードの中から1つ指定できる。また、これに加えて、並列処理のオンオフを選択可能である。それぞれのモードについては、以下で詳細に説明する。
【0034】
<処理>
図4は、本実施形態に係る画像計測装置10が実行する処理の流れを示すフローチャートである。まず、計測処理の開始の前に、設定部103を介して、ユーザから動作モードの設定を受け付ける(S2)。次に、画像計測装置10は、設定された動作モードに応じて、計測処理およびウイルス検査処理のCPUコアへの割り当て方法を決定する(S4)。そして、決定された割り当て方法にしたがって、計測処理およびウイルス検査処理を実行する。
【0035】
<動作モード>
ここで、計測処理の各動作モードについて説明する。
【0036】
「標準モード」は、計測処理とロギング処理を並列して行うモードである。このモードでは、計測処理の主処理と、ロギング処理などの副処理とを異なるコアに割り当てる。これにより、計測処理に影響を与えることなく、検査結果や撮影画像をHDD13に保存することができる。「標準モード」が本発明の「第1の動作モード」に相当する。
【0037】
「倍速マルチインプットモード」は、1回目の検査開始トリガに対する検査処理と、2回目の検査開始トリガに対する検査処理を、異なるコアで実行して並列に実施するモードである。本実施形態では、検査開始トリガは、カメラ20による撮影画像の取り込み完了である。複数のコアが検査処理を実行することで、標準モードと比較して高速なタクトでの検査ができる。
【0038】
「ノンストップ調整モード」は、計測処理を停止することなく、検査のフローや設定パラメータの調整を実施可能なモードである。このモードでは、計測処理と、調整処理とを異なるコアに割り当てる。「ノンストップ調整モード」が本発明の「第2の動作モード」に相当する。
【0039】
「複数ラインランダムモード」は、複数のカメラ20によって撮影される撮影画像を、1つの画像計測装置10を用いて検査するときに用いるモードである。それぞれのカメラから独立・非同期で出力される検査開始トリガに基づく計測処理を、いずれかのコアに適宜に割り当てることで複数ラインの計測処理を独立・非同期で実行する。本モードでは、2つ以上のトリガを同時に受け付けて、複数ラインの計測処理を並行して行うことが可能である。なお、「複数ラインランダムモード」が、本発明の「第3の動作モード」に相当する。
【0040】
ここで「複数ライン」と称しているが、物理的に同一のラインに設置されていてもよい。後者は、例えば、1つのワークの異なる箇所をそれぞれのカメラを用いて計測する場合に採用される。
【0041】
また、本実施形態では、上記の4つのモード設定に加えて、並列処理のオンオフの設定が可能である。1つのトリガに対応する計測処理は、複数のタスクから構成され、これらのタスクの中には並列実行可能なタスクが存在する。並列処理をオンにすると、並列実行可能なタスクを、異なるコアに割り当てて並列に実行する。タスクを並列に処理することで、検査時間を短縮することができる。なお、どのタスクを並列実行するかは、画像計測装置10が自動で決定してもよいし、ユーザが指定してもよい。一方、並列処理をオフに設定した場合には、計測処理の主処理は1つのコアで実行される。
【0042】
<コアの処理分担:2コア>
図5を参照して、各動作モードにおける計測処理とウイルス検査処理のタスクをコアに割り当てる方法について説明する。ここでは、コアが2つの場合を例に説明し、並列処理はオフに設定されているものとする。
【0043】
「標準モード」では、コア0で計測処理の主処理を実行し、コア1で計測処理の副処理とウイルス検査処理を実行する。上述したように、計測処理の主処理は、例えば、パターンマッチング処理や一致度の算出処理などであり、副処理はロギング処理や画面表示処理などである。コア1については、ウイルス検査処理の優先度よりも計測処理の優先度の方が高く設定される。したがって、コア1では基本的にウイルス検査処理が実行されるが、画像ロギングなどの計測処理の副処理が発生した時点でウイルス検査処理が中断され、副処理が実行される。そして、副処理が完了したら、ウイルス検査処理が再開される。
【0044】
図6は、標準動作モードでのウイルス検査処理のコアへの割り当て方法を説明するフローチャートである。まず、コア1で計測処理の副処理(画像ロギング処理など)が実行中であるか判断される(S102)。計測処理の副処理が実行中であれば(S102-YES)、その処理が完了するまで待機する。一方、コア1で計測処理の副処理が実行されていない場合(S102-NO)には、コア1でのウイルス検査処理を実行する(S104)。ウイルス検査中に、計測処理の副処理のトリガが発生した場合(S106-YES)には、コア1でのウイルス検査処理を中断し(S108)、計測処理の副処理を開始する(S110)。計測処理の副処理が完了したら(S112-YES),ステップS102に戻ってウイルス検査処理を再開する。
【0045】
「倍速マルチインプットモード」では、コア0とコア1で計測処理を並行して行う。本実施形態では、倍速マルチインプットモードではウイルス検査を実行しないものとする。コア0またはコア1が計測処理をしていない期間にウイルス検査処理をすることも考えられるが、本モードはタクトタイムを最短にしたいケースで採用されることが想定され、計測処理をしていない期間がわずかとなる。したがって、計測処理のあいまにウイルス検査を行うよりも、ラインを停止している期間にウイルス検査を行うことが適当であると考えられるためである。もっとも、上述したように、コア0またはコア1が計測処理をしてい
ない期間に、空いているコアを用いてウイルス検査処理を実行するようにしても構わない。
【0046】
「ノンストップ調整モード」では、コア0で計測処理を実行し、コア1で計測処理フローの変更・調整処理とウイルス検査処理を実行する。計測処理フローの変更・調整処理にコア1を割り当て、コア0に計測処理を割り当てているので、計測処理を停止することなくフローの変更・調整が可能である。本モードでは、ウイルス検査は、コア1でフローの変更・調整処理を行っていない期間に実行する。
【0047】
図7は、ノンストップ調整モードでのウイルス検査処理のコアへの割り当て方法を説明するフローチャートである。まず、コア1で計測フローの変更・調整処理が実行中であるか判断される(S202)。計測フローの変更・調整処理が実行中であれば(S202-YES)、その処理が完了するまで待機する。一方、コア1で計測フローの変更・調整処理が実行されていない場合(S202-NO)には、コア1でのウイルス検査処理を実行する(S204)。ウイルス検査中に、計測フローの変更・調整処理の開始が要求された場合(S206-YES)には、コア1でのウイルス検査処理を中断し(S208)、計測フローの変更・調整処理を開始する(S210)。計測フローの変更・調整処理が完了したら(S212-YES),ステップS202に戻ってウイルス検査処理を再開する。
【0048】
「複数ラインランダムトリガモード」では、コア0とコア1がそれぞれ、ライン0およびライン1の計測処理を実行する。より詳細には、本例では、2つのカメラ20が画像計測装置10に接続されており、一方のカメラ(ライン)の画像がコア0を用いて処理され、他方のカメラ(ライン)の画像がコア1を用いて処理される。ウイルス検査は、コア0とコア1のうち、空いているいずれかのコアを用いて実行される。
【0049】
図8は、倍速マルチインプットモードでのウイルス検査処理のコアへの割り当て方法を説明するフローチャートである。まず、コア0がアイドルであれば(S302-YES)、コア0でウイルス検査処理を実行し(S304)、コア0がアイドルでなければ(S302-NO)、コア1がアイドルか判断する(S312)。コア0でのウイルス検査処理実行中に、コア0での計測処理の開始トリガが入力された場合(S306-YES)には、コア0でのウイルス検査処理を中断し(S308)、コア0で計測処理を実行する(S310)。この時点でコア1がアイドルであれば(S312-YES)、コア1でウイルス検査処理を実行し(S314)、コア1がアイドルでなければ(S312-NO)、コア0がアイドルか判断する(S302)。コア1でのウイルス検査処理実行中に、コア1での計測処理の開始トリガが入力された場合(S316-YES)には、コア1でのウイルス検査処理を中断し(S318)、コア1で計測処理を実行する(S320)。この後は、S302に戻って、上記の処理を繰り返す。
【0050】
<コアの処理分担:4コア>
次に、
図9を参照して、CPU11が4つのコアを有する場合の、各コアでの処理分担について説明する。
図9の例では、並列化処理はオフであるものとする。
【0051】
「標準モード」では、列81に示すように、コア0で計測処理の主処理、コア1でウイルス検査処理、コア2およびコア3で計測処理の副処理を実行する。この例では、それぞれのコアに特定の処理が割り当てられているため、ウイルス検査を実行しても計測処理に影響を与えない。
【0052】
「倍速マルチインプットモード」では、列82に示すように、コア0とコア1でそれぞれ計測処理の主処理を実行し、コア2で計測処理の副処理、コア3で計測処理の副処理とウイルス検査処理を実行する。コア3については、計測処理の副処理の優先度の方がウイ
ルス検査の優先度よりも高く、したがって、コア3では計測処理の副処理が行われていない期間に、ウイルス検査が実行される。コア3でのウイルス検査の割り当ては
図6のフローチャートと同様であるため説明を省略する。
【0053】
なお、コア3をウイルス検査処理のみに割り当てるようにしてもよい。また、3つの計測処理をコア0~コア2の3つのコアで並列実行し、コア3で計測処理の副処理とウイルス検査処理を実行するようにしてもよい。
【0054】
「ノンストップ調整モード」では、列83に示すように、コア0が計測処理の主処理、コア1が設定変更処理、コア2がウイルス検査処理、コア3が計測処理の副処理をそれぞれ実行する。この例では、それぞれのコアに特定の処理が割り当てられているため、ウイルス検査を実行しても計測処理に影響を与えない。
【0055】
「複数ラインランダムモード」について、列84は2ラインを対象とする例、列85は4ラインを対象とする例である。2ラインの場合(列84)には、各コアに特定の処理を割り当てて、コア0とコア1でそれぞれライン0とライン1の計測処理を行い、コア2でウイルス検査処理、コア3で計測処理の副処理を実行する。一方、4ラインの場合(列85)には、コア0~コア3がそれぞれライン0~ライン3の計測処理を行いつつ、計測処理を行っていない期間にウイルス検査を行う。この場合のコア0~コア3へのウイルス検査処理の割り当ては、
図8に示すフローチャートを4コアに拡張すればよいので説明は省略する。
【0056】
次に、
図10を参照して、4コアの場合で、並列化をオンにした場合の、各コアでの処理分担について説明する。なお、並列化処理は、2並列であるものとする。
【0057】
「標準モード」では、列91に示すように、コア0およびコア1で計測処理の主処理、コア2でウイルス検査処理、コア3で計測処理の副処理を実行する。この例では、それぞれのコアに特定の処理が割り当てられているため、ウイルス検査を実行しても計測処理に影響を与えない。
【0058】
「倍速マルチインプットモード」では、列92に示すように、4つのコア0~3の全てを用いて、2つのトリガに対応する計測処理を同時に行う。1回目のトリガに対応する計測処理のタスクをコア0とコア2で実行し、2回目のトリガに対応する計測処理のタスクをコア1とコア3で実行し、以降、コア0およびコア2と、コア1およびコア3を交互に用いて計測処理を行う。本実施形態では、倍速マルチインプットモードではウイルス検査を実行しないものとする。4コアを有していても並列化をオンにした倍速マルチインプットモードでは、計測処理で各コアの演算時間が占有され、ウイルス検査に割り当てられる期間がほとんどなく、ウイルス検査との併用に適さないためである。もっとも、コア0~コア3のいずれかのコアが計測処理をしていない期間に、空いているコアを用いてウイルス検査処理を実行するようにしても構わない。
【0059】
「ノンストップ調整モード」では、列93に示すように、コア0およびコア1が計測処理の主処理、コア2が設定変更処理とウイルス検査処理、コア3が計測処理の副処理とウイルス検査処理、をそれぞれ実行する。コア2とコア3では、設定変更処理および計測処理の副処理の優先度が、ウイルス検査の優先度よりも高く設定される。したがって、コア2とコア3では、設定変更処理や計測処理の副処理が行われていない期間にウイルス検査が実行され、ウイルス検査処理中に設定変更処理や計測処理が開始されたらウイルス検査処理が中断される。コア2およびコア3でのウイルス検査の割り当ては
図7のフローチャートと同様であるため説明を省略する。
【0060】
「複数ラインランダムモード」について、列94は2ラインを対象とする例、列95は4ラインを対象とする例である。2ラインの場合(列94)には、コア0とコア2でライン0の計測処理を実行し、コア1とコア3でライン1の計測処理を実行する。ウイルス検査処理は、コア0~コア3の空いているいずれかのコアで実行する。また、4ラインの場合(列95)には、コア0~コア3がライン0~3の計測処理を実行する。この場合も、ウイルス検査処理は、コア0~コア3の空いているいずれかのコアで実行する。コア0~コア3へのウイルス検査処理の割り当ては、
図8に示すフローチャートを4コアに拡張すればよいので説明は省略する。なお、4ラインを対象とし、並列化をオンにする場合には、計測処理でCPUの計算時間が占有されることも想定されるので、この場合にはウイルス検査処理を実行しないようにしても構わない。
【0061】
(本実施形態の有利な効果)
本実施形態に係る画像センサは、計測処理の動作モードを複数有しており、モードごとに計測処理のCPUコアへの割り当て方が異なる。したがって、動作モードに応じて、適切なウイルス検査処理の割り当て方も変化する。そこで、計測処理の動作モードに応じて、ウイルス検査のCPUコアへの割り当て方を自動的に調整することで、各動作モードに応じた効率的なウイルス検査が実行可能である。具体的には、計測処理の処理時間に悪影響を及ぼすことなく、かつ、迅速にウイルスの検知が可能となる。
【0062】
なお、ウイルス検査処理のCPUコアへの割り当て方を設定可能とすることも想定されるが、ユーザの負担になる上に、習熟していないユーザが不適切な設定を行う恐れもある。そこで、計測処理の動作モードに応じて、ウイルス検査処理のCPU割り当てを自動的に変更することで、ユーザに負担をかけずに適切な割り当てが実現できる。
【0063】
<その他>
上記実施形態は、本発明の構成例を例示的に説明するものに過ぎない。本発明は上記の具体的な形態には限定されることはなく、その技術的思想の範囲内で種々の変形が可能である。
【0064】
なお、上記で説明したCPUコアの割り当て方法は一例に過ぎず、上記に限定されるものではない。また、CPUコアの数は2個あるいは4個である必要はなく、3個あるいは5個以上であってもよい。さらに、動作モードも上記で説明した4つの基本モード以外のモードがあっても構わない。
【0065】
<付記>
1.対象物の撮像画像に基づく計測処理を行う画像センサ(1)であって、複数のコア(11a,11b)を有する演算装置(11)と、
対象物の画像を撮像する撮像部(20)と、
前記計測処理の前記複数のコアへの割り当て方が少なくとも異なる、複数の動作モードを設定可能なモード設定部(103)と、
設定されている動作モードで前記計測処理を行う計測処理部(101)と、
前記動作モードに応じて決定される、ウイルス検査処理の前記複数のコアへの割り当て方を用いて、ウイルス検査を行うウイルス検査部(102)と、
を備える、画像センサ(1)。
【0066】
2.複数のコア(11a,11b)を有する演算装置(11)と撮像部(20)を備え、前記撮像部(20)によって撮像される対象物の撮像画像に基づいて計測処理を行う画像センサ(1)の制御方法であって、
前記計測処理の前記複数のコアへの割り当て方が少なくとも異なる、複数の動作モードを設定するモード設定ステップ(S2)と
設定されている動作モードで前記計測処理を行う計測処理ステップ(S6)と、
前記動作モードに応じて決定される、ウイルス検査処理の前記複数のコアへの割り当て方を用いて、ウイルス検査を行うウイルス検査ステップ(S4,S6)と、
を備える、画像センサの制御方法。
【符号の説明】
【0067】
10:検査装置 11:CPU 11a,11b:コア 12:メモリ
13:HDD 14:カメラIF 15:表示コントローラ 16:入力IF
20:カメラ 30:操作表示装置 40:PLC
101:品質検査部 102:ウイルス検査部 103:設定部