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

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

▶ 富士フイルム株式会社の特許一覧

特開2024-31118画像処理装置及びその作動方法並びに内視鏡システム
<>
  • 特開-画像処理装置及びその作動方法並びに内視鏡システム 図1
  • 特開-画像処理装置及びその作動方法並びに内視鏡システム 図2
  • 特開-画像処理装置及びその作動方法並びに内視鏡システム 図3
  • 特開-画像処理装置及びその作動方法並びに内視鏡システム 図4
  • 特開-画像処理装置及びその作動方法並びに内視鏡システム 図5
  • 特開-画像処理装置及びその作動方法並びに内視鏡システム 図6
  • 特開-画像処理装置及びその作動方法並びに内視鏡システム 図7
  • 特開-画像処理装置及びその作動方法並びに内視鏡システム 図8
  • 特開-画像処理装置及びその作動方法並びに内視鏡システム 図9
  • 特開-画像処理装置及びその作動方法並びに内視鏡システム 図10
  • 特開-画像処理装置及びその作動方法並びに内視鏡システム 図11
  • 特開-画像処理装置及びその作動方法並びに内視鏡システム 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024031118
(43)【公開日】2024-03-07
(54)【発明の名称】画像処理装置及びその作動方法並びに内視鏡システム
(51)【国際特許分類】
   G06T 7/00 20170101AFI20240229BHJP
   A61B 1/045 20060101ALI20240229BHJP
   G06V 10/70 20220101ALI20240229BHJP
【FI】
G06T7/00 350B
A61B1/045 614
G06V10/70
【審査請求】未請求
【請求項の数】17
【出願形態】OL
(21)【出願番号】P 2022134466
(22)【出願日】2022-08-25
(71)【出願人】
【識別番号】306037311
【氏名又は名称】富士フイルム株式会社
(74)【代理人】
【識別番号】110001988
【氏名又は名称】弁理士法人小林国際特許事務所
(72)【発明者】
【氏名】大酒 正明
【テーマコード(参考)】
4C161
5L096
【Fターム(参考)】
4C161CC06
4C161SS21
5L096BA06
5L096BA13
5L096DA01
5L096EA02
5L096EA03
5L096HA11
5L096JA11
5L096KA04
(57)【要約】
【課題】機械学習の学習に用いる画像以上の解像度を有する画像を生成する超解像を精度よく行うことができる画像処理装置及びその作動方法並びに内視鏡システムを提供する。
【解決手段】プロセッサは、ソース画像に劣化処理を行った学習用入力画像を入力とし、学習用入力画像より画素数が大きい第1学習用出力画像及び第2学習用出力画像を出力する学習モデルを更新して学習済みモデルを生成する。学習モデルの第2中間層は、折り返し層及び第1中間層からの特徴マップに基づき、第1学習用出力画像を出力する第1出力層に入力する特徴マップを出力する。第3中間層は、折り返し層からの特徴マップに基づき、第2学習用出力画像を出力する第2出力層に入力する特徴マップを出力する。
【選択図】図4
【特許請求の範囲】
【請求項1】
プロセッサを備え、
前記プロセッサは、
ソース画像を取得し、
前記ソース画像に対して劣化処理を行うことにより、学習用入力画像を生成し、
前記学習用入力画像を学習モデルに入力することにより、前記学習用入力画像より画素数が大きい第1学習用出力画像及び第2学習用出力画像を出力し、
前記第1学習用出力画像及び前記ソース画像に基づき、第1損失を算出し、
前記第2学習用出力画像及び前記ソース画像に基づき、第2損失を算出し、
前記第1損失及び前記第2損失に基づき、前記学習モデルを更新することにより、学習済みモデルを生成し、
前記学習モデルは、入力層、第1中間層、折り返し層、第2中間層、第1出力層、第3中間層及び第2出力層を有し、
前記入力層は、前記学習用入力画像を入力されることにより、前記第1中間層に入力する特徴マップを出力し、
前記第1中間層は、前記入力層が出力する前記特徴マップを入力されることにより、前記折り返し層及び前記第2中間層に入力する前記特徴マップを出力し、
前記折り返し層は、前記第1中間層から入力される前記特徴マップに基づき、前記第2中間層及び前記第3中間層に入力する前記特徴マップを出力し、
前記第2中間層は、前記折り返し層から入力される前記特徴マップと、前記第1中間層から入力される前記特徴マップとに基づき、前記第1出力層に入力する前記特徴マップを出力し、
前記第1出力層は、前記第2中間層から入力される前記特徴マップに基づき、前記第1学習用出力画像を出力し、
前記第3中間層は、前記折り返し層から入力される前記特徴マップに基づき、前記第2出力層に入力する前記特徴マップを出力し、
前記第2出力層は、前記第3中間層から入力される前記特徴マップに基づき、前記第2学習用出力画像を出力する画像処理装置。
【請求項2】
前記学習用入力画像、前記第1学習用出力画像、前記第2学習用出力画像及び前記特徴マップの情報量は、前記画素数、チャンネル数及びデータ型に応じたビット数によって決定され、
前記折り返し層は、前記チャンネル数又は前記ビット数を変更する情報量削減処理により、前記折り返し層が出力する前記特徴マップの情報量を、前記学習用入力画像の前記情報量より小さくする請求項1に記載の画像処理装置。
【請求項3】
前記情報量削減処理は、前記チャンネル数を小さくする処理である請求項2に記載の画像処理装置。
【請求項4】
前記情報量削減処理は、前記ビット数を小さくする処理である請求項2に記載の画像処理装置。
【請求項5】
前記第1中間層は、前記入力層から入力される前記特徴マップの前記画素数を小さくする処理を行う請求項3又は4に記載の画像処理装置。
【請求項6】
前記第2中間層及び前記第3中間層は、前記折り返し層から入力される前記特徴マップの前記画素数を大きくする処理を行う請求項5に記載の画像処理装置。
【請求項7】
前記劣化処理は、前記ソース画像の前記画素数を小さくする処理を含む請求項1に記載の画像処理装置。
【請求項8】
前記劣化処理は、フィルタ処理及び/又はノイズ付加処理を含む請求項7に記載の画像処理装置。
【請求項9】
前記プロセッサは、
前記第2中間層に、前記学習用入力画像をさらに入力する請求項1に記載の画像処理装置。
【請求項10】
前記プロセッサは、
前記学習済みモデルに、第1の画素数を有する推論用入力画像を入力することにより、前記第1の画素数より大きい第2の画素数を有する超解像画像を出力し、
前記第1の画素数に対する前記第2の画素数の比率は、前記学習用入力画像が有する画素数に対する前記第1学習用出力画像及び前記第2学習用出力画像が有する画素数の比率と等しい請求項1に記載の画像処理装置。
【請求項11】
ソース画像を取得するステップと、
前記ソース画像に対して劣化処理を行うことにより、学習用入力画像を生成するステップと、
前記学習用入力画像を学習モデルに入力することにより、前記学習用入力画像より画素数が大きい第1学習用出力画像及び第2学習用出力画像を出力するステップと、
前記第1学習用出力画像及び前記ソース画像に基づき、第1損失を算出するステップと、
前記第2学習用出力画像及び前記ソース画像に基づき、第2損失を算出するステップと、
前記第1損失及び前記第2損失に基づき、前記学習モデルを更新することにより、学習済みモデルを生成するステップと、を有し、
前記学習モデルは、入力層、第1中間層、折り返し層、第2中間層、第1出力層、第3中間層及び第2出力層を有し、
前記入力層は、前記学習用入力画像を入力されることにより、前記第1中間層に入力する特徴マップを出力し、
前記第1中間層は、前記入力層が出力する前記特徴マップを入力されることにより、前記折り返し層及び前記第2中間層に入力する前記特徴マップを出力し、
前記折り返し層は、前記第1中間層から入力される前記特徴マップに基づき、前記第2中間層及び前記第3中間層に入力する前記特徴マップを出力し、
前記第2中間層は、前記折り返し層から入力される前記特徴マップと、前記第1中間層から入力される前記特徴マップとに基づき、前記第1出力層に入力する前記特徴マップを出力し、
前記第1出力層は、前記第2中間層から入力される前記特徴マップに基づき、前記第1学習用出力画像を出力し、
前記第3中間層は、前記折り返し層から入力される前記特徴マップに基づき、前記第2出力層に入力する前記特徴マップを出力し、
前記第2出力層は、前記第3中間層から入力される前記特徴マップに基づき、前記第2学習用出力画像を出力する画像処理装置の作動方法。
【請求項12】
プロセッサを備え、
前記プロセッサは、
ソース画像を取得し、
前記ソース画像に対して劣化処理を行うことにより、学習用入力画像を生成し、
前記学習用入力画像を生成器に入力することにより、前記学習用入力画像より画素数が大きい第1学習用出力画像及び第2学習用出力画像を出力し、
前記第1学習用出力画像及び前記第2学習用出力画像を識別器に入力することにより、
前記第1学習用出力画像に基づく第1識別結果と、前記第2学習用出力画像に基づく第2識別結果とを出力し、
前記第1識別結果に基づく第1識別器損失と、前記第2識別結果に基づく第2識別器損失とを算出し、
前記第1識別器損失及び前記第2識別器損失に基づき、前記識別器を更新し、
前記第1識別結果及び前記ソース画像に基づく第1生成器損失と、前記第2識別結果及び前記ソース画像に基づく第2生成器損失とを算出し、
前記第1生成器損失及び前記第2生成器損失に基づき、前記生成器を更新することにより、学習済みの生成器を生成し、
前記生成器は、入力層、第1中間層、折り返し層、第2中間層、第1出力層、第3中間層及び第2出力層を有し、
前記入力層は、前記学習用入力画像を入力されることにより、前記第1中間層に入力する特徴マップを出力し、
前記第1中間層は、前記入力層が出力する前記特徴マップを入力されることにより、前記折り返し層及び前記第2中間層に入力する前記特徴マップを出力し、
前記折り返し層は、前記第1中間層から入力される前記特徴マップに基づき、前記第2中間層及び前記第3中間層に入力する前記特徴マップを出力し、
前記第2中間層は、前記折り返し層から入力される前記特徴マップと、前記第1中間層から入力される前記特徴マップとに基づき、前記第1出力層に入力する前記特徴マップを出力し、
前記第1出力層は、前記第2中間層から入力される前記特徴マップに基づき、前記第1学習用出力画像を出力し、
前記第3中間層は、前記折り返し層から入力される前記特徴マップに基づき、前記第2出力層に入力する前記特徴マップを出力し、
前記第2出力層は、前記第3中間層から入力される前記特徴マップに基づき、前記第2学習用出力画像を出力する画像処理装置。
【請求項13】
プロセッサを備える画像処理装置であって、
前記プロセッサは、
第1の画素数を有する内視鏡画像を取得し、
前記内視鏡画像を学習済みモデルに入力することにより、前記第1の画素数より大きい第2の画素数を有する超解像画像を出力し、
前記学習済みモデルは、前記第1の画素数以下である第3の画素数を有するソース内視鏡画像を劣化処理することによって生成された第3の画素数より小さい第4の画素数を有する学習用入力画像を用いて、前記第4の画素数より大きい第5の画素数を有する第1学習用出力画像及び第2学習用出力画像を出力する学習モデルを、前記第1学習用出力画像及び前記ソース内視鏡画像に基づく第1損失と、前記第2学習用出力画像及び前記ソース内視鏡画像に基づく第2損失とに基づいて更新することによって生成される画像処理装置。
【請求項14】
前記プロセッサは、
前記超解像画像と、前記内視鏡画像が高解像度化処理されたことを示す情報とを表示する制御を行う請求項13に記載の画像処理装置。
【請求項15】
前記第1の画素数に対する第2の画素数の比率と、前記第4の画素数に対する第5の画素数の比率とは等しい請求項13又は14に記載の画像処理装置。
【請求項16】
前記第3の画素数と、前記第1の画素数とは等しい請求項15に記載の画像処理装置。
【請求項17】
請求項13に記載の画像処理装置と、
被写体を撮影することにより、前記内視鏡画像を生成する内視鏡と、
ディスプレイと、を備え、
前記プロセッサは、
前記ディスプレイに、前記超解像画像を表示する制御を行う内視鏡システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像に対する超解像を行う画像処理装置及びその作動方法並びに内視鏡システムに関する。
【背景技術】
【0002】
未知の画像を高解像度化する超解像を精度よく行うために、深層学習が用いられることがある。例えば、特許文献1には、低解像度画像と分類スコアとを入力として高解像度画像を出力するニューラルネットワークが記載されている。特許文献1には、ニューラルネットワークに入力する学習用データに用いられる低解像度画像は、高解像度画像をダウンサンプリングして生成されてもよいと記載されている。また、画素数の少ないカメラで撮像した画像を低解像度画像、同一被写体を画素数の多いカメラで撮像した画像を高解像度画像としても良いと記載されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2020-24612号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
解像度が高い画像を生成する深層学習を学習させるためは、学習用のソース画像として、高解像度の画像を用意することが望ましい。しかしながら、ソース画像を撮影又は生成する装置のスペックによっては、高画質な学習用のソース画像を用意することができない場合がある。ソース画像よりも解像度が高い超解像画像を、深層学習を用いて得ることは、このようなソース画像が得られない場合には特に難しい。また、高解像度のソース画像を用意できない場合に、深層学習によって生成された超解像画像は、超解像処理を行う前の深層学習に入力される劣化画像の特徴を適切に反映できない場合がある。
【0005】
本発明は、機械学習の学習に用いる画像以上の解像度を有する画像を生成する超解像を精度よく行うことができる画像処理装置及びその作動方法並びに内視鏡システムを提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明の画像処理装置は、プロセッサを備え、プロセッサは、ソース画像を取得し、ソース画像に対して劣化処理を行うことにより、学習用入力画像を生成し、学習用入力画像を学習モデルに入力することにより、学習用入力画像より画素数が大きい第1学習用出力画像及び第2学習用出力画像を出力し、第1学習用出力画像及びソース画像に基づき、第1損失を算出し、第2学習用出力画像及びソース画像に基づき、第2損失を算出し、第1損失及び第2損失に基づき、学習モデルを更新することにより、学習済みモデルを生成し、学習モデルは、入力層、第1中間層、折り返し層、第2中間層、第1出力層、第3中間層及び第2出力層を有し、入力層は、学習用入力画像を入力されることにより、第1中間層に入力する特徴マップを出力し、第1中間層は、入力層が出力する特徴マップを入力されることにより、折り返し層及び第2中間層に入力する特徴マップを出力し、折り返し層は、第1中間層から入力される特徴マップに基づき、第2中間層及び第3中間層に入力する特徴マップを出力し、第2中間層は、折り返し層から入力される特徴マップと、第1中間層から入力される特徴マップとに基づき、第1出力層に入力する特徴マップを出力し、第1出力層は、第2中間層から入力される特徴マップに基づき、第1学習用出力画像を出力し、第3中間層は、折り返し層から入力される特徴マップに基づき、第2出力層に入力する特徴マップを出力し、第2出力層は、第3中間層から入力される特徴マップに基づき、第2学習用出力画像を出力する。
【0007】
学習用入力画像、第1学習用出力画像、第2学習用出力画像及び特徴マップの情報量は、画素数、チャンネル数及びデータ型に応じたビット数によって決定され、折り返し層は、チャンネル数又はビット数を変更する情報量削減処理により、折り返し層が出力する特徴マップの情報量を、学習用入力画像の情報量より小さくすることが好ましい。
【0008】
情報量削減処理は、チャンネル数を小さくする処理であることが好ましい。情報量削減処理は、ビット数を小さくする処理であることが好ましい。
【0009】
第1中間層は、入力層から入力される特徴マップの画素数を小さくする処理を行うことが好ましい。
【0010】
第2中間層及び第3中間層は、折り返し層から入力される特徴マップの画素数を大きくする処理を行うことが好ましい。
【0011】
劣化処理は、ソース画像の画素数を小さくする処理を含むことが好ましい。劣化処理は、フィルタ処理及び/又はノイズ付加処理を含むことが好ましい。プロセッサは、第2中間層に、学習用入力画像をさらに入力することが好ましい。
【0012】
プロセッサは、学習済みモデルに、第1の画素数を有する推論用入力画像を入力することにより、第1の画素数より大きい第2の画素数を有する超解像画像を出力し、第1の画素数に対する第2の画素数の比率は、学習用入力画像が有する画素数に対する第1学習用出力画像及び第2学習用出力画像が有する画素数の比率と等しいことが好ましい。
【0013】
本発明の画像処理装置の作動方法は、ソース画像を取得するステップと、ソース画像に対して劣化処理を行うことにより、学習用入力画像を生成するステップと、学習用入力画像を学習モデルに入力することにより、学習用入力画像より画素数が大きい第1学習用出力画像及び第2学習用出力画像を出力するステップと、第1学習用出力画像及びソース画像に基づき、第1損失を算出するステップと、第2学習用出力画像及びソース画像に基づき、第2損失を算出するステップと、第1損失及び第2損失に基づき、学習モデルを更新することにより、学習済みモデルを生成するステップと、を有し、学習モデルは、入力層、第1中間層、折り返し層、第2中間層、第1出力層、第3中間層及び第2出力層を有し、入力層は、学習用入力画像を入力されることにより、第1中間層に入力する特徴マップを出力し、第1中間層は、入力層が出力する特徴マップを入力されることにより、折り返し層及び第2中間層に入力する特徴マップを出力し、折り返し層は、第1中間層から入力される特徴マップに基づき、第2中間層及び第3中間層に入力する特徴マップを出力し、第2中間層は、折り返し層から入力される特徴マップと、第1中間層から入力される特徴マップとに基づき、第1出力層に入力する特徴マップを出力し、第1出力層は、第2中間層から入力される特徴マップに基づき、第1学習用出力画像を出力し、第3中間層は、折り返し層から入力される特徴マップに基づき、第2出力層に入力する特徴マップを出力し、第2出力層は、第3中間層から入力される特徴マップに基づき、第2学習用出力画像を出力する。
【0014】
本発明の画像処理装置は、プロセッサを備え、プロセッサは、ソース画像を取得し、ソース画像に対して劣化処理を行うことにより、学習用入力画像を生成し、学習用入力画像を生成器に入力することにより、学習用入力画像より画素数が大きい第1学習用出力画像及び第2学習用出力画像を出力し、第1学習用出力画像及び第2学習用出力画像を識別器に入力することにより、第1学習用出力画像に基づく第1識別結果と、第2学習用出力画像に基づく第2識別結果とを出力し、第1識別結果に基づく第1識別器損失と、第2識別結果に基づく第2識別器損失とを算出し、第1識別器損失及び第2識別器損失に基づき、識別器を更新し、第1識別結果及びソース画像に基づく第1生成器損失と、第2識別結果及びソース画像に基づく第2生成器損失を算出し、第1生成器損失及び第2生成器損失に基づき、生成器を更新することにより、学習済みの生成器を生成し、生成器は、入力層、第1中間層、折り返し層、第2中間層、第1出力層、第3中間層及び第2出力層を有し、入力層は、学習用入力画像を入力されることにより、第1中間層に入力する特徴マップを出力し、第1中間層は、入力層が出力する特徴マップを入力されることにより、折り返し層及び第2中間層に入力する特徴マップを出力し、折り返し層は、第1中間層から入力される特徴マップに基づき、第2中間層及び第3中間層に入力する特徴マップを出力し、第2中間層は、折り返し層から入力される特徴マップと、第1中間層から入力される特徴マップとに基づき、第1出力層に入力する特徴マップを出力し、第1出力層は、第2中間層から入力される特徴マップに基づき、第1学習用出力画像を出力し、第3中間層は、折り返し層から入力される特徴マップに基づき、第2出力層に入力する特徴マップを出力し、第2出力層は、第3中間層から入力される特徴マップに基づき、第2学習用出力画像を出力する。
【0015】
本発明の画像処理装置は、プロセッサを備える画像処理装置であって、プロセッサは、
第1の画素数を有する内視鏡画像を取得し、内視鏡画像を学習済みモデルに入力することにより、第1の画素数より大きい第2の画素数を有する超解像画像を出力し、学習済みモデルは、第1の画素数以下である第3の画素数を有するソース内視鏡画像を劣化処理することによって生成された第3の画素数より小さい第4の画素数を有する学習用入力画像を用いて、第4の画素数より大きい第5の画素数を有する第1学習用出力画像及び第2学習用出力画像を出力する学習モデルを、第1学習用出力画像及びソース内視鏡画像に基づく第1損失と、第2学習用出力画像及びソース内視鏡画像に基づく第2損失とに基づいて更新することによって生成される。
【0016】
プロセッサは、超解像画像と、内視鏡画像が高解像度化処理されたことを示す情報とを表示する制御を行うことが好ましい。
【0017】
第1の画素数に対する第2の画素数の比率と、第4の画素数に対する第5の画素数の比率とは等しいことが好ましい。第3の画素数と、第1の画素数とは等しいことが好ましい。
【0018】
本発明の内視鏡システムは、上記の画像処理装置と、被写体を撮影することにより、内視鏡画像を生成する内視鏡と、ディスプレイと、を備え、プロセッサは、ディスプレイに、超解像画像を表示する制御を行う。
【発明の効果】
【0019】
本発明によれば、機械学習の学習に用いる画像以上の解像度を有する画像を生成する超解像を精度よく行うことができる。
【図面の簡単な説明】
【0020】
図1】画像処理装置の機能を示すブロック図である。
図2】学習部の機能を示すブロック図である。
図3】推論部の機能を示すブロック図である。
図4】学習モデルの機能を示すブロック図である。
図5】第1中間層、第2中間層及び第3中間層の機能を示す説明図である。
図6】情報量削減処理について示す説明図である。
図7】GANを適用した場合の学習部の機能を示すブロック図である。
図8】推論用入力画像が内視鏡画像である場合の推論部の機能を示す説明図である。
図9】推論用入力画像が内視鏡画像である場合の学習部の機能を示す説明図である。
図10】学習済みモデルの機能を示すブロック図である。
図11】超解像画像と報知表示とを表示する場合の例を示す画像図である。
図12】本実施形態の機能の流れを示すフローチャートである。
【発明を実施するための形態】
【0021】
図1に示すように、画像処理装置10は、学習部11及び推論部12を有する。学習部11は、データベース20から画像処理装置10に入力される学習用のソース画像を用い、機械学習が適用された学習モデル100のパラメータを最適化することにより、学習済みモデル200を生成する。
【0022】
学習モデル100に適用される機械学習には、決定木、サポートベクトルマシン、ランダムフォレスト、回帰分析、深層学習、強化学習、深層強化学習、ニューラルネットワーク、畳み込みニューラルネットワーク、敵対的生成ネットワーク等が含まれる。学習モデル100の具体的な構成については後述する。
【0023】
推論部12は、学習部11において生成された学習済みモデル200に、データベース20から送信される、ソース画像とは異なる未知の画像である推論用入力画像を入力することにより、未知の画像の特徴を有し、かつ、未知の画像より解像度が高い超解像画像を生成する。詳しくは後述するが、学習済みモデル200に入力する推論用入力画像の画素数は、学習に用いるソース画像の画素数と等しいか、ソース画像の画素数より大きい。
【0024】
データベース20には、学習モデル100の学習に用いるソース画像及び学習済みモデルの推論によって超解像画像を生成する元の画像となる推論用入力画像が保存されている。データベース20は、画像を保存するストレージ、ファイルサーバ、クラウドストレージ等である。データベース20は、病院情報システム(いわゆるHIS(Hospital Information Systems))、PACS(Picture Archiving and Communication Systems)等の、画像処理装置10と直接的又は間接的に連携するシステムの一部であってもよい。
【0025】
データベース20に保存されるソース画像又は推論用入力画像は、モダリティ30から送信される。本実施形態の画像処理装置10は、モダリティ30が、医用画像を生成する、内視鏡、放射線画像撮影装置、超音波画像撮影装置等の医用画像生成装置である場合に好適である。医用画像は、内視鏡画像、放射線画像、超音波画像等である。また、本実施形態の画像処理装置10は、モダリティ30が内視鏡であって、ソース画像及び推論用入力画像が内視鏡画像である場合において特に好適である。ソース画像及び推論用入力画像を内視鏡画像とする例については、後に詳述する。
【0026】
画像処理装置10、データベース20、モダリティ30は、有線又は無線で相互に通信可能に接続されている。無線による接続には、ネットワークによる接続があり、例えば、インターネット又はLAN(Local Area Network)である。
【0027】
図2に示すように、学習部11は、劣化処理部40、学習モデル100、評価部50及び更新部60を有する。また、図3に示すように、推論部12は、学習モデル100を学習することによって生成した学習済みモデル200及び表示制御部70を有する。画像処理装置10には、各種処理に関するプログラムがプログラム用メモリ(図示しない)に組み込まれている。プロセッサによって構成される制御部(図示しない)が、プログラム用メモリ内のプログラムを実行することによって、学習部11の劣化処理部40、学習モデル100、評価部50及び更新部60並びに推論部12の学習済みモデル200及び表示制御部70の機能が実現する。
【0028】
なお、学習部11と、推論部12とを分離してそれぞれ異なる装置に備え、相互に通信するように画像処理装置10を構成してもよい。また、学習部11及び推論部12の各構成部を分離してそれぞれ異なる装置に備え、相互に通信するように画像処理装置10を構成してもよい。この場合、それぞれの装置に、プロセッサによって構成される制御部が備えられる。
【0029】
図2に示すように、データベース20は、ソース画像21を学習部11の劣化処理部40に入力する。劣化処理部40は、ソース画像21に対する劣化処理を行い、ソース画像21よりも画素数が小さい学習用入力画像41を生成する。劣化処理は、ソース画像21の画素数を小さくする、ソース画像21に対する低解像度化処理である。画素数は、画像の幅と高さで表される、1枚の画像が有する画素の数であり、ピクセル数とも呼ばれる。なお、本明細書では、「画素数」の文言を、「解像度」を意味する文言として用いる。画像が有する画素数が大きいほど、画像の解像度は大きくなり、複雑な構造を詳細に表すことができる。一方、画像が有する画素数が小さいほど、解像度は小さくなり、輪郭がぼやけた荒い画像となる。
【0030】
劣化処理は、ソース画像21に対するフィルタ処理及び/又はノイズ付加処理が含まれる。フィルタ処理は、ソース画像に対してガウシアンフィルタ、平均化フィルタ、メディアンフィルタ、バイラテラルフィルタ等のフィルタを適用し、ぼかし又は縮小によってソース画像21を劣化させる処理である。ノイズ付加処理は、ソース画像21が有する画素の画素値をランダムに最大値又は最小値にする処理、ソース画像21が有する画素の輝度を乱数によって変更させる処理等により、ノイズを与えてソース画像21を劣化させる処理である。
【0031】
劣化処理によって得られた学習用入力画像41は、学習モデル100に入力される。学習モデル100は、学習用入力画像41に対する特徴抽出及び高解像度化処理を行い、第1学習用出力画像101及び第2学習用出力画像102を出力する。学習モデル100は、学習用入力画像41に対する高解像度化処理を行うため、第1学習用出力画像101及び第2学習用出力画像102は、学習用入力画像41よりも画素数が大きい。学習モデル100は1つの入力層、2つの中間層及び2つの出力層を有する。本実施形態における、学習モデル100の2つの中間層及び2つの出力層の詳細については後述する。
【0032】
評価部50は、第1学習用出力画像101及びソース画像21を評価用のモデルである損失関数に適用し、第1損失51を算出する。また、第2学習用出力画像102及びソース画像21を損失関数に適用し、第2損失52を算出する。第1損失51及び第2損失52の計算には、平均二乗誤差(Mean Squared Error: MSE)を用いることが好ましい。第1損失51が小さいほど、第1学習用出力画像101とソース画像21との差が小さい。第2損失52が小さいほど、また、第2学習用出力画像102とソース画像21との差が小さい。損失が「0」に近いほど、学習モデル100の出力精度が高いことを意味する。以下、第1損失51及び第2損失52のいずれか又は両方を指す文言として、「損失」の文言を用いる。
【0033】
更新部60は、損失が「0」に近づくように(最小化するように)、学習モデル100のパラメータを設定し、パラメータを更新する。評価部50が行う損失の算出及び更新部60が行うパラメータの更新は、第1損失51及び第2損失52が予め設定された値となるまで繰り返し続けられる。損失の算出及びパラメータの更新の終了を指示するための値は、ある範囲内の値としてもよく、ある閾値以上又は未満としてもよい。学習モデル100の学習、すなわち、学習済みモデル200の生成とは、損失を最小化するためのパラメータの最適化処理のことを意味する。最適化されたパラメータは、推論部12における、学習済みモデル200のパラメータとして用いられる。なお、画像処理装置10に、パラメータを保存するためのパラメータ保存用メモリ(図示しない)を設けてもよい。
【0034】
学習モデル100の学習によって生成された学習済みモデル200は、図3に示すように、データベース20から送信される推論用入力画像201に対する特徴抽出及び高解像度化処理を行い、超解像画像202を出力する。なお、超解像とは、入力信号である低解像度の画像から、高解像度の画像を生成する高解像度化処理のことをいう。
【0035】
学習済みモデル200によって出力された超解像画像202は、表示制御部70に送信される。表示制御部70は、超解像画像202をディスプレイ80に表示するための表示用の信号処理を行い、超解像画像202をディスプレイ80に表示する制御を行う。
【0036】
以下、図4を参照し、学習モデル100の構成について説明する。学習モデル100には、畳み込みニューラルネットワーク(Convolutional Neural Network;CNN)が適用されることが好ましい。
【0037】
図4に示すように、学習モデル100は、入力層110、第1中間層120、折り返し層130、第2中間層140、第1出力層150、第3中間層160及び第2出力層170を有する。
【0038】
入力層110、第1中間層120及び折り返し層130で構成されるネットワークは、学習用入力画像41に対する特徴抽出を行うネットワークであり、エンコーダ・デコーダ構造であるモデルのエンコーダに相当するネットワークである。
【0039】
入力層110は、劣化処理部40から学習用入力画像41を入力されることにより、第1中間層120に入力する特徴マップ111を出力する。学習用入力画像41のデータ型は整数型であり、特徴マップ111のデータ型は浮動小数点であることが好ましい。学習用入力画像41のデータ型の整数型から浮動小数点への変換は、劣化処理部40で行われてもよく、劣化処理部40から入力層110へ入力までの段階において行われてもよく、入力層110から後述する畳み込み層への入力までの段階において行われてもよい。
【0040】
第1中間層120は、入力層110が出力する特徴マップ111を入力されることにより、折り返し層130及び第2中間層140に入力する特徴マップ120aを出力する。第1中間層120は、特徴マップ111に対する畳み込み及び/又はプーリングを行うことにより、学習用入力画像41の特徴を抽出した特徴マップ120aを出力する。
【0041】
畳み込みは、入力された画像データにフィルタを適用し、フィルタの有するパターンが、入力された画像データのいずれの位置にあるかを示す特徴マップを抽出する(出力する)処理である。フィルタは、畳み込みカーネル又は単にカーネルとも呼ばれる。畳み込みによって抽出される特徴マップの画素数は、画像データの周辺に画素値を補間するパディング及び画像データに対するフィルタの適用間隔(ストライド)の設定により、入力される特徴マップの画素数と同じにすることができ、また、小さくすることもできる。なお、本明細書において、「特徴マップ」の文言は、「特徴量」を意味する文言としても用いる。
【0042】
プーリングは、各特徴マップに属する局所領域が有する値を要約し、画像データである特徴マップの画素数を小さくする処理である。局所領域とは、特徴マップのうち1つの画素を中心とした複数の画素で構成される領域のことをいう。プーリングには、最大プーリング(max pooling)、平均プーリング(average pooling)等がある。最大プーリングは、局所領域に含まれる画素が有する画素値のうち、最大値を選択し、出力される特徴マップの画素の画素値とする処理である。平均プーリングは、局所領域に含まれる画素が有する画素値の平均値を選し、出力される特徴マップの画素の画素値とする処理である。畳み込み又はプーリングによって特徴マップの画素数を小さくする処理は、ダウンサンプリングとも呼ばれる。第1中間層120は、ダウンサンプリングにより、入力層110から入力される特徴マップの画素数を小さくすることが好ましい。
【0043】
折り返し層130は、第1中間層120から入力される特徴マップ120aに基づき、第2中間層140及び第3中間層160に入力する特徴マップ131を出力する。折り返し層130は、第1中間層120と同様に、特徴マップ120aに対する畳み込み及び/又はプーリングを行う。
【0044】
折り返し層130から出力される特徴マップ131の画素数は、特徴マップ131の画素数は、学習用入力画像41と同じであってもよいが、学習及び推論における出力処理を速くするために、学習用入力画像41よりも小さいことが好ましい。
【0045】
第2中間層140及び第1出力層150で構成されるネットワークは、折り返し層130から出力される、学習用入力画像41の特徴を有する特徴マップ131に対する高解像度化処理を、第1中間層120から出力される特徴マップ120aをさらに用いて行い、学習用入力画像41よりも画素数が大きい第1学習用出力画像101を出力する。第2中間層140及び第1出力層150で構成されるネットワークは、エンコーダ・デコーダ構造のモデルの、デコーダに相当する。
【0046】
図4に示すように、本実施形態の学習モデル100は、デコーダを2つ有する。第2中間層140及び第1出力層150で構成されるネットワークは、第1のデコーダである。また、後述する第3中間層160及び第2出力層170で構成されるネットワークは、第2のデコーダである。
【0047】
第2中間層140は、折り返し層130から入力される特徴マップ131と、第1中間層120から入力される特徴マップ120aとに基づき、第1出力層150に入力する特徴マップ140aを出力する。高解像度化処理には、特徴マップを構成する画素に係る画素値をいくつかの画素間隔で配置し、その間の画素の値を補間するアップサンプリング、また、画素値の補間をしないアップサンプリングと畳み込みを組み合わせたアップコンボリューション等がある。アップサンプリングはアンプーリングとも呼ばれ、アップコンボリューションは転置畳み込みやデコンボリューションとも呼ばれる。第2中間層140及び後述する第3中間層160は、アップサンプリング又はアップコンボリューションにより、折り畳み層130から入力される特徴マップ131の画素数を大きくする処理を行う。
【0048】
第2中間層140では、第1中間層120から出力される特徴マップ120aがスキップ接続(skip connection)される。スキップ接続により、第2中間層140からは、特徴マップ131及び特徴マップ120aに対する高解像度化処理が行われた特徴マップが、特徴マップ140aとして出力される。
【0049】
すなわち、入力層110、第1中間層120及び折り返し層130で構成されるエンコーダと、第2中間層140及び第1出力層150で構成される第1のデコーダとに着目すると、U-netと呼ばれる、第1中間層120と、第2中間層140とが左右対称の形をとるネットワークとなる。U-netでは、エンコーダの層と対応するデコーダの層とを接続することにより、エンコーダの中間層から出力される特徴量をデコーダで共有できるため、デコーダから非常に高い精度の出力を行うことができることが一般的に知られている。
【0050】
本実施形態の学習モデル100では、第2中間層140に、第1中間層120から出力される特徴マップ120aが接続されることにより、学習用入力画像41の特徴を有する特徴マップ131を、効率よく、かつ、高精度に高解像度化処理を行うことができる。折り返し層130は、エンコーダの最も後段階の層であり、U-netの「折り返し」の、U字の底部に相当する層である。
【0051】
第1出力層150は、第2中間層140から入力される特徴マップ140aに基づき、第1学習用出力画像101を出力する。第1出力層150は、特徴マップ140aに、ReLU(Rectified Linear Unit)関数等の活性化関数を適用することにより、第1学習用出力画像101を出力する。なお、活性化関数は、第1中間層120、第2中間層140及び第3中間層160で畳み込みが行われた特徴マップにも適用される。第1出力層150から出力された第1学習用出力画像101は、評価部50に送信される。
【0052】
特徴マップ140aのデータ型は浮動小数点であり、第1学習用出力画像101のデータ型は整数型であることが好ましい。第1学習用出力画像101のデータ型の浮動小数点から整数型への変換は、第1出力層150で行われてもよく、第1出力層150から評価部50へ入力までの段階において行われてもよい。
【0053】
第3中間層160及び第2出力層170で構成される、第2のデコーダであるネットワークは、折り返し層130から出力される特徴マップ131に対する高解像度化処理を行うことにより、学習用入力画像41よりも画素数が大きい第2学習用出力画像102を出力する。
【0054】
第2のデコーダのうち、第3中間層160は、特徴マップ131に基づき、第2出力層170に入力する特徴マップ160aを出力する。第3中間層160では、第2中間層140とは異なり、第1中間層120から出力される特徴マップ120aのスキップ接続は行われない。
【0055】
第2出力層170は、第3中間層160から入力される特徴マップ160aに基づき、第2学習用出力画像102を出力する。第2出力層170は、特徴マップ160aに活性化関数を適用することにより、第2学習用出力画像102を出力する。第2学習用出力画像102は、評価部50に送信される。
【0056】
特徴マップ160aのデータ型は浮動小数点であり、第2学習用出力画像102のデータ型は整数型であることが好ましい。第2学習用出力画像102のデータ型の浮動小数点から整数型への変換は、第2出力層170で行われてもよく、第2出力層170から評価部50へ入力までの段階において行われてもよい。
【0057】
評価部50は、第1出力層150から出力された第1学習用出力画像101と、データベース20から送信されるソース画像21とを、損失関数に適用して比較することにより、第1損失51を算出する。また、評価部50は、第2出力層170から出力された第2学習用出力画像102と、データベース20から送信されるソース画像21とを、損失関数に適用して比較することにより、第2損失52を算出する。損失は、上述のとおり、更新部60によるパラメータの最適化処理に用いる。
【0058】
上記のように、エンコーダからの特徴マップ120aを接続する第1のデコーダだけでなく、エンコーダからの特徴マップ120aを接続しない第2のデコーダを含むように学習モデル100を構成して学習を行うことにより、エンコーダが学習用入力画像41のより重要な特徴を抽出できるように、エンコーダのパラメータを更新することができる。このようにエンコーダのパラメータを更新すると、第1のデコーダ及び第2のデコーダのパラメータも、学習用入力画像41の特徴をより強く反映して高解像度化処理を行った画像を出力するように更新される。
【0059】
図5を用いて、学習モデル100の構成と機能についてより詳しく説明する。図5に示すように、第1中間層120は、畳み込みを行う複数の畳み込み層121、122、123、124を有する。第2中間層140は、高解像度化処理を行う複数のアップサンプリング層141、142、143、144を有する。また、第3中間層160も、複数のアップサンプリング層161、162、163、164を有する。図5では記載を省略しているが、第2中間層140及び第3中間層160は、各アップサンプリング層の後段階に畳み込み層を設けることが好ましい。また、第1中間層120は、各畳み込み層の後段階に、プーリングを行うプーリング層を設けてもよい。
【0060】
図5では、第1中間層120、第2中間層140及び第3中間層160が、それぞれ4つの畳み込み層又はアップサンプリング層を有するネットワークを記載しているが、第1中間層120、第2中間層140及び第3中間層160がそれぞれ有する畳み込み層又はアップサンプリング層の数はこれに限られない。なお、第3中間層160のアップサンプリング層の数は、第2中間層140のアップサンプリング層の数と同じであることが好ましい。
【0061】
以下、学習モデル100において入出力される各画像データの情報量について説明する。画像データの情報量は、要素数又はメモリ量である。要素数は、画像データに含まれる各画像の画素数及び画像データのチャンネル数によって決定される。具体例には、要素数は、(画素数)×(チャンネル数)である。メモリ量は、画像データに含まれる各画像の画素数、画像データのチャンネル数及び各画像のデータ型に応じたビット数によって決定される。具体例には、メモリ量は、(画素数)×(チャンネル数)×(ビット数)である。
【0062】
整数型及び浮動小数点は、画像データを処理するためのデータ型である。整数型には、byte、short、int、long等があり、浮動小数点には、float、double等がある。また、整数型には、正の整数を表す符号なし整数型(unsigned integer)と、正の整数及び負の整数を表すことができる符号付き整数型(unsigned integer)とがある。データ型に応じたビット数は、プログラミング言語によって異なるが、例えば、データ型が「unsigned int8」であれば8ビットであり、「float32」であれば32ビットである。
【0063】
図5では、それぞれの画像データの右肩に、要素数の具体例を付している。例えば、データベース20から劣化処理部40及び評価部50に送信されるソース画像21の要素数は、「1024×1024×3」である。これは、画素数(幅×高さ)が「1024×1024」、チャンネル数が「3」であることを示している。図5では、ソース画像21がカラー画像である例を示しており、このため、チャンネル数は、Rチャンネル、Gチャンネル、Bチャンネルの3種類であることを示す「3」となっている。なお、ソース画像21がモノクロ画像である場合、チャンネル数は「1」となる。
【0064】
劣化処理部40で劣化処理を行うことで生成された学習用入力画像41の要素数は、ソース画像21に対して画素数が小さくなっており、「512×512×3」である。入力層110から第1中間層120の畳み込み層121に入力される特徴マップ111の要素数は、「512×512×3」である。ここで、特徴マップ111のデータ型がunsigned int8である場合、特徴マップ111のメモリ量は、6,291,456ビット(512×512×3×8)である。特徴マップ111のデータ型をunsigned int8からfloat32に変換すると、特徴マップ111のメモリ量は、25,165,824ビット(512×512×3×32)となる。
【0065】
エンコーダに含まれる畳み込み層121、122、123、124及び折り返し層130では、特徴マップの畳み込みを段階的に行い、特徴マップ121a、122a、123a、124a、131を得る。図5に示す例では、後段階の畳み込み層であるほど、特徴抽出された、画素数が小さい特徴マップを出力する。
【0066】
具体的には、特徴マップ121aの要素数は「512×512×64」、メモリ量は536,870,912ビット(512×512×64×32)である。特徴マップ122aの要素数は「256×256×128」、メモリ量は268,435,456ビット(256×256×128×32)である。特徴マップ123aの要素数は「128×128×256」、メモリ量は134,217,728ビット(128×128×256×32)である。特徴マップ124aの要素数は「64×64×512」、メモリ量は67,108,864ビット(64×64×512×32)である。特徴マップ131の要素数は「32×32×1024」、メモリ量は33,554,432ビット(32×32×1024×32)である。
【0067】
一般的に、畳み込みニューラルネットワークにおける特徴抽出では、情報量を維持するために、各畳み込み層から出力される特徴マップのチャンネル数が段階的に増える。なお、出力される特徴マップのチャンネル数は、各畳み込み層において用いられるフィルタの数と一致する。
【0068】
例えば、図5に示す例では、畳み込み層124では、特徴マップ123aに対して512枚のフィルタを適用するため、出力される特徴マップ124aのチャンネル数が「512」となる。エンコーダの最も後段階において特徴抽出を行う折り返し層130では、特徴マップ124aに対して1024枚のフィルタを適用するため、出力される特徴マップ131のチャンネル数が「1024」となる。
【0069】
U-netであるエンコーダと第1のデコーダでは、スキップ接続により、第1中間層の畳み込み層121、122、123、124から出力される特徴マップ121a、122a、123a、124aが、第2中間層140のアップサンプリング層141、142、143、144にそれぞれ入力される。
【0070】
第1のデコーダに含まれるアップサンプリング層141、142、143、144では、特徴マップの高解像度化処理を段階的に行い、特徴マップ141a、142a、143a、144aを得る。図5に示す例では、後段階のアップサンプリング層であるほど、高解像度化処理された、画素数が大きい特徴マップを出力する。
【0071】
アップサンプリング層141は、折り返し層130からの特徴マップ131と、対応する畳み込み層124から出力される特徴マップ124aとを入力されることにより、特徴マップ141aを出力する。特徴マップ141aの要素数は「128×128×256」、メモリ量は134,217,728ビット(128×128×256×32)である。
【0072】
アップサンプリング層142は、特徴マップ141aと、対応する畳み込み層123から出力される特徴マップ123aとを入力されることにより、特徴マップ142aを出力する。特徴マップ142aの要素数は「256×256×128」、メモリ量は268,435,456ビット(256×256×128×32)である。
【0073】
アップサンプリング層143は、特徴マップ142aと、対応する畳み込み層122から出力される特徴マップ122aとを入力されることにより、特徴マップ143aを出力する。特徴マップ143aの要素数は「512×512×64」、メモリ量は536,870,912ビット(512×512×64×32)である。
【0074】
アップサンプリング層144は、特徴マップ143aと、対応する畳み込み層121から出力される特徴マップ121aとを入力されることにより、特徴マップ144aを出力する。特徴マップ144aの要素数は「1024×1024×32」、メモリ量は1,073,741,824ビット(1024×1024×32×32)である。
【0075】
なお、第1出力層150の1つ前段階のアップサンプリング層であるアップサンプリング層144には、学習用入力画像41をさらに入力してもよい。学習用入力画像41を高解像度化処理に用いることで、第1のデコーダの出力をより高精度にすることができる。なお、学習用入力画像41をアップサンプリング層144に入力する場合は、、学習用入力画像41のデータ型を、特徴マップ143aと同じデータ型に変換して入力する必要がある。
【0076】
第1出力層150は、特徴マップ144aに活性化関数を適用し、第1学習用出力画像101を出力する。第1学習用出力画像101の要素数は、「1024×1024×3」である。ここで、第1学習用出力画像101のデータ型がfloat32である場合、第1学習用出力画像101のメモリ量は、100,663,296ビット(1024×1024×3×32)である。第1学習用出力画像101のデータ型をfloat32からunsigned int8に変換すると、第1学習用出力画像101のメモリ量は、25,165,824ビット(1024×1024×3×8)となる。
【0077】
なお、図5では、エンコーダと第1のデコーダとの間で対応する層に特徴マップを接続する例を示したが、エンコーダからの接続は、対応する層に限られない。
【0078】
第2のデコーダは、エンコーダからのスキップ接続を有さず、折り返し層130からの特徴マップ131に対する高解像度化処理を、第2のデコーダに含まれるアップサンプリング層161、162、163、164で段階的に行い、特徴マップ161a、162a、163a、164aを得る。図5に示す例では、後段階のアップサンプリング層であるほど、高解像度化処理された、画素数が大きい特徴マップを出力する。
【0079】
具体的には、特徴マップ161aの要素数は「128×128×256」、メモリ量は134,217,728ビット(128×128×256×32)である。特徴マップ162aの要素数は「256×256×128」、メモリ量は268,435,456ビット(256×256×128×32)である。特徴マップ163aの要素数は「512×512×64」、メモリ量は536,870,912ビット(512×512×64×32)である。特徴マップ164aの要素数は「1024×1024×32」、メモリ量は1,073,741,824ビット(1024×1024×32×32)である。
【0080】
第2出力層170は、特徴マップ164aに活性化関数を適用し、第2学習用出力画像102を出力する。第2学習用出力画像102の要素数は、「1024×1024×3」である。ここで、第2学習用出力画像102のデータ型がfloat32である場合、第2学習用出力画像102のメモリ量は、100,663,296ビット(1024×1024×3×32)である。第2学習用出力画像102のデータ型をfloat32からunsigned int8に変換すると、第2学習用出力画像102のメモリ量は、25,165,824ビット(1024×1024×3×8)となる。第2のデコーダから出力される第2学習用出力画像102の画素数は、第1のデコーダから出力される第1学習用出力画像101の画素数と同じであることが好ましい。
【0081】
評価部50は、要素数が「1024×1024×3」であるソース画像21、第1学習用出力画像101及び第2学習用出力画像102を用い、第1損失51及び第2損失52を算出する。
【0082】
上記のとおり、画素数が「512×512」である学習用入力画像41を学習モデル100に入力することにより、画素数が「1024×1024」である第1学習用出力画像101及び第2学習用出力画像102が出力される。すなわち、図5に示す例における学習モデル100は、入力された画像を、4倍の画素数にして高解像度化した画像を出力する学習モデルである。したがって、図5に例示する学習モデル100を学習させることによって生成した学習済みモデル200は、入力された未知の画像(推論用入力画像)の、4倍の画素数を有する超解像画像を出力する。例えば、図5に例示する学習モデル100を学習させて生成した学習済みモデル200に、未知の画像として画素数が「1024×1024」の推論用入力画像を入力することにより、画素数が「2048×2048」の超解像画像を得ることができる。
【0083】
ソース画像21、学習用入力画像41、第1学習用出力画像101及び第2学習用出力画像102の画素数は、上記の例に限られない。例えば、学習モデル100は、入力された画像を16倍、64倍、256倍等の画素数にして高解像度化した画像を出力するように設計されてもよい。
【0084】
すなわち、推論部12においては、第1の画素数を有する推論用入力画像201を、学習済みモデル200に入力することにより、第1の画素数より大きい第2の画素数を有する超解像画像202が出力される(図3参照)。この学習済みモデル200は、第3の画素数を有するソース画像21と、ソース画像21を劣化処理することによって生成された、第3の画素数より小さい第4の画素数を有する学習用入力画像41を用い、第4の画素数より大きい第5の画素数を有する第1学習用出力画像101及び第2学習用出力画像102を出力する学習モデル100のパラメータを更新することによって生成される。
【0085】
ここで、ソース画像21が有する第3の画素数は、推論用入力画像201が有する第1の画素数以下である。推論用入力画像201が有する第1の画素数に対する、超解像画像202が有する第2の画素数の比率と、学習用入力画像41が有する第4の画素数に対する、第1学習用出力画像101及び第2学習用出力画像102が有する第5の画素数の比率は等しい。比率は、例えば、4倍、16倍、64倍、256倍等、22n倍(nは1以上の自然数)である。
【0086】
上記のように、U-netの構造に加えて、折り返し層130からさらに分岐する、エンコーダからの特徴量を受け取らずに高解像度化処理を行った画像を生成する第2のデコーダを学習モデル100に設けることにより、高精度、かつ、効率よく学習を行うことができるU-netのメリットを享受しながら、劣化した画像の特に重要な特徴を反映させた出力画像を生成するように、学習モデル100の学習を行うことができる。
【0087】
CNNを用いた画像処理では、ダウンサンプリングにより、入力される画像の解像度を段階的に落としながら特徴抽出を行うことが多い。このとき、後段階の畳み込み層から出力される特徴マップほど画素数が小さくなる。このため、後段階の特徴マップ全体としての情報量を維持するために、特徴マップのチャンネル数を増やすことが一般的である。
【0088】
U-netを用いた超解像においても、エンコーダでは、出力される特徴マップの解像度を段階的に落とす代わりに、チャンネル数を段階的に増やすことにより、冗長的に情報量を維持する。U-netを用いた超解像では、冗長的に維持された元の画像に近い段階の特徴マップをデコーダに接続することにより、精度の高い超解像が実現できる。U-netのみで構成される学習モデルには、ソース画像21に相当する元の画像を精度よく復元した超解像を実現できるメリットがある。
【0089】
しかしながら、「元の画像の復元」では、ソース画像21の画素数を超えて超解像を行うことは難しい。U-netのみで構成される学習モデルの場合、出力される第1学習用出力画像101は、学習用入力画像41の典型的な特徴を高解像度化した画像となる。そこで、U-netのようにはエンコーダの中間特徴量を接続されない、第2のデコーダをさらに設けることにより、ソース画像21の画素数以上の画素数を有する超解像画像を生成する超解像を実現するエンコーダ及びデコーダの学習を行うことができる。
【0090】
第2学習用出力画像102は、特徴抽出が行われる中途段階の画像データを高解像度化処理に用いることなく、学習用入力画像41の特徴が最も強く抽出されている折り返し層130からの特徴マップ131のみを高解像度化処理に用いて出力された画像である。上記のように学習モデル100を構成することで、学習の初期段階においては第2損失52が大きくなるが、第2損失52を小さくするように学習を進めると、エンコーダにおける特徴抽出の精度を、U-netのみで構成される学習モデルのエンコーダにおける特徴抽出の精度よりも向上させることができるため、学習モデル100は、元の画像の特徴を強く反映して高解像度化された画像を出力できるようになる。結果として、推論時には、学習時に用いたソース画像21の画素数以上の画素数を有する超解像画像202を出力できるようになる。
【0091】
上記のとおり、エンコーダからの特徴マップが接続される第1のデコーダと、エンコーダからの特徴マップが接続されない第2のデコーダとを有する学習モデル100を学習させることにより、元の画像の特徴を強く反映して高解像度化された画像を得ることができるようになる。ここで、折り返し層130から出力される特徴マップ131における情報量を削減する情報量削減処理を行うことにより、エンコーダの特徴抽出の精度をさらに向上させることができる。
【0092】
情報量削減処理は、画素数、チャンネル数、データ型に応じたビット数によって決定される情報量(要素数又はメモリ量)のうち、チャンネル数又はビット数を変更する処理である。情報量削減処理によって、折り返し層130が出力する特徴マップ131の情報量を、学習用入力画像41の情報量より小さくすることが好ましい。
【0093】
チャンネル数を変更する情報量削減処理では、折り返し層130が出力する特徴マップ131のチャンネル数を小さくする処理を行う。具体的には、折り返し層130が、畳み込み又はプーリングを行う前の段階又は後の段階において、入出力される特徴マップのチャンネル数を小さくする。
【0094】
例えば、図6に示すように、図5では「32×32×1024」であった特徴マップ131の要素数(1,048,576)を、「32×32×128」(要素数131,072)に削減する。図6に示す例において、特徴マップ131のデータ型がfloat32である場合は、メモリ量が33,554,432ビットから4,194,304ビットに削減される。図6において、学習用入力画像41の要素数は、「512×512×3」(要素数786,432、メモリ量6,291,456ビット(512×512×3×8))であるため、情報量削減処理を行った特徴マップ131の要素数は、学習用入力画像41よりも小さくなる。
【0095】
ビット数を変更する情報量削減処理では、折り返し層130が出力する特徴マップ131のデータ型に応じたビット数を小さくする処理を行う。具体的には、折り返し層130が、畳み込み又はプーリングを行う前の段階又は後の段階において、特徴マップのデータ型を変換する処理により、最終的には折り返し層130が出力する特徴マップ131のメモリ量を小さくする。
【0096】
例えば、図6において、折り返し層130が出力する特徴マップ131のデータ型をfloat16に変換すると、特徴マップ131のメモリ量は2,097,152ビット(32×32×128×16)となる。また、特徴マップ131のデータ型をint8に変換すると、特徴マップ131のメモリ量は1,048,576ビット(32×32×128×8)となる。
【0097】
さらに、図5又は図6において、特徴マップ131のデータ型をビット数が2ビットであるデータ型に変換すると、特徴マップ131のメモリ量は2,097,152ビット(32×32×1024×8)又は1,048,576ビット(32×32×128×8)となる。学習用入力画像41(及び特徴マップ111)のデータ型がunsigned int8である場合、学習用入力画像41のメモリ量は、6,291,456ビット(512×512×3×8)である。したがって、チャンネル数の削減とデータ型の変換との組み合わせ、又はデータ型の変換による情報量削減処理を行った特徴マップ131のメモリ量は、学習用入力画像41よりも小さくなる。
【0098】
上記のように、エンコーダにおいて学習用入力画像の特徴抽出を行った結果である特徴マップ131の情報量を削減することにより、第2のデコーダは、情報量がより少ない特徴マップから第2学習用出力画像102を生成することになる。このため、エンコーダの特徴抽出の精度をさらに向上させるように学習モデル100を更新することができ、また、2つのデコーダから出力される第1学習用出力画像101及び第2学習用出力画像102を、学習用入力画像41の特徴をより強力に反映して高解像度化された画像とするように学習モデル100を更新することができる。
【0099】
上記の情報量削減処理を行う構成は、学習済みモデル200に入力する未知の画像の画素数が、ソース画像21の画素数を超える場合に特に好適である。例えば、未知の画像である推論用入力画像201の画素数が「1280×960」であって、ソース画像21の画素数が「512×512」である場合である。この場合、例えば、学習用入力画像41の64倍の画素数を有する画像を出力するように学習モデル100を設計し、劣化処理によって画素数を「256×256」とした学習用入力画像41から、画素数が「2048×2048」である第1学習用出力画像101及び第2学習用出力画像102を出力する。この場合、生成された学習済みモデル200に、画素数が「1280×960」である推論用入力画像201を入力すると、画素数が「10240×7680」である、8K以上の解像度を有する超解像画像202を生成することができる。
【0100】
上記の学習モデル100のパラメータの最適化のために、敵対的生成ネットワーク(Generative Adversarial Network;GAN)を適用してもよい。GANでは、一般的に、生成器(Generator)と、識別器(Discriminator)との、2つの学習モデルを連結して構成し、生成器及び識別器のパラメータをそれぞれ更新することにより、ネットワーク全体の学習を行う。識別器には、既知であるオリジナルの学習用データ又は生成器が出力するデータが入力される。識別器は、入力されたデータが、オリジナルの学習用データ(真)であるか、生成器が出力するデータ(偽)であるかを識別した結果として識別結果を出力する。
【0101】
生成器の学習においては、生成器の出力するデータを識別器に「偽」と識別されないように、言い換えれば、生成器の出力するデータを識別器に「真」と識別されるように、パラメータの最適化を行う。また、識別器の学習においては、真偽判定の精度を向上するようにパラメータの最適化を行う。パラメータの更新は、識別器用の損失関数と、生成器用の損失関数とを適用することによってそれぞれ算出される損失を用いて行われる。識別器用の損失は、識別器が出力する識別結果を識別器用の損失関数に適用して算出される。生成器用の損失は、識別器用の損失を生成器用の損失関数に適用して算出される。
【0102】
本実施形態では、第1学習用出力画像101及び第2学習用出力画像102を出力する学習モデル100を生成器とし、図7に示すように、生成器である学習モデル100とは異なる識別用学習モデル300を識別器として学習部11に設ける。識別用学習モデル300は、学習モデル100が出力する第1学習用出力画像101及び第2学習用出力画像102を入力されることにより、第1識別結果301と、第2識別結果302とを出力する。
【0103】
識別用学習モデル300は、ソース画像21を「真」、ソース画像21ではない画像を「偽」として出力する学習モデルであり、生成器としての学習モデル100から出力される第1学習用出力画像101及び第2学習用出力画像102に対する真偽の識別を行う。第1識別結果301は、識別用学習モデル300が、第1学習用出力画像101に対する真偽の識別を行った結果である。また、第2識別結果302は、識別用学習モデル300が、第2学習用出力画像102に対する真偽の識別を行った結果である。
【0104】
評価部50には、第1識別結果301及び第2識別結果302が入力される。評価部50は、識別用学習モデル300の損失として、第1識別結果301を識別器用の損失関数に適用して第1識別器損失を算出し、また、第2識別結果302を識別器用の損失関数に適用して第2識別器損失を算出する。更新部60は、第1識別器損失及び第2識別器損失に基づき、識別用学習モデル300のパラメータを最適化することにより、識別用学習モデル300の更新を行う。
【0105】
また、評価部50は、生成器としての学習モデル100の損失として、第1識別結果及びソース画像21を生成器用の損失関数に適用し、第1損失51(第1生成器損失)を算出する。すなわち、第1生成器損失は、第1学習用出力画像101に基づく第1識別結果と、ソース画像21とを用いて算出される損失である。同様に、評価部50は、学習モデル100の損失として、第2識別結果及びソース画像21を生成器用の損失関数に適用し、第2損失52(第2生成器損失)を算出する。すなわち、第2生成器損失は、第2学習用出力画像102に基づく第1識別結果と、ソース画像21とを用いて算出される損失である。
【0106】
更新部60は、第1損失51(第1生成器損失)及び第2損失52(第2生成器損失)に基づき、生成器としての学習モデル100のパラメータを最適化することにより、学習モデル100の更新を行う。この場合、学習済みモデル200(学習済みの生成器)は、学習済みの生成器としての学習モデル100である。上記のように、GANを採用し、学習モデル100を生成器とするようにネットワークを構成することにより、高精度の超解像を実現することができる。特に、ソース画像21が少ない場合においても、上記の構成は好適である。
【0107】
本実施形態における学習モデル100を更新することで生成される学習済みモデル200は、未知の画像である推論用入力画像201を内視鏡画像とする場合に好適である。内視鏡画像は、モダリティ30を内視鏡とし、内視鏡が、被写体を撮影することによって生成される画像である。この場合、図8に示すように、推論部12は、データベース20に保存されている第1の画素数を有する内視鏡画像203を、学習済みモデル200に入力することにより、第1の画素数より大きい第2の画素数を有する超解像画像204を出力する。
【0108】
第2の画素数を有する超解像画像204を出力する学習済みモデル200は、図9に示すように、第3の画素数を有するソース内視鏡画像221を劣化処理することによって生成された、第3の画素数より小さい第4の画素数を有する学習用入力画像41を用い、第4の画素数より大きい第5の画素数を有する第1学習用出力画像101及び第2学習用出力画像102を出力する学習モデル100を、評価部50が算出する、第1学習用出力画像101及びソース内視鏡画像221を損失関数に適用して算出する第1損失51と、第2学習用出力画像102及びソース内視鏡画像221を損失関数に適用して算出する第2損失52と、を用いて更新部60が更新することによって生成される。
【0109】
ソース画像21及び推論用入力画像201が内視鏡画像以外の画像である場合と同じく、内視鏡画像203が有する第1の画素数に対する、超解像画像204が有する第2の画素数の比率と、学習用入力画像41が有する第4の画素数に対する、第1学習用出力画像101及び第2学習用出力画像102が有する第5の画素数の比率は等しい。
【0110】
例えば、学習用入力画像41の4倍の画素数を有する学習用出力画像を出力するように学習モデル100を設計する場合、学習済みモデル200は、画素数が「512×512」である内視鏡画像203を入力されることにより、画素数が「1024×1024」である超解像画像204を出力する。この場合、ソース内視鏡画像221の画素数を「512×512」とし、ソース内視鏡画像221に対する劣化処理を行うことにより、画素数を「256×256」とした学習用入力画像41を学習モデル100に入力する。学習モデル100は、学習用入力画像41の4倍の画素数を有する、画素数が「512×512」である第1学習用出力画像101及び第2学習用出力画像102を出力する。この場合、評価部50は、画素数が「512×512」である第1学習用出力画像101及び第2学習用出力画像102と、画素数が「512×512」であるソース内視鏡画像221とを損失関数に適用することにより、第1損失51及び第2損失52を算出する。
【0111】
ソース画像21及び推論用入力画像201が内視鏡画像以外の画像である場合と同じく、ソース内視鏡画像221が有する第3の画素数は、学習済みモデル200に入力する未知の画像である内視鏡画像203が有する第1の画素数以下である。特に、上記の例のように、ソース内視鏡画像221の画素数である第3の画素数と、内視鏡画像203の画素数である第1の画素数とは、等しいことが好ましい。
【0112】
なお、学習用入力画像41の16倍の画素数を有する学習用出力画像を出力するように学習モデル100を設計し、ソース画像21の画素数が「512×512」である場合に、画素数が「1280×960」である内視鏡画像203を入力することにより、画素数が「5120×3840」である4K以上の解像度を有する超解像画像204を生成するようにしてもよい。
【0113】
また、学習済みモデル200は、図10に示すように、入力層110、第1中間層120、折り返し層130、第1中間層120からの特徴マップを受け取る第2中間層140、第1出力層150によって構成されることが好ましい。学習モデル100の学習には、第2のデコーダである第3中間層160及び第2出力層170が、より高精度の学習用出力画像を得るために必要であるが、未知の画像からの超解像画像の出力には、1つのデコーダが具備されれば十分であるためである。また、学習済みモデル200において、第3中間層160及び第2出力層170を省略することにより、プロセッサを構成するメモリを少なくすることができ、処理速度を向上させることができる。
【0114】
また、表示制御部70は、学習済みモデル200から受信する超解像画像202をディスプレイ80に表示する場合において、超解像画像202と、内視鏡画像に対する高解像度化処理を行った画像であることを示す情報とを表示することが好ましい。例えば、図11に示す超解像画像204の例のように、「×4 SR」と表示される、内視鏡画像に対して4倍の超解像(Super Resolution)を行ったことを示す報知表示210をディスプレイ80に表示する。
【0115】
機械学習である学習済みモデル200によって生成された超解像画像204は、人工的に生成された画像であるため、医師による診断に用いることはできない。しかしながら、例えば、医師が内視鏡画像を示して患者に説明を行うシーン、複数人で内視鏡画像の観察を行うシーン等の、大きなディスプレイ80に内視鏡画像を表示したい場合、病変、治療目標等の注目したい領域を拡大して見せたい又は観察したい場合等に有用である。このため、報知表示210を超解像画像204に表示することで、超解像画像204を観察する人が、ディスプレイ80に表示される画像が人工的に生成された画像であることを認識しながら、超解像された精細な画像を観察することができる。
【0116】
内視鏡画像には、データベース20における保存又は複数のデータベース20間における通信のために推奨される規格があるため、得られる画像の画素数には実質的な限界がある。また、内視鏡のマシンスペックによって画素数の大きい画像を撮影することが難しい場合がある。このような状況において、本実施形態の画像処理装置10並びに画像処理装置10、内視鏡、ディスプレイ80を有する内視鏡システムは、現実に得られる内視鏡画像の画素数の限界を超えた画素数を有する超解像画像を生成することができる。
【0117】
本実施形態の画像処理装置10における作動方法の一連の流れについて、図12のフローチャートを用いて説明する。まず、学習部11が、データベース20からソース画像を取得する(ステップST101)。次いで、劣化処理部40が、ソース画像21に対する劣化処理を行い、学習用入力画像41を生成する(ステップST102)。学習部11は、学習用入力画像41を学習モデル100に入力し、学習用入力画像41より画素数が大きい第1学習用出力画像101及び第2学習用出力画像102(図12では、まとめて「学習用出力画像」と記載する。)を出力する(ステップST103)。次いで、評価部50は、第1学習用出力画像101及びソース画像21に基づき、第1損失を算出し、さらに、第2学習用出力画像102及びソース画像21に基づき、第2損失を算出する(損失を算出する。)(ステップST104)。最終的に、第1損失及び第2損失に基づき、学習モデル100を更新することにより(ステップST105)、学習済みモデル200を生成する(ステップST106)。
【0118】
上記実施形態において、劣化処理部40、学習モデル100、学習済みモデル200、評価部50、更新部60及び表示制御部70といった各種の処理を実行する処理部(processing unit)のハードウェア的な構造は、次に示すような各種のプロセッサ(processor)である。各種のプロセッサには、ソフトウエア(プログラム)を実行して各種の処理部として機能する汎用的なプロセッサであるCPU(Central Processing Unit)、FPGA (Field Programmable Gate Array) などの製造後に回路構成を変更可能なプロセッサであるプログラマブルロジックデバイス(Programmable Logic Device:PLD)、各種の処理を実行するために専用に設計された回路構成を有するプロセッサである専用電気回路などが含まれる。
【0119】
1つの処理部は、これら各種のプロセッサのうちの1つで構成されてもよいし、同種または異種の2つ以上のプロセッサの組み合せ(例えば、複数のFPGAや、CPUとFPGAの組み合わせ)で構成されてもよい。また、複数の処理部を1つのプロセッサで構成してもよい。複数の処理部を1つのプロセッサで構成する例としては、第1に、クライアントやサーバなどのコンピュータに代表されるように、1つ以上のCPUとソフトウエアの組み合わせで1つのプロセッサを構成し、このプロセッサが複数の処理部として機能する形態がある。第2に、システムオンチップ(System On Chip:SoC)などに代表されるように、複数の処理部を含むシステム全体の機能を1つのIC(Integrated Circuit)チップで実現するプロセッサを使用する形態がある。このように、各種の処理部は、ハードウェア的な構造として、上記各種のプロセッサを1つ以上用いて構成される。
【0120】
さらに、これらの各種のプロセッサのハードウェア的な構造は、より具体的には、半導体素子などの回路素子を組み合わせた形態の電気回路(circuitry)である。また、記憶部のハードウェア的な構造はHDD(hard disc drive)やSSD(solid state drive)等の記憶装置である。
【符号の説明】
【0121】
10 画像処理装置
11 学習部
12 推論部
20 データベース
21 ソース画像
30 モダリティ
40 劣化処理部
41 学習用入力画像
50 評価部
51 第1損失
52 第2損失
60 更新部
70 表示制御部
80 ディスプレイ
100 学習モデル
101 第1学習用出力画像
102 第2学習用出力画像
110 入力層
111、120a、121a、122a、123a、124a、131、140a、141a、142a、143a、144a、160a、161a、162a、163a、164a 特徴マップ
120 第1中間層
121、122、123、124 畳み込み層
130 折り返し層
140 第2中間層
141、142、143、144、161、162、163、164 アップサンプリング層
150 第1出力層
160 第3中間層
170 第2出力層
200 学習済みモデル
201 推論用入力画像
202、204 超解像画像
203 内視鏡画像
210 報知表示
221 ソース内視鏡画像
300 識別用学習モデル
301 第1識別結果
302 第2識別結果
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12