JPWO2017126046A1 - 画像処理装置、画像処理方法および画像処理プログラム - Google Patents

画像処理装置、画像処理方法および画像処理プログラム Download PDF

Info

Publication number
JPWO2017126046A1
JPWO2017126046A1 JP2017562208A JP2017562208A JPWO2017126046A1 JP WO2017126046 A1 JPWO2017126046 A1 JP WO2017126046A1 JP 2017562208 A JP2017562208 A JP 2017562208A JP 2017562208 A JP2017562208 A JP 2017562208A JP WO2017126046 A1 JPWO2017126046 A1 JP WO2017126046A1
Authority
JP
Japan
Prior art keywords
image processing
program
image
node
processing program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2017562208A
Other languages
English (en)
Other versions
JP6631641B2 (ja
Inventor
毅 長門
毅 長門
岡本 浩明
浩明 岡本
哲男 肥塚
哲男 肥塚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPWO2017126046A1 publication Critical patent/JPWO2017126046A1/ja
Application granted granted Critical
Publication of JP6631641B2 publication Critical patent/JP6631641B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/776Validation; Performance evaluation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/211Selection of the most significant subset of features
    • G06F18/2111Selection of the most significant subset of features by using evolutionary computational techniques, e.g. genetic algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/217Validation; Performance evaluation; Active pattern learning techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/12Computing arrangements based on biological models using genetic models
    • G06N3/126Evolutionary algorithms, e.g. genetic algorithms or genetic programming

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biophysics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Engineering & Computer Science (AREA)
  • Physiology (AREA)
  • Biomedical Technology (AREA)
  • Genetics & Genomics (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Mathematical Physics (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Multimedia (AREA)
  • Image Analysis (AREA)
  • Image Processing (AREA)

Abstract

画像処理プログラムによる画像処理精度の低下の兆候を検出する。記憶部(1a)は、複数のノード(N1〜N4)のそれぞれに部分プログラムが組み込まれた木構造をなす画像処理プログラム(2)を記憶する。演算部(1b)は、画像処理プログラム(2)にしたがって、撮像装置によって撮像された撮像画像(3)に対する画像処理を実行するたびに、複数のノード(N1〜N4)のうち終端ノードを除く中間ノードのそれぞれにおける処理結果(11〜13)に基づいて特徴量(20)を算出する。演算部(1b)は、時間経過に伴う特徴量(20)の変動量に基づいて、画像処理プログラム(2)の性能評価値を算出する。

Description

本発明は、画像処理装置、画像処理方法および画像処理プログラムに関する。
所望の画像処理を実行する画像処理プログラムを、遺伝的プログラミングによって自動生成する技術が注目されている。この技術は、入力画像と目標となる処理結果(例えば、目標画像)とを用いて、画像処理のための部分プログラムを組み合わせて生成される画像処理プログラムを、遺伝的プログラミングによって最適化していくものである。
また、画像処理アルゴリズムの作成に関する技術の例として、次のような外観検査装置が提案されている。この外観検査装置は、作成したアルゴリズムを用いて検査対象物の外観検査を実施し、その検査結果に基づいて評価値を算出し、評価値が所定の条件を満足するかによってアルゴリズムの再学習の必要性を判断する。
特開2006−293820号公報
青木紳也、長尾智晴、「木構造画像変換の自動構築法ACTIT」、情報メディア学会誌Vol.53,No.6、1999年6月20日、p.890−892
遺伝的プログラミングにより生成された画像処理プログラムを用いた画像処理の実行時においては、その画像処理対象の画像が撮像される環境や撮像対象物の仕様などの条件が変化していくのにしたがって、画像処理精度は低下していく。そのため、所望の画像処理精度が維持できないと判定された時点で、撮像環境や撮像対象物を変えて撮像した入力画像とその目標となる処理結果とを加えて、画像処理プログラムの再学習が行われる。
しかし、再学習により新たな画像処理プログラムが生成されるまでの間、画像処理プログラムを用いた画像処理を実行できない。例えば、製品の製造ライン上で部品の位置合わせや検査を行うために画像処理プログラムが用いられる場合、再学習により新たな画像処理プログラムが生成されるまで、製造ラインの運用を停止しなくてはならない。そのため、画像処理プログラムの再学習が必要となるタイミングを、画像処理精度が顕著に低下するよりどれだけ早く判定できるかが課題となる。
1つの側面では、本発明は、画像処理プログラムによる画像処理精度の低下の兆候を検出可能な画像処理装置、画像処理方法および画像処理プログラムを提供することを目的とする。
1つの案では、次のような記憶部および演算部を有する画像処理装置が提供される。記憶部は、複数のノードのそれぞれに部分プログラムが組み込まれた木構造をなす画像処理プログラムを記憶する。演算部は、画像処理プログラムにしたがって、撮像装置によって撮像された撮像画像に対する画像処理を実行するたびに、複数のノードのうち終端ノードを除く中間ノードのそれぞれにおける処理結果に基づいて特徴量を算出し、時間経過に伴う特徴量の変動量に基づいて、画像処理プログラムの性能評価値を算出する。
また、1つの案では、上記の画像処理装置と同様の処理がコンピュータによって実行される画像処理方法が提供される。
さらに、1つの案では、上記の画像処理装置と同様の処理をコンピュータに実行させる画像処理プログラムが提供される。
1つの側面では、画像処理プログラムによる画像処理精度の低下の兆候を検出できる。
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
第1の実施の形態に係る画像処理装置の構成例および処理例を示す図である。 第2の実施の形態に係る画像処理装置のハードウェア構成例を示す図である。 画像処理プログラムの再生成タイミングの例を示す図である。 認識率の遷移について示すグラフである。 プログラム再生成の必要性を評価するための指標の算出について説明するための図である。 部分プログラムの種類に応じたノード特徴量の算出方法の例を示す図である。 中間画像に分割領域を設定する場合の処理について説明するための図である。 時間経過に伴うノード特徴量の変化についての第1の例を示す図である。 時間経過に伴うノード特徴量の変化についての第2の例を示す図である。 画像処理装置が備える処理機能の構成例を示すブロック図である。 画像処理プログラムおよび基準情報の生成処理手順の例を示すフローチャートである。 画像処理プログラムの生成処理手順の例を示すフローチャートである。 生成された画像処理プログラムの実行時における処理手順の例を示すフローチャートである。 特徴量の算出例を示す図である。 第3の実施の形態に係る画像処理装置が備える処理機能の構成例を示すブロック図である。 第3の実施の形態における画像処理プログラムおよび基準情報の生成処理手順の例を示すフローチャートである。 第3の実施の形態における画像処理プログラムの実行時の処理手順の例を示すフローチャートである。 第4の実施の形態に係るプログラム生成装置および画像処理装置の処理機能の構成例を示すブロック図である。 第5の実施の形態に係る画像処理システムの構成例を示す図である。
以下、本発明の実施の形態について図面を参照して説明する。
[第1の実施の形態]
図1は、第1の実施の形態に係る画像処理装置の構成例および処理例を示す図である。画像処理装置1は、記憶部1aと演算部1bを有する。記憶部1aは、例えば、RAM(Random Access Memory)やHDD(Hard Disk Drive)などの記憶装置である。演算部1bは、例えば、プロセッサである。
記憶部1aには、画像処理プログラム2が記憶される。画像処理プログラム2は、複数のノードのそれぞれに部分プログラムが組み込まれた木構造をなす。また、画像処理プログラム2は、遺伝的プログラミングを用いて生成されたものである。遺伝的プログラミングを用いた画像処理プログラム2の生成では、それぞれが入力画像と目標データとを含む1組以上の学習データを用いて学習が行われる。学習により、木構造におけるノードの構造や各ノードに組み込まれる部分プログラムが最適化される。
図1の例では、画像処理プログラム2は、ノードN1〜N4を有する。演算部1bが撮像画像3を入力として画像処理プログラム2を実行したとき、次のような処理が実行される。なお、撮像画像3は、図示しない撮像装置によって撮像された画像である。
ノードN1では、ノードN1に組み込まれた部分プログラムにしたがって、入力端子Inに入力された撮像画像3に対する処理が実行され、処理結果11が出力される。ノードN2では、ノードN2に組み込まれた部分プログラムにしたがって、処理結果11に対する処理が実行され、処理結果12が出力される。ノードN3では、ノードN3に組み込まれた部分プログラムにしたがって、入力端子Inに入力された撮像画像3に対する処理が実行され、処理結果13が出力される。ノードN4では、ノードN4に組み込まれた部分プログラムにしたがって、処理結果12,13に対する処理が実行される。ノードN4は終端ノードとなっており、ノードN4での処理結果は出力端子Outから出力される。
演算部1bは、図示しない撮像装置から取得された撮像画像3を入力として、画像処理プログラム2を実行する。演算部1bは、画像処理プログラム2にしたがって画像処理を実行するたびに、ノードN1〜N4のうち終端ノードを除く中間ノード、すなわちノードN1〜N3での処理結果11〜13に基づいて、特徴量20を算出する(ステップS1)。
例えば、特徴量20は、処理結果11〜13のそれぞれに基づいて算出されるノード特徴量の組み合わせとして算出される。例えば、処理結果11〜13が画像として得られる場合、各画像における輝度の平均値が、それぞれノード特徴量として算出される。また、例えば、各中間ノードに組み込まれた部分プログラムの種類ごとに異なる計算方法でノード特徴量が算出されてもよい。
演算部1bは、算出された特徴量20の時間経過に伴う変動量に基づいて、画像処理プログラム2の性能評価値を算出する(ステップS2)。変動量は、例えば、画像処理プログラム2の生成時点で算出された初期特徴量と現在の特徴量20との距離として算出される。あるいは、画像処理プログラム2が直近の所定回数だけ実行されたときにそれぞれ算出された特徴量の変動幅が、変動量として算出されてもよい。
ここで、画像処理プログラム2の生成時においては、撮像環境の変化や撮像対象物の仕様の変化の予測に応じた学習データを用いて学習が行われることで、ロバスト性の高い画像処理プログラム2が生成される。しかし、画像処理プログラム2を用いた運用を開始してから時間が経過すると、その生成時には予測がつかなかったような撮像環境の変化や撮像対象物の仕様の変化が生じる場合がある。その場合、画像処理プログラム2による画像処理精度は低下していく。ここでいう画像処理精度とは、撮像画像に対する処理結果が、画像処理プログラム2のユーザが所望するような結果にどの程度近いかを示す。
画像処理精度の判定方法としては、撮像画像に対する画像処理プログラム2を用いた最終処理結果から判定する方法がある。しかし、最終処理結果から画像処理精度が低いと判定された時点で画像処理プログラム2の再生成が必要となるので、画像処理プログラム2を用いた運用を一時的に停止する必要が生じる。
これに対して、画像処理プログラム2の中間ノードでの処理結果には、終端ノードでの最終処理結果と比較して、撮像環境の変化や撮像対象物の状態変化が大きく影響する。これは、中間ノードに組み込まれる部分プログラムの中には、画像処理の最終結果を得るために画像から特徴を抽出するための部分プログラムが含まれ、抽出される特徴が撮像環境の変化や撮像対象物の状態変化によって大きく変動する可能性があるからである。このため、中間ノードでの処理結果に基づく特徴量の変動量を用いることで、撮像環境の変化や撮像対象物の状態変化が敏感に捉えられる。
すなわち、上記特徴量の変動量に基づいて算出される性能評価値を用いることで、画像処理プログラム2による画像処理精度が大きく低下する前に、その精度低下の兆候を検出して、画像処理プログラム2を再生成すべきであることを判定することができる。したがって、ある程度の画像処理精度を維持した状態で画像処理プログラム2を用いた運用を継続しながら、撮像環境の変化や撮像対象物の状態変化に対応した新たな学習データを追加して画像処理プログラム2を再生成することができる。
[第2の実施の形態]
次に、第2の実施の形態として、図1に示した画像処理装置1が備える判定機能に加え、遺伝的プログラミングを用いた画像処理プログラムの生成機能を備えた画像処理装置について説明する。
図2は、第2の実施の形態に係る画像処理装置のハードウェア構成例を示す図である。第2の実施の形態に係る画像処理装置100は、例えば、図2に示すようなコンピュータとして実現される。
画像処理装置100は、プロセッサ101によって装置全体が制御されている。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、またはPLD(Programmable Logic Device)である。また、プロセッサ101は、CPU、MPU、DSP、ASIC、PLDのうちの2以上の要素の組み合わせであってもよい。
プロセッサ101には、バス109を介して、RAM102と複数の周辺機器が接続されている。
RAM102は、画像処理装置100の主記憶装置として使用される。RAM102には、プロセッサ101に実行させるOS(Operating System)プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、プロセッサ101による処理に必要な各種データが格納される。
バス109に接続されている周辺機器としては、HDD103、グラフィック処理装置104、入力インタフェース105、読み取り装置106、通信インタフェース107およびネットワークインタフェース108がある。
HDD103は、画像処理装置100の補助記憶装置として使用される。HDD103には、OSプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、SSD(Solid State Drive)などの他の種類の不揮発性記憶装置を使用することもできる。
グラフィック処理装置104には、表示装置104aが接続されている。グラフィック処理装置104は、プロセッサ101からの命令にしたがって、画像を表示装置104aの画面に表示させる。表示装置としては、液晶ディスプレイや有機EL(ElectroLuminescence)ディスプレイなどがある。
入力インタフェース105には、入力装置105aが接続されている。入力インタフェース105は、入力装置105aから出力される信号をプロセッサ101に送信する。入力装置105aとしては、キーボードやポインティングデバイスなどがある。ポインティングデバイスとしては、マウス、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
読み取り装置106には、可搬型記録媒体106aが脱着される。読み取り装置106は、可搬型記録媒体106aに記録されたデータを読み取ってプロセッサ101に送信する。可搬型記録媒体106aとしては、光ディスク、光磁気ディスク、半導体メモリなどがある。
通信インタフェース107は、接続された外部デバイスとの間でデータの送受信を行う。本実施の形態では、通信インタフェース107には、外部デバイスとしてカメラ107aが接続され、通信インタフェース107は、カメラ107aから送信された画像データをプロセッサ101に送信する。
ネットワークインタフェース108は、ネットワーク108aを介して他の装置との間でデータの送受信を行う。
以上のようなハードウェア構成によって、画像処理装置100の処理機能を実現することができる。
ところで、前述のように、画像処理装置100は、遺伝的プログラミングによって画像処理プログラムを生成する機能を有する。この生成処理では、画像処理プログラムが木構造によって定義され、各ノードに部分プログラムが組み込まれる。そして、入力画像と目標となる処理結果(例えば、目標画像)とを含む学習データを用いた学習により、木構造におけるノードの構造や各ノードに組み込まれる部分プログラムが最適化される。
また、画像処理プログラムによって実現される画像処理としては、例えば、エッジ検出、領域検出、テンプレートマッチングがある。これらの画像処理では、例えば、入力画像における特定のエッジ、特定の領域、テンプレート画像の領域が、特定の画素値で表された画像が出力される。この場合、このような出力画像が、学習データに含まれる目標画像とされる。また、上記の画像処理では、例えば、入力画像における特定のエッジ、特定の領域、テンプレート画像の領域の位置情報が出力されてもよい。この場合、位置情報が、学習データに含まれる目標データとされる。
このような画像処理プログラムの用途の例としては、FA(Factory Automation)分野において、製品を撮像した画像に画像処理を施して所望の効果を得るという用途が考えられる。例えば、製品の外観を撮像した画像に画像処理を施して、欠陥が生じた箇所を抽出する、位置合わせを行う箇所を抽出する、特定の部品が搭載されているか否かを判定するといった用途が考えられる。
このような用途では、被写体となる製品の変更や改良、それに伴う撮像環境の変化などに応じて、画像処理アルゴリズムの再構築の必要が生じる場合がある。このため、画像処理アルゴリズムの構築の容易性が求められている。また、照明条件の変化や被写体の形状変化、位置姿勢のバラツキなどの状態変化に対するロバスト性が高い画像処理アルゴリズムを構築することが求められている。
遺伝的プログラミングを利用することで、入力画像とこれに対応する目標データとをあらかじめ用意しておくだけで、このような用途で使用可能な画像処理プログラムを容易に生成することができる。また、それぞれ撮像環境や撮像対象物の状態が異なる入力画像と目標データのペア(学習データ)を複数用意しておくことで、撮像環境の変化や撮像対象物の状態変化に対するロバスト性が高い画像処理アルゴリズムを自動生成することもできる。
ここで、図3は、画像処理プログラムの再生成タイミングの例を示す図である。画像処理プログラムの再生成が必要なタイミングを判定する方法としては、画像処理の最終処理結果に基づく画像処理精度を用いる方法が考えられる。図3では、画像処理の例として撮像対象物上の特定部分の位置を検出する処理を想定し、画像処理精度を示す指標の例として、特定部分の位置を正しく検出できた割合を示す認識率を示す。
例えば、ある製品を製造するための製造装置の開発が行われるとする。この場合、製造装置で用いられる画像処理プログラムも、製造装置の開発期間(期間P1)において生成される。画像処理プログラムの生成では、例えば、製品に搭載される部品51,52が写った撮像画像50aが、学習データの入力画像の1つとして用いられる。そして、撮像画像50aにおける部品51のエッジ51aおよび部品52のエッジ52aの各位置が、対応する目標データとして用いられる。
このようにして画像処理プログラムが生成され、製造装置も開発されると、製造装置および画像処理プログラムを用いた製品の製造が開始される(期間P2)。この期間P2において、例えば、照明の変化などの装置の周囲環境が徐々に変化していき、その変化に伴ってエッジ51a,52aの認識率が徐々に低下していったとする。そして、タイミングT1において認識率が許容できないほど低下したとする。例えば、タイミングT1において、照明の光量低下によって部品51,52の明るさが低下した撮像画像50bが撮像され、この撮像画像50bからエッジ51a,52aの位置を正しく検出できなかったとする。
この場合、部品51,52が暗く写った撮像画像(例えば撮像画像50b)を入力画像として含み、この撮像画像におけるエッジ51a,52aの位置を目標データとして含む学習データが追加された学習により、画像処理プログラムが再生成される(期間P3)。そして、再生成された画像処理プログラムを用いた製品の製造が再開される(期間P4)。
この後、例えば、タイミングT2において製品の仕様が変更され、部品51,52の取り付け角度が変更されたとする。そして、この変更により、認識率が許容できないほど低下したとする。例えば、この仕様変更後に撮像された撮像画像50cから、エッジ51a,52aの位置を正しく検出できなかったとする。
この場合、部品51,52の取り付け位置が変更された製品を撮像した撮像画像(例えば撮像画像50cを入力画像として含み、この撮像画像におけるエッジ51a,52aの位置を目標データとして含む学習データが追加された学習により、画像処理プログラムが再生成される(期間P5)。そして、再生成された画像処理プログラムを用いた製品の製造が再開される(期間P6)。
以上の図3の例のように、画像処理プログラムを用いた画像処理の最終結果から画像処理精度を判断して、画像処理プログラムの再生成が必要か否かを判定することが可能である。しかし、この方法では、実際に画像処理の出力に問題が生じた時点で画像処理プログラムの再生成が行われるので、新たな画像処理プログラムが生成されるまで画像処理プログラムの利用を停止する必要があるという問題がある。
図4は、認識率の遷移について示すグラフである。図4のグラフ61は、図3で説明したように画像処理の最終結果に基づく指標である認識率から画像処理精度の低下を判断し、画像処理プログラムの再生成を行った場合の認識率の遷移の例を示す。なお、時間軸方向においては画像プログラムの再生成の期間を含んでいない。グラフ61によれば、認識率が所定の閾値まで低下した場合に、画像処理プログラムが再生成され、認識率が回復している。
これに対して、第2の実施の形態に係る画像処理装置100は、グラフ62に示すように、撮像環境の変化や撮像対象物の状態変化が生じたときに、画像処理の最終結果に基づく指標より大きく変化するような新たな指標に基づいて、画像処理プログラムの再生成が必要なタイミングを判定する。このような新たな指標が大きく変動した場合に画像処理プログラムの再生成が必要と判定することで、画像処理プログラムの精度が大きく低下する前に画像処理プログラムの再生成を開始することができる。その結果、画像処理プログラムを用いて製品の製造工程を停止させずに、画像処理プログラムを更新することができる。
図5は、プログラム再生成の必要性を評価するための指標の算出について説明するための図である。第2の実施の形態に係る画像処理装置100は、画像処理プログラムの各中間ノードでの処理結果に基づいて、画像処理プログラムの再生成の必要性を評価するための指標を算出する。画像処理プログラムの中間ノードには、画像処理の最終結果を得るために入力画像内の特徴を検出するための画像フィルタが多く含まれる。これらの画像フィルタの処理結果は、撮像環境の変化や撮像対象物の状態変化に対して敏感に変化する。このため、中間ノードでの処理結果に基づく指標を用いることで、画像処理精度が劣化する兆候を早期に検知して、画像処理プログラムの再生成を開始できる。
図5では例として、ノードN11〜N31を有する画像処理プログラムを示している。この画像処理プログラムを用いた画像処理では、例えば、部品62,63が写っている撮像画像61aが入力されたとき、部品62のエッジ62aと部品63のエッジ63aの各位置が検出される。例えば、撮像画像61aが入力されたときの出力画像61bには、エッジ62aに対応する直線62bと、エッジ63aに対応する直線63bとが特定の輝度で表される。
画像処理装置100は、図5のような画像処理プログラムを実行するたびに、終端ノード(ノードN31)を除く中間ノード(ノードN11〜N30)のそれぞれにおける処理結果に基づいて、上記の指標を算出する。図5の例では、中間ノードであるノードN11〜N30のそれぞれにおける処理結果は、画像として出力される。以下、中間ノードでの処理結果を「中間処理結果」と記載し、中間処理結果として画像が出力される場合、その画像を「中間画像」と記載する。例えば、ノードN15での中間処理結果として中間画像64が出力され、ノードN26での中間処理結果として中間画像65が出力され、ノードN29での中間処理結果として中間画像66が出力される。
画像処理装置100は、各中間ノードでの中間処理結果に基づいて、画像処理プログラムの再生成の必要性を評価するための指標を算出する。以下、この指標を「特徴量」と記載する。具体的には、画像処理装置100は、各中間処理結果に基づいて中間処理結果ごとに「ノード特徴量」を算出する。そして、特徴量は、ノード特徴量の集合として表される。画像処理プログラムの中間ノード数をm個とすると、特徴量Fは(MF1,MF2,・・・,MFm)と表すことができる。
各中間ノードで中間画像が出力される場合、ノード特徴量は、例えば、中間画像における平均輝度として算出することができる。また、中間ノードに組み込まれている部分プログラムの種類ごとに、中間処理結果を基に異なる方法でノード特徴量が算出されてもよい。例えば、次の図6に示すような算出方法で中間画像からノード特徴量が算出されてもよい。
図6は、部分プログラムの種類に応じたノード特徴量の算出方法の例を示す図である。
部分プログラムがSmooth(平滑化)フィルタまたはInverse(階調反転)フィルタの場合、ノード特徴量は、中間画像における平均輝度として算出される。
部分プログラムがSobel(1次微分)フィルタまたはLaplace(2次微分)フィルタの場合、ノード特徴量は、中間画像における輝度の最大値または最小値、またはその両方として算出される。
部分プログラムがSub(差分)フィルタの場合、ノード特徴量は、中間画像の画素のうち、画素値が正となる画素の数または割合、もしくは、差分値が負となる画素の数または割合、もしくはその両方として算出される。
部分プログラムがAdd(加算)フィルタの場合、ノード特徴量は、中間画像の画素のうち、画素値が0より大きい所定値(例えば255)以上となる画素の数または割合として算出される。
部分プログラムがDiff(差分の絶対値)フィルタの場合、ノード特徴量は、中間画像の画素のうち、画素値が0である画素の数または割合として算出される。
部分プログラムがThreshold(閾値処理)フィルタ、And(論理積)フィルタ、Or(論理和)フィルタのいずれかである場合、ノード特徴量は、2値画像である中間画像の画素のうち、一方の画素値を有する画素(例えば白画素)の数または割合として算出される。
部分プログラムがErode(収縮)フィルタの場合、ノード特徴量は、2値画像である中間画像の画素のうち、一方の画素値を有する画素(例えば白画素)の減少量として算出される。
部分プログラムがDilate(膨張)フィルタの場合、ノード特徴量は、2値画像である中間画像の画素のうち、一方の画素値を有する画素(例えば白画素)の増加量として算出される。
これらの例のように、中間ノードに組み込まれている部分プログラムごとに異なる方法でノード特徴量を算出することで、撮像環境の変化や撮像対象物の状態変化をより正確に捉えることができる。その結果、画像処理プログラムの再生成タイミングの判定精度を向上させることができる。
図7は、中間画像に分割領域を設定する場合の処理について説明するための図である。図7に示すように、中間画像を複数の分割領域に分割し、分割領域ごとにノード特徴量が算出されてもよい。図7の例では、中間画像が横方向に3つに等分割されている。そして、中間画像64における分割領域64a,64b,64c、および中間画像66における分割領域66a,66b,66cのそれぞれについて、ノード特徴量が算出される。また、中間画像におけるいずれか1つの分割領域からノード特徴量が算出されてもよい。
図8は、時間経過に伴うノード特徴量の変化についての第1の例を示す図である。また、図9は、時間経過に伴うノード特徴量の変化についての第2の例を示す図である。
図8では、図7に示したノードN15から出力された中間画像を基に算出されたノード特徴量の変化を示している。ここでは、中間画像を横方向に3つに等分割して得られる分割領域ごとにノード特徴量を算出したものとする。グラフ71aは、中間画像のうち左側の分割領域(第1領域)に基づくノード特徴量の変化を示す。グラフ71bは、中間画像のうち中間の分割領域(第2領域)に基づくノード特徴量の変化を示す。グラフ71cは、中間画像のうち右側の分割領域(第3領域)に基づくノード特徴量の変化を示す。
また、図9では、図7に示したノードN29から出力された中間画像を基に算出されたノード特徴量の変化を示している。グラフ72aは、中間画像のうち左側の分割領域(第1領域)に基づくノード特徴量の変化を示す。グラフ72bは、中間画像のうち中間の分割領域(第2領域)に基づくノード特徴量の変化を示す。グラフ72cは、中間画像のうち右側の分割領域(第3領域)に基づくノード特徴量の変化を示す。
なお、図8,図9のいずれにおいても、ノード特徴量は、平均輝度として算出されている。
また、図8,図9に示すグラフ70は、画像処理プログラムの実行により入力された撮像画像から特定の領域が正しく認識されたかを示す認識結果の遷移を示す。認識結果「1」は正しく認識できたことを示し、認識結果「0」は正しく認識できなかったことを示す。グラフ70によれば、タイミングT11までは特定の領域が正しく認識できていたが、タイミングT11からは特定の領域が正しく認識できなくなっている。
グラフ71a〜71cとグラフ70とを比較すると、特にグラフ71bでは、タイミングT11より早い段階からノード特徴量の低下が始まっていることがわかる。また、グラフ72a〜72cとグラフ70とを比較すると、特にグラフ72bでは、タイミングT11より早い段階からノード特徴量の低下が始まっていることがわかる。したがって、時間結果に伴うノード特徴量の低下量を指標として用いることで、実際に画像処理精度が大きく低下するより前のタイミングで、画像処理プログラムの再生成が必要であることを判定することができる。
また、図8,図9によれば、第1領域や第3領域より第2領域に基づくノード特徴量を用いる方が、画像処理プログラムの再生成が必要なタイミングを正確に検知できることがわかる。この原因は、認識の対象とする特定の領域が第2領域に写っていることにあると考えられる。そこで、画像処理装置100は、各中間ノードに対応するノード特徴量を、中間画像の第2領域の情報のみから算出してもよい。これにより、再生成の必要性の判定精度を低下させることなく、ノード特徴量の算出処理時間を短縮でき、その結果、画像処理プログラムの再生成が必要かを判定するまでの時間を短縮できる。
中間画像に設定された分割領域のうちどの分割領域を用いてノード特徴量を算出するかは、認識の対象とする特定の領域が写っている可能性の高さから指定することができる。この指定は、例えば、製品の製造装置を管理する管理者の操作によって行うことができる。
次に、画像処理装置100の詳細について説明する。
図10は、画像処理装置が備える処理機能の構成例を示すブロック図である。画像処理装置100は、学習データ記憶部111、部分プログラム記憶部112、プログラム記憶部113、基準情報記憶部114、中間処理結果記憶部115、撮像画像取得部121、プログラム生成部122、基準情報算出部123、プログラム実行部124および判定処理部125を有する。
学習データ記憶部111、部分プログラム記憶部112、プログラム記憶部113、基準情報記憶部114および中間処理結果記憶部115は、例えば、RAM102あるいはHDD103などの画像処理装置100が備える記憶装置の記憶領域として実現される。撮像画像取得部121、プログラム生成部122、基準情報算出部123、プログラム実行部124および判定処理部125の各処理は、例えば、画像処理装置100が備えるプロセッサ101が所定のプログラムを実行することで実現される。
学習データ記憶部111には、画像プログラムの生成時に利用される学習データが記憶される。各学習データには、入力画像と、入力画像に対して画像処理を施した場合の目標となる目標データまたは目標画像とが含まれる。
部分プログラム記憶部112は、木構造をなす画像処理プログラムの各ノードに組み込むことが可能な複数種類の部分プログラムが記憶される。
プログラム記憶部113には、遺伝的プログラミングによって生成された画像処理プログラムが記憶される。実際には、プログラム記憶部113には、生成された画像処理プログラムのノードの接続構成と、各ノードに組み込まれた部分プログラムの識別情報とが記憶されればよい。
基準情報記憶部114には、生成された画像処理プログラムを実行した際に、画像処理プログラムの再生成が必要かを判定するために利用される各種の基準情報が記憶される。
中間処理結果記憶部115には、生成された画像処理プログラムを実行した際に、各中間ノードでの処理によって出力された中間処理結果が記憶される。
撮像画像取得部121は、カメラ107aによって撮像された撮像画像を取得する。取得された撮像画像は、例えば、学習データに含まれる入力画像として利用される。また、撮像画像取得部121は、生成された画像処理プログラムをプログラム実行部124が実行する際に、カメラ107aから撮像画像を取得してプログラム実行部124に出力する。
プログラム生成部122は、学習データ記憶部111に記憶された学習データを用いて、遺伝的プログラミングによって画像処理プログラムを生成する。この生成時において、プログラム生成部122は、各ノードに組み込む部分プログラムを部分プログラム記憶部112から取得する。プログラム生成部122は、生成した画像処理プログラムについての情報をプログラム記憶部113に格納する。
基準情報算出部123は、画像処理プログラムの生成時に用いた各学習データを用いて、生成された画像処理プログラムを実行し、各中間ノードでの中間処理結果を基に基準情報を算出して、基準情報記憶部114に格納する。基準情報は、生成された画像処理プログラムがプログラム実行部124に実行された際に、画像処理プログラムの再生成が必要かを判定するために利用される。基準情報には、初期特徴量と閾値とがある。
プログラム実行部124は、プログラム記憶部113の情報に基づいて、生成された画像処理プログラムを構築し、撮像画像取得部121によって取得された撮像画像を入力として、構築された画像処理プログラムを実行する。また、プログラム実行部124は、中間処理結果出力部126を有する。中間処理結果出力部126は、画像処理プログラムの実行時に各中間ノードから出力された中間処理結果を、中間処理結果記憶部115に格納する。
判定処理部125は、中間処理結果記憶部115に格納された中間処理結果に基づいて特徴量を算出する。判定処理部125は、算出した特徴量と、基準情報記憶部114に格納された基準情報とに基づいて、画像処理プログラムの再生成が必要かを判定する。
次に、画像処理装置100の処理についてフローチャートを用いて説明する。
まず、図11は、画像処理プログラムおよび基準情報の生成処理手順の例を示すフローチャートである。
[ステップS11]プログラム生成部122は、画像処理プログラムの生成時に用いる学習データを設定する。例えば、画像処理プログラムの初回生成時には、プログラム生成部122は、ユーザの操作に応じて、撮像画像取得部121によって取得された撮像画像を、学習データの入力画像として学習データ記憶部111に格納する。また、プログラム生成部122は、入力画像に対応する目標画像または目標データを、ユーザの操作に応じて生成し、入力画像に対応づけて学習データ記憶部111に格納する。これにより、学習データ記憶部111には、1組以上の学習データが記憶される。
また、画像処理プログラムの再生成時には、プログラム生成部122は、前回の再生成から現在までにプログラム実行部124でのプログラム実行時に入力画像として利用された撮像画像の少なくとも一部を、学習データの入力画像として学習データ記憶部111に格納する。また、プログラム生成部122は、それらの入力画像に対応する目標画像または目標データを、ユーザの操作に応じて生成し、入力画像に対応づけて学習データ記憶部111に格納する。これにより、学習データ記憶部111には、新たな学習データが追加される。
[ステップS12]プログラム生成部122は、学習データ記憶部111に記憶された学習データを用いて、遺伝的プログラミングによって画像処理プログラムを生成する。プログラム生成部122は、生成した画像処理プログラムについての情報をプログラム記憶部113に格納する。
[ステップS13]基準情報算出部123は、ステップS12のプログラム生成処理において利用された学習データの中から、1つを選択する。
[ステップS14]基準情報算出部123は、選択した学習データの入力画像を入力として、生成した画像処理プログラムを実行し、画像処理プログラムの各中間ノードでの中間処理結果を算出する。基準情報算出部123は、算出した各中間処理結果に基づいて特徴量を算出する。前述のように、特徴量は、各中間ノードでの中間処理結果に基づいて算出されたノード特徴量の集合として表される。
[ステップS15]基準情報算出部123は、プログラム生成処理において利用されたすべての学習データについて処理済みかを判定する。未処理の学習データがある場合、ステップS13に戻り、未処理の学習データが1つ選択される。一方、すべての学習データについて処理済みの場合、ステップS16の処理が実行される。
[ステップS16]基準情報算出部123は、各学習データに基づいて算出された特徴量を用いて、基準情報として初期特徴量F0と閾値THとを算出し、基準情報記憶部114に格納する。
ステップS12のプログラム生成処理でn組の学習データが利用されたとすると、ステップS16が実行される時点でn組の特徴量が算出されている。基準情報算出部123は、これらのn組の特徴量の平均を、初期特徴量F0として算出する。具体的には、基準情報算出部123は、n組の特徴量に含まれる中間ノードごとのノード特徴量の平均値を算出する。画像処理プログラムのノード数をmとすると、この演算により、ノード特徴量の平均値がm個含まれる初期特徴量F0が算出される。なお、図6に示したように中間ノードに組み込まれている部分プログラムの種類ごとに異なる方法でノード特徴量が算出された場合には、各ノード特徴量が正規化された上で平均値が算出される。
また、基準情報算出部123は、n組の特徴量のバラツキ度合いを示す数値を、閾値THとして算出する。例えば、基準情報算出部123は、n組の特徴量のそれぞれと初期特徴量F0との距離を算出する。距離としては、例えば、ユークリッド距離またはマハラノビス距離が算出される。基準情報算出部123は、算出されたn個の距離の平均値AVEと標準偏差σとを算出する。基準情報算出部123は、平均値AVEと標準偏差σとの加算値を、閾値THとして算出する。
図12は、画像処理プログラムの生成処理手順の例を示すフローチャートである。この図12の処理は、図11のステップS12の処理に対応する。
[ステップS121]プログラム生成部122は、母集団に含める複数の初期個体を生成する。各初期個体のノードには、部分プログラム記憶部112に記憶された複数種類の部分プログラムの中から部分プログラムがランダムに選択されて組み込まれる。
[ステップS122]プログラム生成部122は、母集団の中からランダムに一定数の親個体を選択する。以下、例として2つの親個体が選択されるものとする。
[ステップS123]プログラム生成部122は、選択された2つの親個体に対して進化過程の処理を施すことで、2以上の一定数の子個体を生成する。進化過程では、2つの親個体に対して交叉処理および突然変異処理が行われる。2つの親個体に対して、それぞれ異なる交叉処理や突然変異処理が行われることで、3つ以上の子個体が生成されてもよい。
[ステップS124]プログラム生成部122は、ステップS122で選択された親個体、およびステップS123で生成された子個体のそれぞれについて、適応度を算出する。この処理では、対象の個体それぞれを用いた画像処理が、各学習データに含まれる各入力画像に対して実行され、実行後の画像と対応する目標画像または目標データとが比較されることで適応度が計算される。学習データが複数組存在する場合、個体それぞれについて、複数組の学習データをそれぞれ用いて得られた適応度の平均値が算出される。
なお、ステップS121で母集団が生成された時点で母集団に含まれる初期個体の適応度が算出されてもよい。この場合、ステップS124では、生成された子個体の適応度だけが算出される。
[ステップS125]プログラム生成部122は、生成された子個体および元の親個体のうちのいずれかの適応度が、所定の閾値より大きいかを判定する。すべての適応度が閾値以下である場合には、ステップS126の処理が実行される。1以上の適応度が閾値より大きい場合には、ステップS127の処理が実行される。
[ステップS126]プログラム生成部122は、ステップS122で選択された親個体、およびステップS123で生成された子個体の中から、生存選択を行う。例えば、算出された適応度が最大の個体が第1の生存個体として選択され、さらに残りの個体の中から、適応度に応じた確率で第2の生存個体が選択される。プログラム生成部122は、母集団に含まれる個体のうち、ステップS122で親個体として選択された2つの個体を、第1の生存個体および第2の生存個体に入れ替える。これにより、母集団の世代が更新される。
[ステップS127]プログラム生成部122は、ステップS122で選択された親個体、およびステップS123で生成された子個体のうち、適応度が最大の個体を最良個体として選択する。選択された最良個体が、最適化された画像処理プログラムとなる。プログラム生成部122は、選択された最良個体を表す情報をプログラム記憶部113に保存する。
図13は、生成された画像処理プログラムの実行時における処理手順の例を示すフローチャートである。
[ステップS21]撮像画像取得部121は、カメラ107aに画像を撮像させ、撮像画像をカメラ107aから取得する。
[ステップS22]プログラム実行部124は、プログラム記憶部113の情報に基づいて、生成された画像処理プログラムを構築する。プログラム実行部124は、撮像画像取得部121によって取得された撮像画像を入力として、構築された画像処理プログラムを実行し、最終処理結果を出力する。また、中間処理結果出力部126は、画像処理プログラムの実行時に各中間ノードから出力された中間処理結果を中間処理結果記憶部115に格納する。
[ステップS23]判定処理部125は、中間処理結果記憶部115に記憶された中間ノードごとの中間処理結果に基づいて、特徴量Fを算出する。この算出では、判定処理部125は、中間ノードごとに、中間処理結果に基づいてノード特徴量を算出する。ノード数がmの場合、特徴量Fにはm個のノード特徴量が含まれる。
[ステップS24]判定処理部125は、算出した特徴量Fと、基準情報記憶部114に記憶された初期特徴量F0との距離D1を算出する。距離D1は、図11のステップS16と同じ方法で計算される。この距離D1は、画像処理プログラムの性能評価値を示す。
[ステップS25]判定処理部125は、算出した距離D1と、基準情報記憶部114に記憶された閾値THとを比較する。判定処理部125は、距離D1が閾値THより大きい場合、画像処理プログラムの再生成が必要と判定して、ステップS26の処理を実行する。一方、判定処理部125は、距離D1が閾値TH以下の場合、画像処理プログラムの再生成が不要と判定して処理を終了する。
[ステップS26]判定処理部125は、例えば、画像処理プログラムの再生成が必要である旨を示す情報を表示装置104aに表示する。そして、遺伝的プログラミングによって画像処理プログラムが再生成される。このとき、判定処理部125は、例えば、プログラム実行部124が直近の複数回画像処理プログラムを実行したときに入力された撮像画像を、新たな学習データの入力画像として学習データ記憶部111に格納する。また、ユーザの操作に応じた処理により、新たな入力画像に対応する目標画像または目標データが生成され、入力画像に対応付けて学習データ記憶部111に格納される。これにより、学習データ記憶部111に新たな学習データが追加される。そして、図11に示した処理が実行される。図11のステップS11では、プログラム生成部122は、既存の学習データと追加された学習データとを、プログラム生成により利用する学習データに設定する。
図14は、特徴量の算出例を示す図である。この図14では、説明を簡単にするために、画像処理プログラムに第1ノードおよび第2ノードの2つの中間ノードのみ含まれるものとする。
図14のグラフ81は、プログラム生成部122によって画像処理プログラムが生成された際の特徴量の分布を示す。グラフ81における丸印は、それぞれ個別の入力画像を入力として画像処理プログラムを実行したときに算出された特徴量についての、第1ノードのノード特徴量と第2ノードのノード特徴量の座標空間における位置を示す。図11のステップS16では、これらの特徴量に基づいて初期特徴量F0と閾値THが算出される。グラフ81に示すように、初期特徴量F0を中心として閾値THを半径とする円83の中に上記各特徴量が含まれるように、初期特徴量F0と閾値THが算出される。
一方、図14のグラフ82は、生成された画像処理プログラムがプログラム実行部124によって実行された際の特徴量の分布を示す。グラフ82における丸印は、それぞれ個別の撮像画像を入力として画像処理プログラムを実行したときに算出された特徴量についての、第1ノードのノード特徴量と第2ノードのノード特徴量の座標空間における位置を示す。図13のステップS25の判定処理は、算出された特徴量の座標空間上の位置が円83に含まれるか否かを判定することと同等である。
特徴量の位置が円83に含まれる場合、プログラム生成時からの特徴量の変動量が一定の範囲内に収まっていることから、撮像環境の変化や撮像対象物の状態変化が大きくないと判断される。この場合、画像処理プログラムの再生成の必要がないと判定される。一方、特徴量の位置が円83の範囲外である場合、プログラム生成時からの特徴量の変動量が一定の範囲から逸脱していることから、撮像環境の変化または撮像対象物の状態変化が許容できないほど大きくなったと判断される。この場合、画像処理プログラムの再生成が必要であると判定される。
このように、第2の実施の形態に係る画像処理装置100によれば、生成された画像処理プログラムを実行するたびに、画像処理プログラムの性能低下の兆候を正確に捉え、画像処理精度が大きく低下する前に画像処理プログラムの再生成が必要であることを判定できる。その結果、画像処理プログラムを用いた運用を停止せずに、再学習により画像処理プログラムを生成し直すことができる。
[第3の実施の形態]
次に、第3の実施の形態に係る画像処理装置について説明する。第3の実施の形態に係る画像処理装置は、第2の実施の形態に係る画像処理装置100の処理の一部を変形したものである。
図15は、第3の実施の形態に係る画像処理装置が備える処理機能の構成例を示すブロック図である。図15では、図10と共通する構成要素には同じ符号を付して示している。第3の実施の形態に係る画像処理装置100aは、図10の基準情報記憶部114、中間処理結果記憶部115、基準情報算出部123、判定処理部125の代わりに、基準情報記憶部114a、中間処理結果記憶部115a、基準情報算出部123a、判定処理部125aを備える。
基準情報算出部123aは、基準情報として閾値THのみ算出する点で図10の基準情報算出部123とは異なり、基準情報記憶部114aは、基準情報として閾値THのみ記憶する点で図10の基準情報記憶部114とは異なる。判定処理部125aは、プログラム実行部124により画像処理プログラムが実行された際に算出した特徴量を、中間処理結果記憶部115aに格納する点と、距離D1の代わりに指標D2を算出する点で、図10の判定処理部125とは異なる。中間処理結果記憶部115aは、プログラム実行部124によって直近のp回、画像処理プログラムが実行された際に判定処理部125aによって算出された特徴量をさらに保持する点で、図10の中間処理結果記憶部115と異なる(なお、pは2以上の整数)。すなわち、中間処理結果記憶部115aは、中間処理結果に加え、p組の特徴量を保持する。
図16は、第3の実施の形態における画像処理プログラムおよび基準情報の生成処理手順の例を示すフローチャートである。この図16の処理では、図11の処理におけるステップS16がステップS16aに置き換えられている。なお、ステップS13〜S15の処理は、基準情報算出部123の代わりに基準情報算出部123aによって実行されるが、その処理内容は同じである。
[ステップS16a]基準情報算出部123aは、各学習データに基づいて算出された特徴量を用いて、基準情報として閾値THを算出し、基準情報記憶部114aに格納する。閾値THの算出方法は、図11のステップS16と同様である。
図17は、第3の実施の形態における画像処理プログラムの実行時の処理手順の例を示すフローチャートである。この図17の処理は、図13の処理におけるステップS23〜S25がステップS23a〜S25aに置き換えられている。なお、ステップS22では、中間処理結果は中間処理結果記憶部115aに格納される。
[ステップS23a]判定処理部125aは、図13のステップS23と同様の手順で、中間処理結果記憶部115aに記憶された中間ノードごとの中間処理結果に基づいて、特徴量Fを算出する。中間ノードの数がmの場合、特徴量Fにはm個のノード特徴量が含まれる。判定処理部125aは、算出した特徴量Fを中間処理結果記憶部115aに保存する。このとき、判定処理部125aは、直近に算出されたp組の特徴量Fだけが中間処理結果記憶部115aに保持されるように制御する。
[ステップS24a]判定処理部125aは、中間処理結果記憶部115aからp組の特徴量Fを読み込む。判定処理部125aは、p組の特徴量Fのバラツキ度合いを示す指標D2を算出する。この指標D2は、画像処理プログラムの性能評価値を示す。
指標D2は、例えば、閾値THと同様の計算方法によって算出される。すなわち、判定処理部125aは、まず、p組の特徴量Fの平均である平均特徴量を算出する。具体的には、判定処理部125aは、p組の特徴量に含まれる中間ノードごとのノード特徴量の平均値を算出する。画像処理プログラムのノード数をmとすると、この演算により、ノード特徴量の平均値がm個含まれる平均特徴量が算出される。なお、図6に示したように中間ノードに組み込まれている部分プログラムの種類ごとに異なる方法でノード特徴量が算出された場合には、各ノード特徴量が正規化された上で平均値が算出される。次に、基準情報算出部123aは、p組の特徴量のそれぞれと平均特徴量との距離を算出する。基準情報算出部123aは、算出されたn個の距離の平均値と標準偏差とを算出する。基準情報算出部123aは、平均値と標準偏差との加算値を、指標D2として算出する。
[ステップS25a]判定処理部125aは、算出した指標D2と、基準情報記憶部114に記憶された閾値THとを比較する。判定処理部125aは、指標D2が閾値THより大きい場合、画像処理プログラムの再生成が必要と判定して、ステップS26の処理を実行する。一方、判定処理部125aは、指標D2が閾値TH以下の場合、画像処理プログラムの再生成が不要と判定して処理を終了する。
以上の画像処理装置100aによれば、直近の所定回数の画像処理プログラムの実行時にそれぞれ算出された特徴量Fの変動量に基づいて、撮像環境の変化や撮像対象物の状態変化の大きさが検出される。これにより、画像処理プログラムの性能低下の兆候を正確に捉え、画像処理精度が大きく低下する前に画像処理プログラムの再生成が必要であることを判定できる。
なお、上記の画像処理装置100aは、直近の所定回数の画像処理プログラムの実行時にそれぞれ算出された特徴量Fを用いて指標D2を算出した。しかし、他の例として、画像処理装置100aは、直近の一定時間内に画像処理プログラムを実行したときにそれぞれ算出された特徴量Fを用いて、指標D2を算出してもよい。この場合、指標D2の算出のために利用される特徴量Fの数は可変となる。
[第4の実施の形態]
第2の実施の形態に係る画像処理装置100、または第3の実施の形態に係る画像処理装置100aが備えるプログラム生成機能とプログラム実行機能は、それぞれ個別の装置が備えていてもよい。以下、そのようなシステムを第4の実施の形態として例示する。
図18は、第4の実施の形態に係るプログラム生成装置および画像処理装置の処理機能の構成例を示すブロック図である。この図18では、第2の実施の形態に係る画像処理装置100が備えるプログラム生成機能とプログラム実行機能を、それぞれプログラム生成装置200、画像処理装置300が備えるものとする。なお、図18では、図10と同じ構成要素には同じ符号を付している。また、プログラム生成装置200および画像処理装置300は、例えば、図2に示したようなハードウェア構成のコンピュータとして実現可能である。
プログラム生成装置200は、学習データ記憶部111、部分プログラム記憶部112、プログラム生成部122および基準情報算出部123を有する。ただし、プログラム生成部122は、学習データに入力画像として登録する撮像画像をカメラから取得する場合には、例えば、撮像画像を画像処理装置300の撮像画像取得部121を介して取得する。また、プログラム生成部122は、生成した画像処理プログラムを画像処理装置300に送信し、画像処理装置300のプログラム記憶部113に格納する。また、基準情報算出部123は、算出した基準情報を画像処理装置300に送信し、画像処理装置300の基準情報記憶部114に保存する。
画像処理装置300は、プログラム記憶部113、基準情報記憶部114、中間処理結果記憶部115、撮像画像取得部121、プログラム実行部124および判定処理部125を有する。なお、画像処理装置300にはカメラ107aが接続されており、撮像画像取得部121は、カメラ107aから撮像画像を取得する。
このような構成により、遺伝的プログラミングによる画像処理プログラムの生成および基準情報の算出が、プログラム生成装置200で実行される。そして、生成された画像処理プログラムの実行および画像処理プログラムを再生成すべきかの判定が、画像処理装置300で実行される。
なお、第3の実施の形態に係る画像処理装置100aが備えるプログラム生成機能とプログラム実行機能を、それぞれプログラム生成装置200、画像処理装置300が備える場合には、図18の構成は次のように変形される。プログラム生成装置200は、基準情報算出部123の代わりに基準情報算出部123aを備える。画像処理装置300は、基準情報記憶部114、中間処理結果記憶部115、判定処理部125の代わりに、基準情報記憶部114a、中間処理結果記憶部115a、判定処理部125aを備える。
[第5の実施の形態]
図19は、第5の実施の形態に係る画像処理システムの構成例を示す図である。第5の実施の形態に係る画像処理システムは、複数台の端末装置410,420,430とサーバ装置440とを有する。端末装置410,420,430は、ネットワーク450を介してサーバ装置440と接続されている。また、端末装置410,420,430には、カメラ411,421,431がそれぞれ接続されている。なお、端末装置410,420,430およびサーバ装置440は、例えば、図2に示したようなハードウェア構成のコンピュータとして実現可能である。
図19に示した構成の画像処理システムにおいて、第2の実施の形態に係る画像処理装置100または第3の実施の形態に係る画像処理装置100aの各処理機能を実現することができる。例えば、画像処理装置100または画像処理装置100aの処理機能を、サーバ装置440が備える。この場合、サーバ装置440は、カメラ411,421,431で撮像された撮像画像を、それぞれ端末装置410,420,430を介して取得する。また、サーバ装置440は、画像処理装置100または画像処理装置100aの処理を、カメラ411,421,431ごとに個別に実行する。あるいは、サーバ装置440は、画像処理プログラムおよび基準情報の生成処理については共通に実行してもよい。
また、他の例として、図18のプログラム生成装置200の処理機能がサーバ装置440で実現され、画像処理装置300の処理機能が端末装置410,420,430で実現されてもよい。この場合、例えば、プログラム生成装置200の処理機能は、端末装置410,420,430のそれぞれについて個別に実現されてもよいし、共通に実現されてもよい。後者の場合、サーバ装置440で共有に生成された画像処理プログラムと基準情報が、端末装置410,420,430に配信される。
なお、上記の各実施の形態に示した装置(画像処理装置1,100,100a,300、プログラム生成装置200、端末装置410,420,430、サーバ装置440)の処理機能は、コンピュータによって実現することができる。その場合、各装置が有すべき機能の処理内容を記述したプログラムが提供され、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc-Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムにしたがった処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムにしたがった処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムにしたがった処理を実行することもできる。
上記については単に本発明の原理を示すものである。さらに、多数の変形、変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応するすべての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
1 画像処理装置
1a 記憶部
1b 演算部
2 画像処理プログラム
3 撮像画像
11〜13 処理結果
20 特徴量

Claims (8)

  1. 複数のノードのそれぞれに部分プログラムが組み込まれた木構造をなす画像処理プログラムを記憶する記憶部と、
    前記画像処理プログラムにしたがって、撮像装置によって撮像された撮像画像に対する画像処理を実行するたびに、前記複数のノードのうち終端ノードを除く中間ノードのそれぞれにおける処理結果に基づいて特徴量を算出し、時間経過に伴う前記特徴量の変動量に基づいて、前記画像処理プログラムの性能評価値を算出する演算部と、
    を有する画像処理装置。
  2. 前記演算部は、前記性能評価値に基づいて、前記画像処理プログラムを遺伝的プログラミングによって再生成すべきかを判定する、
    請求項1記載の画像処理装置。
  3. 前記演算部は、前記画像処理プログラムを遺伝的プログラミングによって生成する際に利用した入力画像に対して、前記画像処理プログラムにしたがって初期画像処理を施し、前記各中間ノードにおける処理結果に基づいて前記中間ノードごとにノード特徴量を算出し、前記ノード特徴量のバラツキ度合いを示す指標に基づいて閾値を算出し、
    前記判定では、前記性能評価値と前記指標との比較に基づいて前記画像処理プログラムを再生成すべきかを判定する、
    請求項2記載の画像処理装置。
  4. 前記演算部は、前記画像処理プログラムを遺伝的プログラミングによって生成する際に利用した入力画像に対して、前記画像処理プログラムにしたがって初期画像処理を施し、前記各中間ノードにおける処理結果に基づいて初期特徴量を算出し、
    前記評価値の算出では、前記特徴量と前記初期特徴量との距離を前記性能評価値として算出する、
    請求項1または2記載の画像処理装置。
  5. 前記評価値の算出では、直近の複数回数の前記画像処理の実行時にそれぞれ算出された前記特徴量のバラツキ度合いを示す指標を、前記性能評価値として算出する、
    請求項1乃至3のいずれか1項に記載の画像処理装置。
  6. 前記特徴量の算出では、前記各中間ノードに組み込まれた前記部分プログラムの種類ごとに異なる算出方法で、前記中間ノードごとにノード特徴量を算出し、前記ノード特徴量に基づいて前記特徴量を算出する、
    請求項1,2,4,5のいずれか1項に記載の画像処理装置。
  7. コンピュータが、
    複数のノードのそれぞれに部分プログラムが組み込まれた木構造をなす画像処理プログラムにしたがって、撮像装置によって撮像された撮像画像に対する画像処理を実行するたびに、前記複数のノードのうち終端ノードを除く中間ノードのそれぞれにおける処理結果に基づいて特徴量を算出し、
    時間経過に伴う前記特徴量の変動量に基づいて、前記画像処理プログラムの性能評価値を算出する、
    画像処理方法。
  8. コンピュータに、
    複数のノードのそれぞれに部分プログラムが組み込まれた木構造をなす画像処理プログラムにしたがって、撮像装置によって撮像された撮像画像に対する画像処理を実行するたびに、前記複数のノードのうち終端ノードを除く中間ノードのそれぞれにおける処理結果に基づいて特徴量を算出し、
    時間経過に伴う前記特徴量の変動量に基づいて、前記画像処理プログラムの性能評価値を算出する、
    処理を実行させる画像処理プログラム。
JP2017562208A 2016-01-20 2016-01-20 画像処理装置、画像処理方法および画像処理プログラム Active JP6631641B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2016/051519 WO2017126046A1 (ja) 2016-01-20 2016-01-20 画像処理装置、画像処理方法および画像処理プログラム

Publications (2)

Publication Number Publication Date
JPWO2017126046A1 true JPWO2017126046A1 (ja) 2018-09-20
JP6631641B2 JP6631641B2 (ja) 2020-01-15

Family

ID=59362679

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017562208A Active JP6631641B2 (ja) 2016-01-20 2016-01-20 画像処理装置、画像処理方法および画像処理プログラム

Country Status (4)

Country Link
US (1) US11468261B2 (ja)
JP (1) JP6631641B2 (ja)
CN (1) CN108475425B (ja)
WO (1) WO2017126046A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113168368B (zh) * 2018-11-28 2023-09-29 株式会社特拉斯特技术 编程装置及记录介质
JP7238376B2 (ja) * 2018-12-14 2023-03-14 富士通株式会社 情報処理システム及び情報処理システムの制御方法
JP7206892B2 (ja) * 2018-12-20 2023-01-18 富士通株式会社 画像検査装置、画像検査のための学習方法および画像検査プログラム
JP7079745B2 (ja) * 2019-03-08 2022-06-02 日立Astemo株式会社 演算装置
JP7173308B2 (ja) * 2019-05-09 2022-11-16 日本電信電話株式会社 検知装置、検知方法および検知プログラム
CN110428399B (zh) * 2019-07-05 2022-06-14 百度在线网络技术(北京)有限公司 用于检测图像的方法、装置、设备和存储介质
JP2021074360A (ja) * 2019-11-12 2021-05-20 株式会社日立製作所 医用画像処理装置及び医用画像処理方法、医用画像処理プログラム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012203634A (ja) * 2011-03-25 2012-10-22 Toshiba Corp 認識装置、方法及びプログラム
WO2014104151A1 (ja) * 2012-12-28 2014-07-03 富士通株式会社 画像処理装置及び特徴検出方法
JP5541426B1 (ja) * 2012-08-10 2014-07-09 コニカミノルタ株式会社 画像処理装置、画像処理方法および画像処理プログラム
JP2015064625A (ja) * 2013-09-24 2015-04-09 株式会社Screenホールディングス 画像処理装置、画像処理方法およびプログラム

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS51100804A (en) 1975-02-28 1976-09-06 Chubu Rika Kk Insatsuyoheibanno saiseishoriho oyobi saiseihin
JP2001092972A (ja) * 1999-09-24 2001-04-06 Mamoru Minami 画像認識方法
JP4827285B2 (ja) 2000-09-04 2011-11-30 東京エレクトロン株式会社 パターン認識方法、パターン認識装置及び記録媒体
CN100565556C (zh) * 2004-05-14 2009-12-02 欧姆龙株式会社 特定被摄体检测装置
EP1774469A1 (en) 2004-07-26 2007-04-18 Koninklijke Philips Electronics N.V. System and method for automated suspicious object boundary determination
JP2006293820A (ja) * 2005-04-13 2006-10-26 Sharp Corp 外観検査装置、外観検査方法およびコンピュータを外観検査装置として機能させるためのプログラム
US20140321756A9 (en) * 2008-05-27 2014-10-30 Samsung Electronics Co., Ltd. System and method for circling detection based on object trajectory
RU2492586C2 (ru) * 2008-10-27 2013-09-10 Ниппон Телеграф Энд Телефон Корпорейшн Способ автоматического формирования процедуры генерации прогнозируемого значения пикселя, способ кодирования изображений, способ декодирования изображений, соответствующее устройство, соответствующие программы и носители информации, которые хранят программы
JP4678060B2 (ja) * 2009-03-25 2011-04-27 株式会社ニコン 撮像装置および画像処理プログラム
JP5448758B2 (ja) * 2009-11-30 2014-03-19 キヤノン株式会社 情報処理装置、情報処理方法、情報処理システム、プログラム及びデータ構造
GB201215944D0 (en) * 2012-09-06 2012-10-24 Univ Manchester Image processing apparatus and method for fittng a deformable shape model to an image using random forests
EP2806374B1 (en) * 2013-05-24 2022-07-06 Tata Consultancy Services Limited Method and system for automatic selection of one or more image processing algorithm
US10095718B2 (en) * 2013-10-16 2018-10-09 University Of Tennessee Research Foundation Method and apparatus for constructing a dynamic adaptive neural network array (DANNA)
JP6344469B2 (ja) * 2014-06-11 2018-06-20 富士通株式会社 プログラム生成装置、プログラム生成方法およびプログラム
WO2015194006A1 (ja) * 2014-06-19 2015-12-23 富士通株式会社 プログラム生成装置、プログラム生成方法およびプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012203634A (ja) * 2011-03-25 2012-10-22 Toshiba Corp 認識装置、方法及びプログラム
JP5541426B1 (ja) * 2012-08-10 2014-07-09 コニカミノルタ株式会社 画像処理装置、画像処理方法および画像処理プログラム
WO2014104151A1 (ja) * 2012-12-28 2014-07-03 富士通株式会社 画像処理装置及び特徴検出方法
JP2015064625A (ja) * 2013-09-24 2015-04-09 株式会社Screenホールディングス 画像処理装置、画像処理方法およびプログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
長門毅、肥塚哲男: "生産ラインにおける画像処理プログラムの自動生成技術", FUJITSU VOL.66 NO.5, vol. 第66巻, JPN6019028312, 1 September 2015 (2015-09-01), JP, pages 27 - 33, ISSN: 0004081647 *

Also Published As

Publication number Publication date
CN108475425A (zh) 2018-08-31
WO2017126046A1 (ja) 2017-07-27
US20180322364A1 (en) 2018-11-08
US11468261B2 (en) 2022-10-11
JP6631641B2 (ja) 2020-01-15
CN108475425B (zh) 2022-03-08

Similar Documents

Publication Publication Date Title
WO2017126046A1 (ja) 画像処理装置、画像処理方法および画像処理プログラム
JP6751235B2 (ja) 機械学習プログラム、機械学習方法、および機械学習装置
US20180174062A1 (en) Root cause analysis for sequences of datacenter states
JP6511986B2 (ja) プログラム生成装置、プログラム生成方法および生成プログラム
JP6646234B2 (ja) プログラム生成装置、プログラム生成方法および生成プログラム
JP6015670B2 (ja) 画像処理装置及び画像処理方法
US20180174072A1 (en) Method and system for predicting future states of a datacenter
JPWO2013089265A1 (ja) 辞書作成装置、画像処理装置、画像処理システム、辞書作成方法、画像処理方法及びプログラム
US20220245405A1 (en) Deterioration suppression program, deterioration suppression method, and non-transitory computer-readable storage medium
US20190050740A1 (en) Accelerated decision tree execution
JP2024500904A (ja) 人工知能でセキュリティ問題を自動修復するための技術
US11328176B2 (en) Information processing apparatus, information processing method, and storage medium
US11688175B2 (en) Methods and systems for the automated quality assurance of annotated images
CN114724254B (zh) 确定动作类别的方法、装置、设备、存储介质
TW202316215A (zh) 用於工業機器的預測性維護
WO2017056320A1 (ja) プログラム生成装置、プログラム生成方法および生成プログラム
JP2020191017A (ja) 情報処理装置、情報処理方法および情報処理プログラム
JP6331914B2 (ja) アルゴリズム生成装置、アルゴリズム生成方法及びアルゴリズム生成用コンピュータプログラム
WO2023087234A1 (en) Artificial intelligence (ai) -assisted context-aware pipeline creation
US20240104908A1 (en) Evaluation method
WO2024098813A1 (zh) 图像的异常检测方法、装置、设备和存储介质
WO2023102714A1 (en) Decentralized active-learning model update and broadcast mechanism in internet-of-things environment
US20230316731A1 (en) Information processing apparatus, information processing method, and non-transitory computer-readable storage medium
JP2021120816A (ja) 情報処理プログラム、情報処理方法、及び情報処理装置
TW202226068A (zh) 圖像對比方法及相關設備

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180530

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190730

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190927

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20190927

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20190927

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20191112

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191125

R150 Certificate of patent or registration of utility model

Ref document number: 6631641

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150