JP2022135080A - 画像処理装置および画像処理方法 - Google Patents

画像処理装置および画像処理方法 Download PDF

Info

Publication number
JP2022135080A
JP2022135080A JP2021034666A JP2021034666A JP2022135080A JP 2022135080 A JP2022135080 A JP 2022135080A JP 2021034666 A JP2021034666 A JP 2021034666A JP 2021034666 A JP2021034666 A JP 2021034666A JP 2022135080 A JP2022135080 A JP 2022135080A
Authority
JP
Japan
Prior art keywords
learning
image
original image
data
image processing
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.)
Pending
Application number
JP2021034666A
Other languages
English (en)
Other versions
JP2022135080A5 (ja
Inventor
啓治 渡邊
Keiji Watanabe
英勝 杉山
Hidekatsu Sugiyama
敬史 山崎
Takashi Yamazaki
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2021034666A priority Critical patent/JP2022135080A/ja
Priority to US17/683,065 priority patent/US20220292814A1/en
Publication of JP2022135080A publication Critical patent/JP2022135080A/ja
Publication of JP2022135080A5 publication Critical patent/JP2022135080A5/ja
Pending legal-status Critical Current

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/774Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/0002Inspection of images, e.g. flaw detection
    • G06T7/0004Industrial image inspection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/0002Inspection of images, e.g. flaw detection
    • G06T7/0012Biomedical image inspection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/22Image preprocessing by selection of a specific region containing or referencing a pattern; Locating or processing of specific regions to guide the detection or recognition
    • 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/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10072Tomographic images
    • G06T2207/10088Magnetic resonance imaging [MRI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20021Dividing image into blocks, subimages or windows
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20076Probabilistic image processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20112Image segmentation details
    • G06T2207/20132Image cropping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30004Biomedical image processing
    • G06T2207/30061Lung

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Multimedia (AREA)
  • Quality & Reliability (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Radiology & Medical Imaging (AREA)
  • Nuclear Medicine, Radiotherapy & Molecular Imaging (AREA)
  • Image Analysis (AREA)

Abstract

【課題】検査対象の画像に含まれる異常部分を、機械学習モデルを用いて検出する画像処理装置において、サイズの小さな異常部分の検出率を向上させること。【解決手段】画像処理装置は、検査対象を撮影した第1の元画像から生成した複数の部分画像を用いて、学習モデルの学習用データを生成する。また、画像処理装置は、検査対象を撮影した第2の元画像の部分画像を入力データとして、学習済の学習モデルを用いて推論処理を行う。【選択図】図5

Description

本発明は画像処理装置および画像処理方法に関する。
機械学習モデルを用いた画像認識(分類)は、性能の向上とともに広く利用されるようになっている。また、分類精度を高めるために、異なる機械学習モデルで別個に分類した結果に基づいて最終的な分類を決定することも知られている(特許文献1)。
特開2020-112926号公報
一方で、検査対象を撮影した画像に含まれる異常部分を、機械学習モデルを用いて検出する従来の画像処理装置においては、サイズの小さな異常部分の検出率が低いという問題があった。
そこで本発明は、検査対象の画像に含まれる異常部分を、機械学習モデルを用いて検出する画像処理装置および画像処理方法において、サイズの小さな異常部分の検出率を向上させることを目的の1つとする。
上述の目的は、検査対象を撮影した第1の元画像から学習モデルの学習用データを生成する生成手段と、学習用データを用いて学習モデルを学習する学習手段と、検査対象を撮影した第2の元画像から生成した入力データに対し、学習済の学習モデルを用いて推論処理を行う推論手段と、を有し、生成手段は、第1の元画像から複数の部分画像を生成し、複数の部分画像を用いて学習用データを生成し、推論手段は、第2の元画像の部分画像を入力データとして用いる、ことを特徴とする画像処理装置によって達成される。
本発明によれば、検査対象の画像に含まれる異常部分を、機械学習モデルを用いて検出する画像処理装置および画像処理方法において、サイズの小さな異常部分の検出率を向上させることができる。
画像処理システム100の構成を示す図 クラウドサーバ200、エッジサーバ300の構成を示すブロック図 (a)はスマートフォン500の外観例を、(b)は構成例を示す図 (a)および(b)はプリンタ600の外観例を、(c)は構成例を示す図 処理システム100のソフトウェア構成を示す図 学習モデル252、学習済モデル352を利用する際の入出力の構造を示す概念図 第1実施形態における学習前の処理の内容を示す図 第1実施形態における学習時と推論時の構成を示す図 第1実施形態におけるテスト画像の処理の内容を示す図 第2実施形態における学習前の処理の内容を示す図 画像の分割方法を示す図 第2実施形態におけるテスト画像の処理の内容を示す図 第3実施形態における学習時と推論時の構成を示す図 第3実施形態における学習時と推論時の構成を示す図
以下、添付図面を参照して本発明をその例示的な実施形態に基づいて詳細に説明する。なお、以下の実施形態は特許請求の範囲に係る発明を限定しない。また、実施形態には複数の特徴が記載されているが、その全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
また、以下では、機械学習モデルを画像処理装置の外部装置に配置し、画像処理装置が外部装置に画像を提供し、外部装置が機械学習モデルの学習や、学習済みモデルを利用した認識(分類)を行う画像処理システムで発明を実施する形態について説明する。しかしながら、画像処理装置が機械学習モデルを有し、画像処理装置が発明を実施する構成であってもよい。
●<第1実施形態>
(画像処理システムの構成)
図1は、本発明の一実施形態としての画像処理システム100の全体構成例を示すブロック図である。画像処理システム100は、クラウドサーバ200、エッジサーバ300、およびデバイス400が互いに通信可能に接続された構成を有する。ここでは、クラウドサーバ200がインターネット上に、エッジサーバ300およびデバイス400がローカルエリアネットワーク(LAN)102上に存在する構成例について説明する。しかし、クラウドサーバ200、エッジサーバ300、およびデバイス400は、任意の構成によって接続されうる。また、クラウドサーバ200とエッジサーバ300とに分離することも必須でなく、両者の機能を1つのサーバで実施してもよい。さらに、クラウドサーバ200およびエッジサーバ300で実施する機能を、デバイス400が実施してもよい。
デバイス400は、クラウドサーバ200およびエッジサーバ300と通信可能な電子機器の総称である。図1では、デバイス400の例示として、デジタルカメラ402、クライアント端末401、スマートフォン500、プリンタ600を示している。しかしながら、デバイス400は、通信インタフェースを有し、画像データを供給可能な任意の電子機器を含みうる。なお、クライアント端末401は、パーソナルコンピュータ、タブレット端末、ゲーム機などのコンピュータ機器である。以下では、デジタルカメラ402、クライアント端末401、スマートフォン500、プリンタ600に共通する構成および動作については、デバイス400の構成および動作として説明する。
なお、インターネット104とLAN102とを接続するルータ103に、無線LANのアクセスポイント機能を持たせてもよい。この場合、デバイス400はルータ103が提供するアクセスポイントを通じてLAN102に接続することができる。例えばプリンタ600やクライアント端末401は有線で、スマートフォン500やデジタルカメラ402は無線でLAN102に接続するように構成することも可能である。デバイス400およびエッジサーバ300は、ルータ103を介して接続されたインターネット104を経由してクラウドサーバ200と相互に通信することが可能である。
エッジサーバ300とデバイス400はLAN102を経由して相互に通信可能である。また、デバイス400間でもLAN102を経由して相互に通信可能である。また、スマートフォン500とプリンタ600はLAN102経由に加えて近距離無線通信101によっても通信可能である。近距離無線通信101は、例えばBluetooth(登録商標)規格やNFC規格などに則った無線通信であってよい。スマートフォン500は携帯電話回線網105とも接続されており、携帯電話回線網105を介してクラウドサーバ200と通信することもできる。
図1に示した構成は一例であり、異なる構成を有してもよい。例えばルータ103以外の機器がアクセスポイントとして機能してもよい。また、エッジサーバ300とデバイス400とがLAN102とは異なる形態で接続されてもよい。例えばLPWA(Low Power, Wide Area)に分類される無線アクセス技術、ZigBee、Bluetooth、赤外線通信、近距離無線通信101などによる無線接続、USBなどの有線接続といった様々な形態が考えられる。
(サーバの構成)
図2は、クラウドサーバ200およびエッジサーバ300の構成例を示すブロック図である。以下ではクラウドサーバ200の構成について説明するが、エッジサーバ300についても同じ機能を有するものとする。
クラウドサーバ200は、装置全体を制御するメインボード210と、ネットワーク接続ユニット201、ハードディスクユニット202を有する。
メインボード210に配置されるCPU211は、内部バス212を介して接続されているプログラムメモリ213(ROM)に格納されている制御プログラムと、データメモリ214(RAM)に格納されている設定内容や変数などに従って動作する。CPU211はプログラムを実行することにより、サーバ200の動作を制御する。
CPU211は、ネットワーク制御回路215を介してネットワーク接続ユニット201を制御することで、インターネット104やLAN102などのネットワークを通じて他の装置と通信する。CPU211はまた、ハードディスク制御回路216を介して接続されたハードディスクユニット202にデータを書き込んだり、ハードディスクユニット202からデータを読み出したりすることができる。
ハードディスクユニット202には、プログラムメモリ213にロードしてCPU211が実行するオペレーティングシステムや、サーバ200の制御ソフトウェア、アプリケーションソフトウェア、各種のデータなどが格納される。
メインボード210の内部バス212にはGPU217が接続されている。GPU217は各種の演算処理をCPU211の代わりに実行することができる。GPU217は並列処理を高速に実行できるため、ニューラルネットワークをディープラーニングのような手法で学習するための演算や、学習済みモデルを用いた推論のための演算をCPU211より効率的に実行できる。本実施形態では、後述の学習部251の処理を、CPU211に加えてGPU217を用いて実施する。具体的には、CPU211とGPU217とが協同して演算を行うことにより、機械学習モデルの実装と学習とを実現する。なお、学習部251はCPU211とGPU217のいずれか一方のみを用いて実施されてもよい。また、推論部351についても学習部251と同様、GPU217を用いて実施することができる。
本実施形態ではエッジサーバ300をクラウドサーバ200と同じ構成であるものとしたが、異なる構成であってもよい。例えば、エッジサーバ300のメインボード210にはGPU217が搭載されなくてもよい。また、クラウドサーバ200とエッジサーバ300とでは、名称が同じ構成の性能が異なっていてもよい。
(スマートフォン500の外観)
図3(a)は、スマートフォン500のディスプレイ面を正面から見た外観例と、スマートフォン500が有する通信ユニットの例を示す図である。スマートフォン500は、タッチディスプレイおよびカメラと、インターネットなどのデータネットワークへの接続機能を有し、OS上で様々なアプリケーションを実行可能な、携帯電話機の総称である。
近距離無線通信ユニット501は、通信範囲内に存在する他の機器が有する近距離無線通信ユニットと通信することができる。無線LANユニット502は、通信範囲内に存在する、無線LANのアクセスポイントや他の機器が有する無線LANユニットと通信することができる。回線接続ユニット503は、携帯電話回線網に接続して通信することができる。これらの通信ユニットは、スマートフォン500の筐体内に格納され、筐体表面などに設けられたアンテナを通じて通信する。
タッチディスプレイ504はタッチパネルを備えるLCDや有機ELディスプレイパネルである。タッチディスプレイ504の表示画面が存在する面をスマートフォン500の前面とする。タッチディスプレイ504に対するタッチ操作が検出されると、スマートフォン500は、タッチディスプレイ504の表示内容に応じてタッチ操作を解釈し、様々な動作を実行する。電源ボタン505はスマートフォン500の電源をオンおよびオフするためのボタンである。
(スマートフォンの構成)
図3(b)は、スマートフォン500の構成例を示すブロック図である。スマートフォン500は、装置全体を制御するメインボード510と、無線LANユニット502と、近距離無線通信ユニット501と、回線接続ユニット503とを有する。
メインボード510に配置されるCPU511は、内部バス512を介して接続されているプログラムメモリ513(ROM)に格納されている制御プログラムと、データメモリ514(RAM)に格納されている設定内容や変数などに従って動作する。CPU511はプログラムを実行することにより、スマートフォン500の動作を制御する。
CPU511は、無線LAN制御回路515を介して無線LANユニット502を制御することで、通信範囲内に存在する、無線LANのアクセスポイントや他の機器が有する無線LANユニットと通信することができる。CPU511は近距離無線通信制御回路516を介して近距離無線通信ユニット501を制御することで、通信範囲内に存在する他の近距離無線通信端末を検知したり、他の近距離無線通信端末との間でデータを送受信したりすることができる。またCPU511は回線制御回路517を介して回線接続ユニット503を制御することで、携帯電話回線網105に接続し、音声やデータを送受信することができる。CPU511は操作部制御回路518を制御することで、タッチディスプレイ504の表示内容を制御したり、タッチ操作を検出したりすることができる。
CPU511はカメラ部519を制御することで静止画および動画を撮影することができる。CPU511は撮影によって得られた画像のデータを、データメモリ514内の画像メモリ520に格納する。また、CPU511は、携帯電話回線、LAN102、および近距離無線通信101を通じて外部から取得した画像データを画像メモリ520に格納したり、画像メモリ520に格納された画像データを外部に送信したりすることもできる。
不揮発性メモリ521は電源をオフされてもデータを保持する。そのため、連絡先や通信履歴、保存する画像データなどのユーザデータ、アプリケーションソフトウェアなどが格納される。
(プリンタの外観)
図4は、プリンタ600の外観例を示す図である。本実施形態ではプリンタ600が複合機もしくはマルチファンクションプリンタ(MFP)と呼ばれる、スキャナを備えたプリンタであるものとする。図4(a)はプリンタ600の外観例を示す斜視図である。原稿台601はガラスなどの透明材料で構成され、読み取る原稿を置く場所である。原稿台圧板602は開閉可能であり、閉じた状態で原稿台601を押圧するとともに、原稿台601を遮光する。印刷用紙挿入口603にセットされた様々なサイズの記録媒体は印刷時に一枚ずつに搬送され、印刷部を通って印刷用紙排出口604から排出される。
図4(b)はプリンタ600上面の外観例と、プリンタ600が備える通信ユニットを模式的に示している。原稿台圧板602の天面には操作パネル605および近距離無線通信ユニット606が設けられている。近距離無線通信ユニット606は通信範囲内に存在する他の機器が有する近距離無線通信ユニットと通信することができる。また、無線LANアンテナ607は、不図示の無線LANユニットに接続され、通信範囲内に存在する、無線LANのアクセスポイントや他の機器が有する無線LANユニットとプリンタ600が通信することを可能とする。
(プリンタの構成)
図4(c)は、プリンタ600の構成例を示すブロック図である。プリンタ600は、装置全体を制御するメインボード610と、無線LANユニット608と、近距離無線通信ユニット606とを有する。
メインボード610に配置されるCPU611は、内部バス612を介して接続されているプログラムメモリ613(ROM)に格納されている制御プログラムと、データメモリ614(RAM)に格納されている設定内容や変数などに従って動作する。CPU611はプログラムを実行することにより、プリンタ600の動作を制御する。
CPU611はスキャナ部615を制御して原稿を読み取り、読み取った画像データをデータメモリ614中の画像メモリ616に格納する。また、CPU611は印刷部317を制御してデータメモリ614中の画像メモリ616の画像を記録媒体に印刷することができる。
CPU611は、無線LAN制御回路618を介して無線LANユニット608を制御することで、通信範囲内に存在する、無線LANのアクセスポイントや他の機器が有する無線LANユニットと通信することができる。CPU611は近距離無線通信制御回路620を介して近距離無線通信ユニット606を制御することで、通信範囲内に存在する他の近距離無線通信端末を検知したり、他の近距離無線通信端末との間でデータを送受信したりすることができる。
CPU611は操作部制御回路621を制御することで、操作パネル605にプリンタ600の状態やメニュー画面などを表示したり、操作パネル605の操作を検出したりすることができる。操作パネル605にはバックライトが備えられており、CPU611は操作部制御回路621を介してバックライトの点灯、消灯を制御することができる。
(ソフトウェア構成)
図5は、画像処理システム100のソフトウェア構成例を示す図である。説明および理解を容易にするため、図5には、画像処理システム100で稼働するソフトウェアのうち、本実施形態の説明に必要な、学習および推論の処理に関するソフトウェアのみを示している。例えばオペレーティングシステムやミドルウェア、メンテナンスのためのアプリケーションなどは図示していない。
クラウドサーバ200は、学習データ生成部250、学習部251、学習モデル252を有する。学習データ生成部250は、外部から受信したデータから、学習モデル252の学習用データを生成するモジュールである。学習用データは、入力データXと、入力データXに対する学習結果の正解を示す教師データTとを有する。学習データ生成部250は、生成した学習用データを学習部251に供給する。
学習部251は、学習データ生成部250が生成した学習用データを用いて、学習モデル252の学習を実行するプログラムモジュールである。学習モデル252は、学習部251で行った学習の結果を蓄積する。ここでは、学習モデル252を、ニューラルネットワークを用いて実装するものとする。学習用データを用い、ニューラルネットワークの各ノード間の重み付けパラメータを公知の方法で最適化することにより、学習モデル252の学習を実行する。
パラメータの最適化(学習)が完了した学習モデル252(学習済モデル)は、クラウドサーバ200からエッジサーバ300に供給され、エッジサーバ300に学習済モデル352として保持される。なお、学習モデル252の全体をエッジサーバ300に供給してもよいし、エッジサーバ300での推論処理に必要な部分のみをエッジサーバ300に供給してもよい。エッジサーバ300は、学習済モデル352を用いて入力データの分類や、入力データに基づく数値の予測(回帰)といった推論処理を実行することができる。
エッジサーバ300は、データ収集・提供部350、推論部351、学習済モデル352を有する。データ収集・提供部350は、デバイス400から受信したデータや、エッジサーバ300が自ら収集したデータを、学習用データを生成するためのデータとしてクラウドサーバ200に送信するモジュールである。推論部351は、デバイス400から受信したデータに基づく入力データを学習済モデル352に与えて推論処理を実行し、学習済モデル352の出力をデバイス400に返送するプログラムモジュールである。
デバイス400は、アプリケーション部450、データ送受信部451を有する。アプリケーション部450は、デバイス400で各種の機能を実現するモジュールである。ここでは、アプリケーション部450に含まれるアプリケーションモジュールが、エッジサーバ300が有する学習済モデル352を利用するものとする。
データ送受信部451は、デバイス400で取得したデータのうち、学習モデル252の学習に用いるデータをエッジサーバ300のデータ収集・提供部350に送信する。データ送受信部451は、デバイス400で取得したり生成したりしたデータのうち、推論処理に用いるデータをエッジサーバ300の推論部351に送信する。データ送受信部451は、エッジサーバ300の推論部351から推論処理の結果を受信すると、結果を推論処理の依頼元であるアプリケーションモジュールに供給する。
なお、本実施形態ではクラウドサーバ200で学習した学習モデル252をエッジサーバ300に供給し、エッジサーバ300における推論処理に用いる構成を示した。しかし、学習モデルを設ける場所や、学習済モデルを用いた処理を行う場所は変更してもよい。例えば、デバイス400に学習モデルを実装し、学習モデルの学習や学習モデルを用いた推論処理もデバイス400で実施してもよい。例えば、学習モデルに関する演算に要する処理速度や消費電力の大きさと、デバイス400が有するハードウェア資源との関係から、学習モデルをデバイス400に配置するか否かを決定することができる。そして、学習モデルをデバイス400に配置することができない、もしくは配置が望ましくない場合には、学習モデルを外部装置に配置する。
また、学習モデルを外部装置に配置する場合、デバイス400と同じネットワーク上の外部装置に学習モデルを配置した方が、異なるネットワーク上の外部装置のいずれに配置するよりも推論処理の結果を取得するのに要する時間を短縮することができる。
本実施形態では、大量の入力データを用いる学習についてはエッジサーバ300よりも処理能力が高いクラウドサーバ200で実施し、推論処理についてはエッジサーバ300で実施する。推論処理についてはエッジサーバ300で実施することで、推論処理に必要な通信時間を短縮することができる。
学習と推論処理とを異なる主体で実施する場合、それぞれの処理に適した構成を採用することができるため、資源を節約したり、より高速に実行できる構成を用いたりすることができる。なお、学習モデルを設ける場所や、学習済モデルを用いた処理を行う場所は、例えばネットワークの状態などに応じて動的に変更してもよい。例えば通常はエッジサーバ300で推論処理を実施するが、エッジサーバ300の負荷が高い場合にはクラウドサーバ200で推論処理を実施するようにしてもよい。
(学習モデル)
図6は、学習モデル252の学習処理と、学習済モデル352を利用した推論処理とを模式的に示した図である。
図6(a)は、学習処理における学習モデル252の入出力データと、学習の手法に関して模式的に示した図である。入力データX 801は、学習モデル252の入力層に供給される。入力データX 801の詳細については後述する。
入力データX 801を機械学習モデルである学習モデル252で処理した結果として出力データY 803が出力される。学習時には、入力データX 801に対する処理の正解データとして教師データT 802が与えられる。したがって、出力データY 803と教師データT 802とを損失関数804に与えることにより、正解(教師データ)に対する処理結果のずれ量L 805が得られる。多数の学習用データについて、ずれ量L 805が0に近づくように、学習モデル252を構成するニューラルネットワークのノード間の結合重み付け係数等を更新する。誤差逆伝播法は、ずれ量L 805が小さくなるように、ニューラルネットワークのノード間の結合重み付け係数等を最適化する手法の一例である。
機械学習の具体的なアルゴリズムの例としては、最近傍法、ナイーブベイズ法、決定木、サポートベクターマシンなどがある。また、ニューラルネットワークを利用して、学習するための特徴量、結合重み付け係数を自ら生成する深層学習(ディープラーニング)や深層距離学習も知られている。本実施形態ではこれら公知のアルゴリズムのうち、機械学習の用途などを考慮して適宜利用することができる。学習モデル252の実装方法は特に制限されない。学習モデル252は例えば畳み込みニューラルネットワーク(CNN)、回帰結合型ニューラルネットワーク(RNN)、オートエンコーダ、敵対的生成ネットワーク(GAN)などによって実装することができる。
図6(b)は、推論処理における学習済モデル352の入出力データを示した図である。入力データX 811は、学習済モデル352の入力層に供給される。入力データX 811の詳細については後述する。入力データX 811は、学習時に用いられる入力データX 801と同じ形式であるが、対応する教師データが存在しない。
入力データX 811を学習済モデル352で処理した結果として出力データY 813)が出力される。推論処理では出力データY 813を処理結果としてデバイス400に返送する。学習済モデル352は、学習モデル252と同一構成のニューラルネットワークによって実装されてもよいし、学習モデル252のうち、推論処理に必要な部分のみを学習済モデル352として有してもよい。学習モデル252よりも少ない構成とすることにより、学習済モデル352のデータ量を削減したり、推論処理時の演算時間を短縮したりすることができる。
図7は、画像処理システム100を用いて半導体基板の検査画像から異常を検出する際に学習モデル252に適用する学習用データの具体例を示している。図7(a)は、学習用データに用いる元画像(第1の元画像)データ900の例を示している。元画像(元画像データ)900は、半導体基板の表面を撮影して得られた画像データであり、異常部分905が画像の中心部分に位置するように撮影されているものとする。
元画像データ900の解像度は224×224画素であり、異常部分905の水平および垂直方向の大きさは数画素から数十画素である。半導体プロセスでは基板上の極めて小さい異常も不具合の原因となりうる。また、半導体基板には反りが生じていたり、異常部分によって表面に凹凸が存在していたりする。そのため、撮影範囲全体で鮮明な画像が取得できるように、検査画像の撮影には焦点深度が大きい(例えば5μm以上の)レンズを用いる。
本実施形態では元画像データ900をそのまま学習に用いるのではなく、元画像データ900から抽出した複数の部分画像(部分画像データ)901を学習に用いる。具体的には、元画像を水平および垂直方向のそれぞれに2等分して得られる4つの部分画像と、これら4つの部分画像と同じ大きさで、元画像の中心部分から抽出した1つの部分画像とのデータを学習に用いる。中心部分から抽出した部分画像の中心は、元画像の中心と等しい。図7(b)では、この画像抽出処理を前処理として記載している。また、等分割により得られる4つの部分画像を左下、左上、右下、右上と記載し、中心部分から抽出した1つの部分画像を中心と記載している。
このように、224×224画素の元画像データ900から、112×112画素の部分画像データ901を5つ生成する。このような前処理により、左下、左上、右下、右上の部分画像は、画像の中心から離れた位置に異常部分が存在する画像となる。部分画像を生成することにより、画像内における異常箇所の位置を分散させることができる。また、画像に占める異常部分の割合(面積比)を増加させることができる。さらに、元画像の全領域をまとめて学習に用いる場合よりも多くの画像で学習を行うことができる。具体的には、図7の例では、元画像の数の5倍の画像を用いて学習することができる。
ここでは、学習済モデル352を用いた推論処理により、入力データを、異常が含まれるデータと、異常が含まれないデータとに分類する。したがって、個々の部分画像についての正しい分類を教師データとして用意する。具体的には、図7(c)に示すように、認識すべき異常が存在する画像902をクラスA、認識すべき異常が存在しない(正常な)画像903をクラスBとして、人間が目視で部分画像(データ)901を確認して分類することにより、教師データを生成した。
なお、ここでは説明および理解を容易にするため、推論処理によって入力データを2つのクラスに分類するものとして説明したが、3以上のクラスに分類してもよい。また、認識すべき異常の有無以外の基準によってクラスを規定してもよい。また、教師データを目視以外の方法によって生成してもよい。例えば、目視で確認した画像を元に作成した簡易的な学習モデルを作成して部分画像に対する教師データを生成してもよい。
図8は、本実施形態における画像処理システム100における学習処理および推論処理の流れと、関連するデータとを模式的に示した図である。図7を用いて説明した、認識すべき異常が存在するクラスAの画像902と、認識すべき異常が存在しない(正常な)クラスBの画像903とをデバイス400から、エッジサーバ300を経由して学習データ生成部250に供給する。また、教師データを目視に基づいて生成する場合には、教師データについてもデバイス400から学習データ生成部250に供給する。
学習データ生成部250は、クラスAの画像902とクラスBの画像903とから、学習用データとして入力データ801と教師データ802とを生成し、学習部251に供給する。教師データが画像と共に与えられる場合、学習データ生成部250は供給された教師データを用いてもよい。学習部251は、学習用データを用いて学習モデル252の学習を行い、損失関数が示すずれ量Lが予め定められた閾値未満になると、学習を完了する。この時点で、学習モデル252が学習済モデルとなる。そして、学習モデル252の全部または一部がエッジサーバ300に供給され、学習済モデル352として保存される。
その後、テスト画像904を入力データ811として学習済モデル352に供給し、判定されたクラスを出力データとして取得する。なお、テスト画像904は学習に用いる入力データ801と同じサイズ(112×112画素)であるが、元画像からの生成方法が異なる。
図9(a)は、学習済モデル352を用いて異常の有無を判定するための元画像900の例を示している。デバイス400のデータ送受信部451は、元画像900(第2の元画像)をエッジサーバ300のデータ収集・提供部350および推論部351に送信する。推論部351は、元画像900からテスト画像904を生成し、入力データ811として学習済モデル352に供給する。
推論部351は、図9(b)に示すように、元画像900のそれぞれについて、テスト画像904の中心が元画像900の中心と一致するように画像中心部分をトリミングして、112×112画素のテスト画像904を生成する。画像3のように、トリミングにより、テスト画像904における異常の位置が画像の周辺部となる場合もある。しかし、学習済モデル352は、異常が周辺部に存在する画像を含んだ入力データを用いて学習したものであるため、画像3のようなテスト画像についても精度のよい判定ができる。
図8に示した処理を行う、エッジサーバ300およびクラウドサーバ200が有する機械学習に係る構成は、例えば深層学習ライブラリとしてKerasを、KerasのバックエンドとしてTensorFlowを用いて実装することができる。しかしながら、他のバックエンドを用いてもよい。また、オープンソース、市販品を問わず、例えば、TensorFlow、Caffe、Chainer、Pytorch、HALCON、VisionPro Vidiなど、他の公知の機械学習フレームワークを用いて実装することもできる。また、既製のフレームワークを用いずに実装してもよい。
本実施形態による学習済モデルと、元画像をそのまま用いる従来の方法で学習した学習済モデルとを用い、判定精度を比較した。その結果、本実施形態による学習済モデルの方が、判定精度が高いことが確認できた。
●(第2実施形態)
次に、本発明の第2実施形態について説明する。なお、本実施形態は第1実施形態で説明した画像処理システム100で実施可能であるため、第1実施形態と共通の内容については説明を省略する。
本実施形態は、検査対象の撮影画像の任意の位置に異常部分が存在しうるという点において、異常部分が撮影画像の中心部分に存在する第1実施形態と異なる。ここでは異常部分の位置が不定である検査対象の撮影画像の一例として、MRI画像を用いるものとする。図10(a)は元画像900の例を示す。本実施形態において元画像900の解像度は600×600画素であり、異常部分の水平および垂直方向の大きさは数十画素である。
第1実施形態では異常部分が元画像の中心部分に位置するように撮影されていた。そのため、元画像900から学習用画像を生成する際に、元画像900を垂直および水平方向に等分割した4つの部分画像に加え、中心部分から1つの部分画像を抽出した。
これに対し本実施形態では、異常部分が元画像内で様々な位置に存在するため、中心部分からの抽出を行わない。したがって、図10(b)に示すように、元画像900を分割して部分画像901を生成する。図10(b)は、元画像900を水平および垂直方向に2等分し、300×300画素の部分画像901を4つ生成する例を示している。
なお、水平方向および垂直方向の一方について元画像900を分割して部分画像901を生成してもよい。図11(a)は元画像900を垂直方向にのみ3分割して部分画像901を生成する例を、図11(b)は元画像900を水平方向にのみ3分割して部分画像901を生成する例を、それぞれ示している。
本実施形態においても、元画像900から複数の部分画像を生成して学習用画像とすることにより、画像全体に対する検出対象(例えば異常部分)の占める割合を高めることができる。また、画像内において存在する位置が不定な検出対象について効率的に学習することができる。結果として、検出対象の認識精度を高めることができる。
ここでは、学習済モデル352を用いた推論処理により、入力データを、異常が含まれるデータと、異常が含まれないデータとに分類する。したがって、個々の部分画像901についての正しい分類を教師データとして用意する。具体的には、図10(c)に示すように、認識すべき異常が存在する画像902をクラスA、認識すべき異常が存在しない(正常な)画像903をクラスBとして、人間が目視で部分画像901を確認して分類することにより、教師データを生成した。
なお、ここでは説明および理解を容易にするため、推論処理によって入力データを2つのクラスに分類するものとして説明したが、3以上のクラスに分類してもよい。また、認識すべき異常の有無以外の基準によってクラスを規定してもよい。また、教師データを目視以外の方法によって生成してもよい。例えば、目視で確認した画像を元に作成した簡易的な学習モデルを作成して部分画像に対する教師データを生成してもよい。
このようにして生成した入力データ(部分画像901)と教師データとを用い、第1実施形態と同様にして学習モデル252を学習し、学習済モデル352としてエッジサーバ300に供給する。
その後、テスト画像904を入力データ811として学習済モデル352に供給し、判定されたクラスを出力データとして取得する。なお、本実施形態では、学習用画像(部分画像901)と同様にテスト画像904を生成する。
図12(a)は、学習済モデル352を用いて異常の有無を判定するための元画像900の例を示している。推論部351は、図12(b)に示すように、元画像900のそれぞれを水平方向および垂直方向に2等分した部分画像を、テスト画像904として生成する。推論部351は、生成したテスト画像904を、入力データ811として学習済モデル352に供給する。
本実施形態では第1実施形態と異なり、1つの元画像から複数のテスト画像が生成される。そのため、同じ元画像から生成された複数のテスト画像のうち1つ以上が学習済モデル352によってクラスAに分類された場合、元画像から異常が検出されたものとする。
本実施形態による学習済モデルと、元画像をそのまま用いる従来の方法で学習した学習済モデルとを用い、判定精度を比較した。その結果、本実施形態による学習済モデルの方が、判定精度が高いことが確認できた。
●(第3実施形態)
次に、本発明の第3実施形態について説明する。なお、本実施形態は第1実施形態で説明した画像処理システム100で実施可能であるため、第1実施形態と共通の内容については説明を省略する。本実施形態では第2実施形態と同じMRI画像を用いるものとする。以下では、第2実施形態と異なる部分について重点的に説明する。
図13は、図8と同様に、本実施形態における画像処理システム100における学習処理および推論処理の流れと、関連するデータとを模式的に示した図である。図13に示すように、本実施形態では、元画像を分割した領域ごとに別個の学習モデルを用いる。
図14(a)および(b)において、元画像900から部分画像901を生成するまでは第2実施形態と共通である。その後、同じ位置の部分画像901ごと(元画像の領域ごと)に、認識すべき異常が存在する画像902をクラスA、認識すべき異常が存在しない(正常な)画像903をクラスBと分類することにより、教師データを生成する。具体的には図14(c)に示すように、左上の部分画像907、左下の部分画像908、右上の部分画像909、右下の部分画像910ごとに、クラスAとクラスBに分類することにより、教師データを生成する。
デバイス400のデータ送受信部451は、元画像を分割した領域ごとに、クラスAの画像902およびクラスBの画像903、さらに必要に応じて教師データを、学習データ生成部250に供給する。学習データ生成部250は、元画像を分割した領域ごとに、学習用データとして入力データ801と教師データ802とを生成し、学習部251に供給する。
学習部251は、学習用データを用いて個々の学習モデル252の学習を行い、損失関数が示すずれ量Lが予め定められた閾値未満になると、学習を完了する。この時点で、学習モデル252が学習済モデルとなる。そして、学習モデル252の全部または一部がエッジサーバ300に供給され、学習済モデル352として保存される。なお、学習データ生成部250および学習部251の少なくとも一方についても、学習モデル252と同様に部分画像の種類ごとに設けてもよい。
テスト画像904および入力データ811の生成は第2実施形態と同様である。第2実施形態では入力データ811を1つの学習済モデル352に入力した。本実施形態では、左下、左上、右下、右上のテスト画像904に対応する4つの入力データ811を、対応する学習済モデル352に入力する。
4つの学習済モデル352から、1つの元画像を分割した4つの領域のそれぞれについての判定結果が得られる。推論部351は、4つの判定結果から、元画像に対する判定結果を求める。例えば、推論部351は、4つの判定結果のうち1つでも異常が存在するとの判定結果があれば、元画像に異常が存在すると判定する。
本実施形態でも第2実施形態と同様の効果が得られる。また、元画像を分割した領域ごとに学習モデルを用いることで、1つの学習モデルを用いる場合よりも領域間のノイズが少なくなり、判定精度が向上する。
本実施形態による学習済モデルと、元画像をそのまま用いる従来の方法で学習した学習済モデルとを用い、判定精度を比較した。その結果、本実施形態による学習済モデルの方が、判定精度が高いことが確認できた。
(その他の実施形態)
上述の実施形態では1種類の学習モデルを用いる構成について説明したが、用いる画像のサイズや構成が異なる複数の学習モデルを並列に用い、学習および推論を行ってもよい。推論結果については例えばアンサンブル判定により、最終的な結果を得ることができる。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
100…処理システム、101…近距離無線通信、102…LAN、103…ルータ、104…インターネット、105…携帯電話回線網、200…クラウドサーバ、300…エッジサーバ、400…デバイス

Claims (11)

  1. 検査対象を撮影した第1の元画像から学習モデルの学習用データを生成する生成手段と、
    前記学習用データを用いて前記学習モデルを学習する学習手段と、
    検査対象を撮影した第2の元画像から生成した入力データに対し、学習済の前記学習モデルを用いて推論処理を行う推論手段と、を有し、
    前記生成手段は、前記第1の元画像から複数の部分画像を生成し、前記複数の部分画像を用いて前記学習用データを生成し、
    前記推論手段は、前記第2の元画像の部分画像を前記入力データとして用いる、
    ことを特徴とする画像処理装置。
  2. 前記生成手段は、前記第1の元画像を分割した複数の部分画像と、前記第1の元画像の中心部分を抽出した部分画像とを生成し、
    前記推論手段は、前記第2の元画像の中心部分を抽出した部分画像を前記入力データとして用いる、
    請求項1に記載の画像処理装置。
  3. 前記学習モデルが、前記第1の元画像および前記第2の元画像から異常部分を検出するために用いられ、
    前記第1の元画像および前記第2の元画像が、前記異常部分が中心部分に存在するように撮影された画像である請求項2に記載の画像処理装置。
  4. 前記生成手段は、前記第1の元画像を分割した複数の部分画像を生成し、
    前記推論手段は、前記第2の元画像を前記第1の元画像と同様に分割した複数の部分画像を前記入力データとして用いる、
    請求項1に記載の画像処理装置。
  5. 前記学習モデルが、前記第1の元画像および前記第2の元画像から異常部分を検出するために用いられ、
    前記第1の元画像および前記第2の元画像において前記異常部分が任意の位置に存在しうる請求項4に記載の画像処理装置。
  6. 前記学習モデルが、前記部分画像ごとに設けられる請求項4または5に記載の画像処理装置。
  7. 前記画像処理装置が通信可能に接続された複数の装置を有し、
    前記学習手段と前記推論手段とが別個の装置に設けられる、
    請求項1から6のいずれか1項に記載の画像処理装置。
  8. 前記学習手段は、前記学習が完了した前記学習モデルの一部または全部を、前記推論手段が設けられた装置に供給し、
    前記推論手段は、前記学習手段から供給された学習モデルを、前記学習済の前記学習モデルとして用いる、
    請求項7に記載の画像処理装置。
  9. 前記第1の元画像および前記第2の元画像を供給する装置が、前記学習手段と前記推論手段が設けられる装置と別個の装置である請求項7または8に記載の画像処理装置。
  10. 画像処理装置が実行する画像処理方法であって、
    検査対象を撮影した第1の元画像から学習モデルの学習用データを生成する生成工程と、
    前記学習用データを用いて前記学習モデルを学習する学習工程と、
    検査対象を撮影した第2の元画像から生成した入力データに対し、学習済の前記学習モデルを用いて推論処理を行う推論工程と、を有し、
    前記生成工程は、
    前記第1の元画像から複数の部分画像を生成する工程と、
    前記複数の部分画像を用いて前記学習用データを生成する工程とを有し、
    前記推論工程では、前記第2の元画像の部分画像を前記入力データとして用いる、
    ことを特徴とする画像処理方法。
  11. コンピュータを、請求項1から6のいずれか1項に記載の画像処理装置が有する各手段として機能させるためのプログラム。
JP2021034666A 2021-03-04 2021-03-04 画像処理装置および画像処理方法 Pending JP2022135080A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2021034666A JP2022135080A (ja) 2021-03-04 2021-03-04 画像処理装置および画像処理方法
US17/683,065 US20220292814A1 (en) 2021-03-04 2022-02-28 Image processing apparatus and image processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021034666A JP2022135080A (ja) 2021-03-04 2021-03-04 画像処理装置および画像処理方法

Publications (2)

Publication Number Publication Date
JP2022135080A true JP2022135080A (ja) 2022-09-15
JP2022135080A5 JP2022135080A5 (ja) 2024-02-28

Family

ID=83195062

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021034666A Pending JP2022135080A (ja) 2021-03-04 2021-03-04 画像処理装置および画像処理方法

Country Status (2)

Country Link
US (1) US20220292814A1 (ja)
JP (1) JP2022135080A (ja)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018106783A1 (en) * 2016-12-06 2018-06-14 Siemens Energy, Inc. Weakly supervised anomaly detection and segmentation in images
CN111052177A (zh) * 2017-09-14 2020-04-21 三菱电机株式会社 异常检测装置
WO2019087803A1 (ja) * 2017-10-31 2019-05-09 日本電気株式会社 画像処理装置、画像処理方法及び記録媒体
WO2019232466A1 (en) * 2018-06-01 2019-12-05 Nami Ml Inc. Machine learning model re-training based on distributed feedback
US10789462B2 (en) * 2019-01-15 2020-09-29 International Business Machines Corporation Weakly and fully labeled mammogram classification and localization with a dual branch deep neural network
DE112020007035T5 (de) * 2020-04-08 2023-01-19 Mitsubishi Electric Corporation Lernvorrichtung, Lernverfahren, Inferenzvorrichtung, Programm und Speichermedium

Also Published As

Publication number Publication date
US20220292814A1 (en) 2022-09-15

Similar Documents

Publication Publication Date Title
US20210326708A1 (en) Neural network training method and apparatus, and image processing method and apparatus
KR102494946B1 (ko) 배터리 검출 방법 및 장치(battery detection method and device)
CN111914812B (zh) 图像处理模型训练方法、装置、设备及存储介质
CN110059652B (zh) 人脸图像处理方法、装置及存储介质
CN109947650B (zh) 脚本步骤处理方法、装置和***
CN111209377B (zh) 基于深度学习的文本处理方法、装置、设备及介质
CN115699082A (zh) 缺陷检测方法及装置、存储介质及电子设备
CN113050860B (zh) 一种控件识别方法和相关装置
CN112036492B (zh) 样本集处理方法、装置、设备及存储介质
CN105940672B (zh) 检测在用户设备的屏幕上描绘的图案
CN111507094B (zh) 基于深度学习的文本处理模型训练方法、装置及设备
CN113810588A (zh) 一种图像合成方法、终端及存储介质
CN107423663A (zh) 一种图像处理方法及终端
CN112053360B (zh) 图像分割方法、装置、计算机设备及存储介质
CN113052198B (zh) 一种数据处理方法、装置、设备及存储介质
JP2022135080A (ja) 画像処理装置および画像処理方法
CN116229188A (zh) 图像处理显示方法、分类模型的生成方法及其设备
CN115035313A (zh) 黑颈鹤识别方法、装置、设备及存储介质
CN115619698A (zh) 电路板缺陷的检测方法、装置及模型训练方法
KR20220061763A (ko) 화상 회의를 제공하는 전자 장치 및 화상 회의를 제공하는 방법
CN108540726B (zh) 连拍图像的处理方法、装置、存储介质及终端
US11704518B1 (en) Per-image print setting optimization
CN112308104A (zh) 异常识别方法、装置及计算机存储介质
CN110503084A (zh) 一种图像中的文字区域识别方法和装置
KR102468193B1 (ko) IP-Cam 모니터링 방법 및 장치

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240219

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20240219