(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-12
(45)【発行日】2024-03-21
(54)【発明の名称】学習方法、画像変換装置及びプログラム
(51)【国際特許分類】
G06T 7/00 20170101AFI20240313BHJP
G16Y 20/40 20200101ALI20240313BHJP
【FI】
G06T7/00 350C
G16Y20/40
(21)【出願番号】P 2020209665
(22)【出願日】2020-12-17
【審査請求日】2023-03-07
(73)【特許権者】
【識別番号】000208891
【氏名又は名称】KDDI株式会社
(74)【代理人】
【識別番号】100092772
【氏名又は名称】阪本 清孝
(74)【代理人】
【識別番号】100119688
【氏名又は名称】田邉 壽二
(72)【発明者】
【氏名】明堂 絵美
(72)【発明者】
【氏名】田坂 和之
(72)【発明者】
【氏名】酒澤 茂之
【審査官】真木 健彦
(56)【参考文献】
【文献】特開2014-016688(JP,A)
【文献】特開2020-187727(JP,A)
【文献】Yunzhong Hou et al,Learning to Structure an Image With Few Colors,2020 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR),IEEE,2020年06月19日,P.10113-10122,https://ieeexplore.ieee.org/document/9157773
【文献】鈴木 聡志,圧縮による画像認識の精度劣化を抑制する画像プレ変換とその解析,電子情報通信学会論文誌D,日本,電子情報通信学会,2020年05月01日,Volume J103-D No.5,P.483-495
【文献】Shuchang Zhou et al,DoReFa-Net: Training Low Bitwidth Convolutional Neural Networks with Low Bitwidth Gradients,arXiv,2018年02月02日,P.1-13,https://arxiv.org/abs/1606.06160
【文献】今井 拓司,1~2ビットへの大幅量子化でDNN推論の電力効率向上 LeapMindがCNNアクセラレータ回路を開発,NIKKEI Robotics 第60号 ,日本,日経BP,2020年06月10日,P.12-17
【文献】Phillip Isola et al,Image-to-Image Translation with Conditional Adversarial Networks,2017 IEEE Conference on Computer Vision and Pattern Recognition (CVPR),IEEE,2017年07月26日,P.5967-5976,https://ieeexplore.ieee.org/document/8100115
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00
G06T 1/00
G16Y 20/40
(57)【特許請求の範囲】
【請求項1】
ニューラルネットワーク構造による画像変換処理のパラメータを学習する学習方法であって、
訓練用画像を前記画像変換処理で変換した情報削減画像に対して評価される情報削減度合いに基づいて算出される誤差によるパラメータ更新と、
前記情報削減画像を、所定タスクの認識処理を行うタスク処理で認識した結果に基づいて算出される誤差によるパラメータ更新と、を用いて前記画像変換処理のパラメータを学習し、
前記画像変換処理によって前記情報削減画像は、前記訓練用画像の階調情報及び輪郭情報をそれぞれ抽出した階調情報チャンネル及び輪郭情報チャンネルを有するものとして変換され、
前記情報削減度合いに基づいて算出される誤差によるパラメータ更新において、前記階調情報チャンネルの画像と前記輪郭情報チャンネルの画像とにおける情報削減度合いを評価することを特徴とする学習方法。
【請求項2】
前記画像変換処理を行うニューラルネットワークの出力層に、離散値で画素値を出力する階段関数が設定され、前記情報削減画像は当該離散値の画素値を有するものとして変換されることを特徴とする請求項1に記載の学習方法。
【請求項3】
前記階段関数が誤差の順伝播の際に利用され、誤差の逆伝播の際には、当該階段関数の増加挙動を模した連続関数が利用されることにより、パラメータ更新を行うことを特徴とする請求項2に記載の学習方法。
【請求項4】
前記階段関数が出力しうる離散値の個数である階調数は、2以上64以下の値に設定されていることを特徴とする請求項2または3に記載の学習方法。
【請求項5】
前記階段関数は、出力しうる離散数の個数である階調数及び/又は当該階段関数によって模擬される対象である連続関数が異なる複数の階段関数が設定可能とされており、
当該複数の階段関数を切り替えながら学習することを特徴とする請求項2ないし4のいずれかに記載の学習方法。
【請求項6】
前記情報削減画像は、階調情報チャンネル及び輪郭情報チャンネルを、RGBやYCbCrなどの一般カラー画像におけるチャンネルに割り当てて、当該一般カラー画像の形式で得られることを特徴とする請求項1ないし5のいずれかに記載の学習方法。
【請求項7】
前記情報削減度合いに基づいて算出される誤差によるパラメータ更新において、
前記階調情報チャンネルの画像と、前記訓練用画像を平坦化して生成される平坦化参考画像と、の相違を誤差として評価することを特徴とする請求項1ないし6のいずれかに記載の学習方法。
【請求項8】
前記情報削減度合いに基づいて算出される誤差によるパラメータ更新において、
前記階調情報チャンネルの画像をフェイク画像とし、前記訓練用画像を平坦化して生成される平坦化参考画像をリアル画像とし、当該フェイク画像とリアル画像とを識別するGAN(敵対的生成ネットワーク)の識別器の学習を介して、前記画像変換処理によって階調情報チャンネルの画像をフェイク画像として得る生成器に対するパラメータ更新を行うことを特徴とする請求項1ないし7のいずれかに記載の学習方法。
【請求項9】
前記平坦化参考画像の階調数は、前記階調情報チャンネルの画像の階調数よりも大きいものとして、前記平坦化参考画像が生成されることを特徴とする請求項7または8に記載の学習方法。
【請求項10】
前記情報削減度合いに基づいて算出される誤差によるパラメータ更新において、
前記輪郭情報チャンネルの画像と、前記訓練用画像に輪郭抽出フィルタを適用して生成される輪郭参考画像と、の相違を誤差として評価することを特徴とする請求項1ないし9のいずれかに記載の学習方法。
【請求項11】
前記情報削減度合いに基づいて算出される誤差によるパラメータ更新において、
前記輪郭情報チャンネルの画像をフェイク画像とし、前記訓練用画像に輪郭抽出フィルタを適用して生成される輪郭参考画像をリアル画像とし、当該フェイク画像とリアル画像とを識別するGAN(敵対的生成ネットワーク)の識別器の学習を介して、前記画像変換処理によって輪郭情報チャンネルの画像をフェイク画像として得る生成器に対するパラメータ更新を行うことを特徴とする請求項1ないし10のいずれかに記載の学習方法。
【請求項12】
前記情報削減度合いに基づいて算出される誤差によるパラメータ更新と、前記タスク処理で認識した結果に基づいて算出される誤差によるパラメータ更新と、が交互に行われることを特徴とする請求項1ないし11のいずれかに記載の学習方法。
【請求項13】
前記所定タスクに関して、第1タスクの認識処理を行う第1タスク処理で認識した結果に基づいて算出される誤差によるパラメータ更新を用いて、前記画像変換処理のパラメータを学習した後にさらに、
訓練用画像を当該学習済みの画像変換処理で変換した情報削減画像を用いて、前記第1タスクとは異なる第2タスクの認識処理を行う第2タスク処理のパラメータを学習することを特徴とする請求項1ないし12のいずれかに記載の学習方法。
【請求項14】
請求項1ないし13のいずれかに記載の学習方法によって学習された画像変換処理のパラメータを用いて入力画像を変換することにより情報削減画像を得ることを特徴とする画像変換装置。
【請求項15】
コンピュータに請求項1ないし13のいずれかに記載の学習方法を実行させる、または、コンピュータを請求項
14に記載の画像変換装置として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、タスク精度を確保しつつ画像のプライバシー保護等を行うことのできる画像変換処理を学習する学習方法、画像変換装置及びプログラムに関する。
【背景技術】
【0002】
ユーザのプライバシー情報が含まれうる画像/音声データを、クラウドに送信し、ニューラルネット等の機械学習を用いて解析するケースにおいて、ユーザへのプライバシー侵害が発生することを防止する必要がある。例えば、音声データに関して、クラウドに送られたスマートスピーカの内容を、仮にサービス提供者側が視聴したとすると、機械学習の精度向上等の技術的な目的の下での視聴であったとしても、結果としてプライバシーの侵害が発生しうる。
【0003】
なお、このようなスマートスピーカでは、一般的に通信路の盗聴からは、データの暗号化によりユーザのプライバシーを守っている。しかし、クラウド側では暗号化されたデータを復号するため、上記のような状況が発生しうることとなる。
【0004】
以下のURLのニュースリリース記事「暗号化したままディープラーニングの標準的な学習処理ができる秘密計算技術を世界で初めて実現」において開示されているように、クラウド側で暗号化したまま再学習やファインチューニング等の処理を行う手法もある。
https://www.ntt.co.jp/news2019/1909/190902a.html
【0005】
ここでの課題の一つ目は、サービス提供者の知覚による画像や音声データの確認ができないことである。実際に、問題の原因追究や機械学習の誤り等、人の知覚で行いたい作業もある。例えば、ユーザのクレーム対応やポイズニングデータの目視排除等をサービス提供者側が行いたい場合があるが、そのような確認も難しくなると考えられる。ユーザクレームとして、例えば画像を用いて姿勢推定結果を返すサービスでは、姿勢が検出できないといった意見がユーザから寄せられることが考えられる。その際、暗号化を行ったスクランブル画像等の情報では、人の形状が分からず、どのような姿勢が検出できていないかといったことを目視確認することはできない。また、姿勢が検出できなかった難読化画像のみを集め、再度姿勢推定器をチューニングする場合を考えると、スクランブル画像では目視でアノテーションを行うことはできず、プライバシーに配慮してユーザにアノテーションをしてもらう場合には学習の妨げとなる誤ったアノテーションのデータが混ざりやすい。また、人の知覚で行いたい作業としては、モニタールームでの監視なども人の知覚で何が起こっているか分かるようにしたい要望がある。人が起因する想定外のトラブルが発生した場合に、人がどのような体勢をとっているのか、どの程度動かないか等目視で判別できるように、人の形やその動きが追える様になっていないと、警備員は次の動作の判断(現地に行くなど)を行うことが難しいからである。
【0006】
二つ目の課題は、暗号化はしていても生データが含まれるため、ユーザにとっては、攻撃や運用ミスなどで生データが漏洩してしまうのではないかという不安を持ちやすいことである。
【0007】
一方、画像データに関しては、プライバシーと考えられるセンシティブな情報にぼかしや置き換え等の画像処理を行い、プライバシーを保護する手法が従来から行われている。ユーザにとっては、生データを提供しない安心感はあるものの、サービス提供者側の画像解析タスクの精度は非常に低下しやすい。
【0008】
近年では、ニューラルネット等の機械学習によるタスクの解析精度を可能な限り低下させずに、プライバシー画像を生成する試みもある。このような手法は、タスクの精度をある程度保ったまま、クラウド管理者やサービス提供者が画像を知覚で判断することができ、かつ、ユーザのプライバシーも守ることができる。ユーザも原画を送信しなくてよいので、サービス利用への心理的障壁を低下させる効果があると考えられる。
【0009】
例えば、特許文献1の手法では、顔器官や顔向きを推定し、アバターで顔を置き換えることで、プライバシーを守り、且つ、運転に関する行動認識精度も保つことができる。同様に、非特許文献1の手法では、顔領域をGAN(敵対的生成ネットワーク)で本人とは異なる顔で作りかえることでプライバシーを守り、且つ、行動認識の精度も保つことができる。
【0010】
これら特許文献1や非特許文献1の手法は、顔等の画像の一部のプライバシー領域を置き換える方法であり、画像全体のプライバシーについては考慮されていない。例えば、着ている服や肌質、部屋の様子等、サービスに不要なものが消されておらず、全体のリアリティーを消したいといった要望には対応できない。
【0011】
全体のリアリティーを消す/低減することが可能な手法として、非特許文献2の手法では、動画からの行動認識を低解像画像から行う。低解像なので画像ファイルサイズを軽減できるといった利点は存在する。しかし、単なる低解像動画からは簡単な行動認識以外のタスクを行うのは難しく、適用可能なタスクが限定されてしまう。
【0012】
一方、非特許文献3では、ランダムノイズを大量に挿入したターゲット画像に近づくように、敵対的学習の枠組みを用いて原画像全体を変換するモデルを学習し生成している。敵対的学習の枠組みを用いることでタスクの精度を保ちつつ、ランダムノイズの入ったターゲット画像に近い画像変換モデルを学習できる。タスクとは例えば、20クラス程度までの画像認識、顔器官の認識等がある。
【0013】
同手法では、変換した画像全体からタスクの解析に不要な要素が隠されやすく、全体のリアリティーを消したいといったプライバシーに対する要望に対応しやすい。一方で、同手法ではタスクの精度の劣化も低く抑えることができる。
【先行技術文献】
【特許文献】
【0014】
【非特許文献】
【0015】
【文献】Ren, Zhongzheng, Yong Jae Lee, and Michael S. Ryoo. "Learning to anonymize faces for privacy preserving action detection." Proceedings of the European Conference on Computer Vision (ECCV). 2018.
【文献】Ryoo, Michael S., et al. "Privacy-preserving human activity recognition from extreme low resolution." Thirty-First AAAI Conference on Artificial Intelligence. 2017.
【文献】Kim, Tae-hoon, et al. "Training with the Invisibles: Obfuscating Images to Share Safely for Learning Visual Recognition Models." arXiv preprint arXiv:1901.00098 (2019).
【発明の概要】
【発明が解決しようとする課題】
【0016】
しかしながら、非特許文献3等の従来手法は、プライバシー保護を図ったうえで、タスク精度や目視確認等の際の扱いやすさも確保することに関して、改良の余地が残るものであった。すなわち、画像変換後の出力画像はRGB出力を前提としていたため、色情報や階調情報を十分に削減してプライバシー保護を十分に図ることができるかは不明であった。また、非特許文献3ではランダムなノイズが目ざわりであり、また、フレームごとに画像を変換して動画を生成すると目にちらつく問題があったため、扱いやすさに関する問題があった。ここで、プライバシー保護画像は、原画像の情報を削減した情報削減画像として得ることができるものであって、プライバシー保護以外の用途にも利用できるものであるが、従来手法では、タスク精度を確保して且つ扱いやすい情報削減画像を得ることができなかった。
【0017】
上記従来技術の課題に鑑み、本発明は、タスク精度を確保してプライバシー保護等も図ることができ、扱いやすい情報削減画像を得る画像変換処理の学習方法、当該方法に対応する画像変換装置及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0018】
上記目的を達成するため、本発明は学習方法であって、ニューラルネットワーク構造による画像変換処理のパラメータを学習する学習方法であって、訓練用画像を前記画像変換処理で変換した情報削減画像に対して評価される情報削減度合いに基づいて算出される誤差によるパラメータ更新と、前記情報削減画像を、所定タスクの認識処理を行うタスク処理で認識した結果に基づいて算出される誤差によるパラメータ更新と、を用いて前記画像変換処理のパラメータを学習し、前記画像変換処理によって前記情報削減画像は、前記訓練用画像の階調情報及び輪郭情報をそれぞれ抽出した階調情報チャンネル及び輪郭情報チャンネルを有するものとして変換され、前記情報削減度合いに基づいて算出される誤差によるパラメータ更新において、前記階調情報チャンネルの画像と前記輪郭情報チャンネルの画像とにおける情報削減度合いを評価することを特徴とする。
【0019】
また、本発明は、前記学習方法によって学習された画像変換処理のパラメータを用いて入力画像を変換することにより情報削減画像を得る画像変換装置であること、ニューラルネットワーク構造による画像変換処理を行うことで入力画像を変換して情報削減画像を得る画像変換装置であって、前記情報削減画像は、前記入力画像の階調情報及び輪郭情報をそれぞれ抽出した階調情報チャンネル及び輪郭情報チャンネルを有するものとして変換されるものであること、コンピュータに前記学習方法を実行させるプログラムであること、または、コンピュータを前記画像変換装置として機能させるプログラムであることを特徴とする。
【発明の効果】
【0020】
本発明によれば、階調情報チャンネル及び輪郭情報チャンネルを有するものとして原画像を変換した情報削減画像を得るように学習することで、タスク精度を確保してプライバシー保護等も図ることができ、扱いやすい情報削減画像を得るようにすることができる。
【図面の簡単な説明】
【0021】
【
図1】一実施形態に係るタスク実行装置及び学習装置の機能ブロック図である。
【
図2】画像変換部の変換NW部による処理を説明するための図である。
【
図3】変換NW部における処理の例を示す図である。
【
図4】タスク実行装置による処理例を3つの画像例として示す図である。
【
図5】一実施形態に係る学習装置による学習のフローチャートである。
【
図6】順伝播時の垂直ステップの階段関数と、これをなだらかにして一定勾配を有するようにした逆伝播時の傾斜ステップ状の階段関数との例を示す図である。
【
図8】本発明の実施形態によるプライバシー保護効果の実験例(質問及び回答)を示す図である。
【
図9】一般的なコンピュータにおけるハードウェア構成を示す図である。
【発明を実施するための形態】
【0022】
図1は、一実施形態に係るタスク実行装置及び学習装置の機能ブロック図である。図示するように、タスク実行装置10は、変換ネットワーク(NW)部11及び量子化部12を備える画像変換部1とタスク部13とを備える。タスク実行装置10は、変換NW部11及びタスク部13において所定構造の畳込ニューラルネットワークや多層パーセプトロン(以下、「畳込ニューラルネットワーク等」と呼ぶ)を含んで構成されており、予め学習されたパラメータを用いることにより、画像に対する画像変換や推論処理として画像に対するタスク実行を行うことができる。
【0023】
このタスク実行装置10のパラメータを学習するための構成が、学習によるパラメータ更新対象となるタスク実行装置10自身と、学習部20と、を備えて構成される学習装置30である。学習部20は、階調更新部21及び輪郭更新部22を備えるプライバシー用更新部2と、タスク用更新部23と、を備える。
【0024】
学習装置30が実行する学習により、画像変換部1中の変換NW部11のパラメータが逐次的に更新され、学習が完了した時点のパラメータで構成される画像変換部1が、タスク実行装置10に備わる画像変換部1として利用可能となる。このパラメータ更新では
図1中に線L11,L12として示されるように、「階調更新部21→量子化部12→変換NW部11」及び「輪郭更新部22→量子化部12→変換NW部11」の順で誤差逆伝播を行うことで変換NW部11の重みパラメータを更新する。ファインチューニングを行う場合は同様に、タスク実行装置10に備わるタスク部13のパラメータも逐次的に更新され、学習完了時点のパラメータで構成されるタスク部13が、タスク実行装置10に備わるタスク部13として利用可能となる。このパラメータ更新では
図1中に線L23として示されるように、「タスク用更新部23→タスク部13→量子化部12→変換NW部11」の順で誤差逆伝播を行うことでタスク部13及び変換NW部11の重みパラメータを更新する。(ファインチューニングを行わない場合、タスク部13では重みパラメータを固定して更新せず、変換NW部11の重みパラメータのみを更新する。)以下、学習装置30によってタスク実行装置10のパラメータは学習済みであるものとし、当該学習処理の詳細は後述することとして、推論処理を行うタスク実行装置10の処理を説明する。
【0025】
なお、
図1において、機能ブロック間のデータ授受を表す矢印のうち、実線矢印で描かれているものはタスク実行装置10による推論処理及び学習装置30による学習処理(学習の際の誤差順伝播)の両方に関連するものであり、一点鎖線矢印で描かれているものは学習装置30による学習処理(学習の際の誤差逆伝播)に関連するものである。
【0026】
なお、タスク実行装置10の運用上、次のようにしてもよい。すなわち、画像変換部1を、プライバシー保護対象となる画像を取得するユーザ側に配置し、プライバシー保護画像を用いたタスク実行を行うクラウド側にタスク部13を配置してよい。すなわち、画像変換部1とタスク部13とはネットワーク経由で通信して、プライバシー保護画像を画像変換部1からタスク部13へと送信するようにしてよい。あるいは、画像変換部1及びタスク部13の両方をクラウド側に配置し、プライバシー保護対象となる画像(原画像)を暗号化してクラウド側に送信したうえで画像変換部1において変換した後、この原画像を削除することで、クラウド側に保存しないようにしてもよい。このようにして、プライバシー保護を実現しつつ、タスク実施が可能となる。
【0027】
タスク実行装置10の画像変換部1は、畳込ニューラルネットワーク等で構成されるものであり、そのパラメータ(ニューラルネットワークの重みパラメータ等)を予め学習して求めておくことにより、原画像を変換してプライバシー保護画像を出力することが可能となる。タスク実行装置10のタスク部13も、画像に対して所定のタスク(物体認識や姿勢推定など)を実行する所定構造の畳込ニューラルネットワーク等で構成されるものであり、そのパラメータを予め学習して求めておくことにより、画像に対してタスク実行して結果を出力することが可能となる。タスク部13に関しては、タスク内容に応じた任意の既存の学習済みのニューラルネットワーク等を用いるようにしてよいが、この際、既存データセットで学習済みの重みパラメータを用いてもよいし、画像変換部1の出力するプライバシー保護画像に対するタスク実行精度を向上させるべく、再学習(ファインチューニング)を行った重みパラメータを用いるようにしてもよい。なお、画像変換部1のプライバシー保護度合い(逆の評価基準ではプライバシー漏洩度合いも意味する)を簡易に調整する機能として、量子化部12を利用することができる。
【0028】
以下さらに、主に推論時を対象として、各部の概要を説明する。
【0029】
画像変換部1は、画像の難読化器の役割を有し、変換対象となる画像(ユーザが提供する、プライバシー保護の対象となる画像)を変換して、画像全体に関するプライバシー保護が実現されたプライバシー保護画像を出力する。この際、画像変換部1では変換NW部11及び量子化部12においてこの順番で入力画像を処理することで、プライバシー保護画像を得る。
【0030】
図2は、画像変換部1の変換NW部11による処理を説明するための図である。画像変換部11は深層学習ネットワークとして構成することができ、
図2では当該ネットワーク構造の模式図として変換NW部11を、入力段Sin及び出力段Soutを有するものとして描いている。変換NW11では、通常のカラー画像(一般カラー画像)として構成される入力画像Pin=(Pa,Pb,Pc)(各画像Pa,Pb,Pcは例えばRGB画像として構成される入力画像PinにおけるR,G,Bの3つの各チャンネル画像)を入力段Sinにおいて読み込み、これにプライバシー保護を施したものとしての出力画像Pout=(P1,P2)を出力段Soutにおいて得て、この出力画像を量子化部12へと出力する。
【0031】
この出力画像Pout=(P1,P2)は第1チャンネルCH1の第1画像P1及び第2チャンネルCH2の第2画像P2の2チャンネルで構成される画像であり、例えば、第1画像P1は入力画像Pinから平坦化により階調情報を抽出した階調画像として構成されるものであり、第2画像P2は入力画像Pinからエッジ抽出により輪郭情報を抽出した輪郭画像として構成されるものであり、当該2チャンネルの出力画像Pout=(P1,P2)によって、入力画像Pinに対してプライバシー保護を施すことができる。(なお、後段側の量子化部12において出力画像Poutを量子化することで、さらにプライバシー保護を強化した画像を得ることができるが、変換NW部11のみにおいても一定のプライバシー保護が可能となる。)
【0032】
図3は、変換NW部11における処理の例として、これらの入力画像Pin、第1画像P1、第2画像P2、出力画像Poutの例を、入力画像Pinがバイクに乗っている人を撮影したカラー画像である場合に関して示す図である。入力画像Pinより第1画像P1において階調情報が抽出され、第2画像P2において輪郭情報が抽出されている様子を見て取ることができる。
【0033】
量子化部12は、変換NW部11から得た画像に対して量子化を施してさらにプライバシー保護を図った画像を、画像変換部1の出力としてタスク部13へと出力する。
図1にも示されるように、量子化部12での量子化数(4値、8値、16値等)はユーザあるいは管理者等によって設定することが可能である。
【0034】
なお、量子化部12の実装として、変換NW部11を構成するネットワークの最終層に対して適用する量子化関数としてもよいし、変換NW部11を構成するネットワークの最終層ではこのような量子化関数を適用せずに画像を出力して、この出力画像に対してさらに、量子化を行うようにしてもよい。
【0035】
なお、以上の変換NW部11及び量子化部12の詳細は、学習の説明の際に後述する。
【0036】
タスク部13は、画像変換部1より得られた当該プライバシー保護画像に対して所定のキイポイント抽出タスク(例えば姿勢推定や顔器官検出)や物体検出を実施して結果(例えば姿勢推定結果や顔器官検出結果、物体検出結果)を出力する。
【0037】
タスクについては、例えばトップダウンな姿勢推定については以下の非特許文献4に開示されるものを用いてよい。タスク内部では、正解データの骨格の座標からヒートマップを作成し、それに近づけるように深層ニューラルネットワークのモデルを学習している。前述の通りタスク部13では既存手法を用いることにより、姿勢推定に限らず、顔器官検出や物体検出等の任意のタスクをプライバシー保護画像に対して行い、その結果を出力することができる。
[非特許文献4] Chen, Yilun, et al. "Cascaded pyramid network for multi-person pose estimation." Proceedings of the IEEE conference on computer vision and pattern recognition. 2018.
【0038】
図4は、以上のタスク実行装置10による処理例を3つの画像例EX1~EX3として示す図である。原画像EX1(タスク実行装置10への入力画像)に対して、画像EX2は画像変換部11からの出力としてのプライバシー保護された画像(原画像EX1より得られるプライバシー保護画像)の例である。原画像EX1において人物がポーズを取っている状態(サッカーの練習中の状態)が撮影され、この原画像EX1ではカラーや詳細なグラデーションが残っているのに対し、これを変換したプライバシー保護画像EX2においては、RBGの3次元的な色情報が削除され、4値など少ない値で階調が平坦化されることで難読化され、画像の全体的な観点からのプライバシー保護が実現されている様子を見て取ることができる。階調のみではタスク精度を保ちにくいため、輪郭情報も残している。
【0039】
2チャンネルで構成されるプライバシー保護画像EX2の表示に際しては例えば、階調情報をRチャンネルに、輪郭情報をGチャンネルにして表示し、Bチャンネルは全ての画素に最大階調をダミーで入れて表示することで、通常のカラー画像を表示する方式を用いた表示が可能である。例EX3はプライバシー保護画像EX2から検出した骨格の1例であり、例EX1の原画像に対して抽出骨格を重畳したものとして示している。(なお、本発明者の実験によれば、非特許文献4の姿勢推定器を画像変換部1の学習時にチューニングし、データセットの画像を画像変換部1で変換して評価(タスク部13に入力)したところ、プライバシー保護画像から5%以下の精度劣化で骨格を抽出できている。)
【0040】
階調情報と輪郭情報については前述した通り変換NW部11において抽出され、その抽出の詳細については学習の説明において後述するが、これを用いることの技術的意義等は以下の通りである。
【0041】
すなわち、従来技術のプライバシー保護画像ではRGB等の通常の色空間利用を前提としていたが、本発明の実施形態においては、画像変換部1による出力を「R」「G」「B」の様な色空間のチャンネルとして学習するのではなく、「階調チャンネル(CH1)」「輪郭チャンネル(CH2)」の2チャンネルに分けて学習している。姿勢推定の様なキイポイント抽出タスクでは、解像度を保ったシャープな輪郭や、領域が分かる程度の階調が重要であることが本発明者らの事前実験で分かったため、これらの「階調」「輪郭」の2つのチャンネル設定としている。また、物体検出(人検出等)のタスクにもこの2つの要素は非常に有効であることが本発明者らの事前実験から分かっている。このように色を出力するチャンネルを無くすことにより、明示的に階調数を限るだけでなく、明示的に色情報が残らないプライバシー保護画像を生成できる。また、CH1とCH2を個別に制御すれば良いため、安定して似た入力の画像に対して似ている画像を出力しやすく、映像入力を扱う場合にフリッカーの少ない画像を生成しやすい。
【0042】
なお、
図4の例EX2でも説明した通り、通常の色情報(例えばRGBチャンネルやYCbCrチャンネルによる色情報)が消失した2チャンネルCH1,CH2で構成されるプライバシー保護画像に関して、CH1やCH2をそれぞれRやGチャンネル(またはYやCbなどの色チャンネル)に割り当てることで、通常の画像として出力や目視確認ができる。(使わないチャンネルBについては、全て同値、またはGチャンネルやRチャンネルと同じ情報を入れておけばよい。同様にCrチャンネルについても、全て同値、またはYチャンネルやCbチャンネルと同じ情報を入れておけばよい。)
【0043】
また、量子化部13の技術的意義等は次の通りである。
【0044】
すなわち、プライバシーの感じ方は人により異なるため、プライバシー保護画像の保護の度合いを簡単に調整できることが望ましい。運用やメモリ、処理速度の観点から、画像変換器(本発明の実施形態では画像変換部1)のモデルサイズを小さく抑えたり、プライバシーレベルに応じて複数のモデルを用意しなくて良いことも大切である。しかし、従来手法では、タスク精度を保ったプライバシーの調整を簡単には行えなかった。(もし行いたい場合には、別途プライバシーレベルの異なる画像変換器を学習させ、複数の画像変換器を準備する必要があると考えられる。)
【0045】
本発明の実施形態では、出力した画像または画像変換部1の最終層に対して適用する量子化関数を入れ替えることで調整可能となる。例えば、画像変換部1から出力された画像に対し、4値化のための量子化関数を適用すればプライバシー重視、8値化や16値化のための量子化関数を適用すれば精度重視とすることができ、複数の画像変換器モデルを持つことなく、個別ユーザのプライバシーの感じ方に応じてユーザプライバシー保護度合いを簡単に切り替えることができる。複数の量子化関数(4値、8値、16値等)を切り替えて画像変換部1を学習させておくことで、単純なN値化画像等をCH1に用いた場合と比較して、タスク精度を保つことができる。
【0046】
図5は、一実施形態に係る学習装置30による学習のフローチャートである。
図5の実施形態によれば、
図4に例EX2の画像として例示したように画像変換部1による変換でプライバシー保護に優れており、且つ、タスク部13によるタスク実行精度も確保された画像が得られるように、画像変換部1のパラメータを学習して得ることができる。この際、ファインチューニングによりタスク部13のパラメータを学習することも可能である。以下、
図5の各ステップを説明する。
【0047】
図5のフローを開始するにあたり、学習対象となる画像変換部1(変換NW部11)のパラメータには初期値をランダム値等として設定しておく。タスク部13に対してファインチューニングを行う場合には、既存モデルで学習済みのパラメータをタスク部13のパラメータの初期値として設定しておく。(ファインチューニングを行わない場合には、タスク部13のパラメータはこの初期値のままで固定しておけばよい。)
【0048】
図5のフローが開始されるとステップS11では、プライバシー保護接続の構成の学習装置30において変換NW部11の学習を行い、そのパラメータを更新してから、ステップS12へと進む。プライバシー保護接続の構成とは、学習装置30において画像変換部1及びプライバシー用更新部2のみを利用する構成として定義され、ステップS11では当該構成において順伝播及び逆伝播の計算を行うことでパラメータを更新する。すなわち、ステップS11では訓練用画像を用いて「変換NW部11→量子化部12→プライバシー用更新部2」の順に順伝播の計算を行ってプライバシー用更新部2において誤差を求め、この誤差を「量子化部12(後述する逆量子化)→変換NW部11」の順に逆伝播することで線L11,L12に示されるように変換NW部11のパラメータを更新する。
【0049】
なお、誤差とは正解等からの乖離が大きいほど値が大きくなる損失(コスト)であるが、「誤差」の用語を用いることとする。
【0050】
ステップS11にて順伝播の際、画像変換部1では当該時点で設定されているパラメータを用いて訓練用画像(ミニバッチを構成する各画像)を変換してプライバシー保護画像を得て、プライバシー用更新部2へと出力する。この際、線L1,L2に示されるように、プライバシー保護画像のうち階調情報が抽出された第1チャンネルCH1の画像を階調更新部21へと出力し、プライバシー保護画像のうち輪郭情報が抽出された第2チャンネルCH2の画像を輪郭更新部22へと出力する。プライバシー用更新部2では、当該得られたプライバシー保護画像について、プライバシー保護の性能を評価するものとして誤差を階調更新部21及び輪郭更新部22においてそれぞれ計算する。
【0051】
ここで、プライバシー用更新部2での学習方法の詳細に関しては後述するが、種々の実施形態によって学習することが可能である。例えば、線L10として示されるように、画像変換部1でプライバシー保護画像へと変換する対象となった原画像である訓練用画像を加工した画像を利用して学習する実施形態が可能である。
【0052】
このとき、第1の方法では、プライバシーを保護できていない度合い(プライバシー漏洩度合い)が高いほど誤差値が高くなる単純な基準での誤差関数を設定して、階調更新部21及び輪郭更新部22の各々において計算する。
【0053】
また、第2の方法では、階調更新部21及び輪郭更新部22の各々においてGAN(敵対的生成ネットワーク)のフレームワークを用いてプライバシー画像制御を行うことができる。GANでは一般的に、学習時は生成器と識別器を敵対的に学習させ、生成器の出力(フェイク画像)をターゲット画像(リアル画像)に近づける。識別器は、生成器からの出力をフェイク画像、ターゲット画像をリアル画像とし、その真偽を学習する。推論(画像生成)時には、識別器は必要なく、生成器からターゲット画像に似た画風の画像を出力できる。このGANのフレームワークをプライバシー用更新部2に適用し、訓練用画像を加工したターゲット画像に近づくように画像変換部1(変換NW部11)を学習する。そのためには、訓練用画像を加工した画像をターゲット画像として、画像変換部1を生成器とし、敵対的に画像変換部1(生成器)と識別器を学習すればよい。なお、画像変換部1(生成器)は1つの生成器として共有し、識別器に関しては、階調更新部21及び輪郭更新部22の各々において設けるようにすればよい。(なお、当該第2の方法を用いる場合において階調更新部21及び輪郭更新部22の各々に当該設ける識別器(及びターゲット画像を得るための加工器)の細部構成は、
図1では描くのを省略しているが、階調更新部21及び輪郭更新部22の各々が識別器及び加工器を有するものとして、GANのフレームワークに即した学習を行うことが可能である。)
【0054】
識別器は画像変換部1からの出力をフェイク、ターゲット画像をリアルとして学習をする。利用時には、画像変換部11の出力をターゲット画像に近づけることが可能である。ターゲット画像をプライバシーが保護されやすく精度も保ちやすい画像特徴をもつようにあらかじめ加工しておくことで、後述するタスク精度を維持しようとしてもプライバシーを保ちやすいプライバシー画像制御を行える。原画像に対する加工によりターゲット画像を得ることに関しては後述する。
【0055】
ステップS11にて逆伝播の際は、上記ミニバッチを構成する各訓練用画像について計算した誤差を用いて、プライバシー用更新部2(後述するように、階調更新部21及び輪郭更新部22の両方それぞれ)が画像変換部1に対して誤差逆伝播の計算を行うことで、線L11,L12に示されるように画像変換部1のパラメータを更新する。逆伝播の計算には、任意の既存手法として確率的勾配降下法等のオプティマイザーを用いればよく、画像変換部1を構成するネットワーク内を出力側から入力側へと逆方向に辿る計算を行えばよい。
【0056】
ステップS11では以上のようにしてプライバシー用更新部2において、その詳細を後述する誤差を用いて逆伝播により画像変換部11のパラメータを更新することで、画像変換部1による変換で得られる画像がプライバシー保護性能に関してより優れたものとなることが期待される。
【0057】
ステップS12では、タスク接続の構成の学習装置30において画像変換部1の学習を行い、そのパラメータを更新してから、ステップS13へと進む。なお、タスク部13のファインチューニングを行う場合、ステップS12では画像変換部1の学習と共にタスク部13の学習も行い、タスク部13のパラメータも更新したうえで、ステップS13へと進む。タスク接続の構成とは、学習装置30において画像変換部1、タスク部13及びタスク用更新部23のみを利用する構成として定義され、ステップS12では当該構成において順伝播及び逆伝播の計算を行うことで、画像変換部1の変換NW部11(及びファインチューニングを行う場合はさらにタスク部13)の重みパラメータを更新する。すなわち、ステップS12では訓練用画像を用いて「変換NW部11→量子化部12→タスク部13→タスク用更新部23」の順に順伝播の計算を行ってタスク用更新部23において誤差を求め、「タスク部13→量子化部12(後述する逆量子化)→変換NW部12」の順でこの誤差を逆伝播することで、線L21(及び線L23)に示されるように画像変換部11(及びタスク部13)の重みパラメータを更新する。
【0058】
ステップS12にて順伝播の際、画像変換部1では当該時点で設定されている重みを含めた各種パラメータを用いて訓練用画像(ミニバッチを構成する各画像)を変換してプライバシー保護画像を得て、タスク部13へと出力する。タスク部13では、当該得られたプライバシー保護画像について、当該時点で設定されているパラメータ(ファインチューニングを行わない場合は固定パラメータ)を用いて、認識等のタスクを実行し、その結果をタスク用更新部23へと出力する。タスク用更新部23では、当該得られたプライバシー保護画像に対する認識等のタスクの結果について、訓練用画像に対して予め付与されているタスクについての正解と比較し、得られた結果が正解に近いほど値が小さくなるものとして、誤差を計算する。
【0059】
ステップS12にて逆伝播の際は、上記ミニバッチを構成する各訓練用画像について計算した誤差を用いて、タスク用更新部23が画像変換部1及びタスク部13に対して誤差逆伝播の計算を行うことで、線L23に示されるように画像変換部1の変換NW部11(及びタスク部13)の重みパラメータを更新する。逆伝播の計算には、ステップS11と同様に任意の既存手法としてオプティマイザーを用いればよく、画像変換部1及びタスク部13の直列接続(画像変換部1→タスク部13)で構成されるネットワーク内を出力側から入力側へと逆方向(タスク部13→画像変換部1の方向)に辿る計算を行えばよい。
【0060】
ステップS12では以上のようにしてタスク用更新部23において、逆伝播により画像変換部1(変換NW部11)のパラメータを更新することで、画像変換部1による変換で得られる画像がタスク部13による認識等のタスクの精度が向上するものとなることが期待される。ファインチューニングを行う場合はさらに、タスク部13のパラメータも更新することで、画像変換部1による変換で得られる画像に対するタスク部13による認識等の精度も向上することが期待される。
【0061】
ステップS13では学習が収束したか否かを判定し、収束していればステップS14へと進み、当該時点での画像変換部1の変換NW部11(及びタスク部13)のパラメータを最終的な学習結果として得たうえで
図5のフローを終了し、収束していなければステップS11に戻ることにより、以上説明した通りの学習(ステップS11及びS12)がさらに継続して実施されることとなる。ステップS13での収束判定には例えば、訓練用画像とは別途のテスト用画像を用いることで、ステップS11と同様にプライバシー用更新部2が計算する誤差及びステップS12と同様にタスク用更新部23が計算する誤差を求めることで、学習モデルとしてのパラメータ精度を評価し、当該精度の向上(向上の履歴)が収束したか否かによって判定すればよい。単純に所定のエポック数等を収束条件としてもよい。
【0062】
以上、
図5のフローによれば、ステップS11において、画像変換部1(変換NW部11)による変換で得られるプライバシー保護画像のプライバシー保護性能が向上するように、プライバシーに関する誤差を最小化する方向やGANの学習が進む方向へと重みパラメータを更新し、ステップS12において、画像変換部1(変換NW部11)による変換で得られるプライバシー保護画像に対するタスク精度が向上するように、タスクに関する誤差を最小化する方向へと画像変換部1の重みパラメータを更新することで、プライバシー保護に関する誤差やGANの誤差とタスク精度に関する誤差とについて交互に誤差を最小化(最適化)する敵対的学習の枠組みにより、画像変換部1の変換NW部11(及びタスク部13)のパラメータを学習することができる。タスク誤差を最小化する際には、タスク部13の重みパラメータも更新しても良い。
図5のフローにおいて、ステップS11とS12とはその位置を入れ替えてもよい。また、
図5のフローの繰り返しの各回において例えば、ステップS11の学習及び更新を1回行い、ステップS12の学習及び更新を2回行うものとして設定するといったように、プライバシー保護接続とタスク接続とで学習の割合を変えてもよい。
【0063】
以下、詳細を後述するとしたステップS11でのプライバシー用更新部2によるプライバシー保護画像に対する誤差計算の各実施形態に関して説明するが、要約すると以下の(1)、(2)の通りである。
【0064】
(1)CH1における階調削減のための画像変換器学習について
原画像はカラーでもグレイスケール画像でも良い。ここでは、カラー画像を256階調を持つようにグレイスケール化し、そのグレイスケール画像と4階調程度の画像変換器の出力画像(CH1チャンネル)をMSE最小化やGAN等で比較して学習させたとする。そのようにすると、画像変換器の出力画像は、グレイスケール画像の階調を疑似的に保持しようとハーフトーン画像のような粒状ノイズが多くなる画像となってしまう。つまり、平坦なプライバシー画像は生成されにくい。そこで、CH1の学習で画像変換器出力画像と比較する画像は、256階調の様な階調の多いグレイスケール画像ではなく、グレイスケール画像を単純N値化等して平坦化した画像を用いる。N値は出力したい画像の2倍程度の階調(4階調出力の場合は8階調)が望ましい。このようにすることで、ハーフトーン画像のような粒状感を軽減させることができる。
【0065】
(2)CH2における輪郭表現のための画像変換器学習について
これは、原画から輪郭画像を生成し、その画像に近づけるように画像変換器を学習する。輪郭画像は通常のフィルタ処理(DoG, xDog,ラプラシアン,ソベル)等で良い。画像変換器の出力画像(CH2チャンネル)をGAN等用いて輪郭画像に近づけるように学習する。CH1のみの時より輪郭が出ることでキイポイント抽出精度が上がるが、階調に関するグラデーションやリアルさのプライバシーが増加することを防げると考えられる。
【0066】
以下、各実施形態の詳細を説明する。いずれの実施形態も、
図4の例EX2の画像に示したように、変換結果として得られるプライバシー保護画像は変換前の原画像(例EX1)に対して画素分布が平坦化されつつ輪郭が残った状態として得られることで、画像全体でのグラデーション等に対するプライバシー保護が実現されたものとなる。
【0067】
本実施形態では、
図1に線L1,L2,L10として示される流れのように、画像変換部1で得たプライバシー保護画像(各
チャンネルCH1,CH2の画像)に加えて、変換前の訓練用画像(原画像)も利用して誤差計算する。具体的な処理を示す。
【0068】
本実施形態の前提として、量子化を考慮した学習(Quantization Aware Training、以後、量子化考慮学習と呼ぶ。)を少なくとも画像変換部1の最終層に適用するので、まずこの量子化考慮学習に関して説明する。量子化考慮学習の場合、画像変換部1を構成するネットワークの出力層の値(すなわち、変換画像の各画素値)を得るための活性化関数として、または最終層へ適用されている活性化関数への追加の量子化関数として、この変換画像を構成する階調数(原画像よりも低い所定の階調数)の個数分の階段関数を用いる、という制約を設ける。すなわち、画像変換部1を構成するネットワークの最後に位置する量子化関数として、階調数分の階段関数を用いることにより、自ずと当該原画像よりも低い階調数で量子化して構成される、平坦化されたプライバシー保護画像を得ることが可能となる。
【0069】
なお、既に説明している通り、量子化関数の適用(学習時及び推論時の両方)は
図1にて機能ブロックとして量子化部12として示される。
【0070】
ただし、順伝播の計算時では出力画像の各画素値を所定階調数内のいずれかの値に量子化して割り当てるために垂直なステップ状に立ち上がる階段関数を用いるが、逆伝播の計算時には微分時の勾配が0となってしまうことを防止するために、例えばSTE(straight through estimator)の手法を用いて、階段の立ち上がりを垂直なステップ状から一定勾配のなだらかな傾斜状へと変更した関数を利用する。
【0071】
図6に、順伝播時の垂直ステップの階段関数と、これをなだらかにして0以外の一定勾配を有するようにした(すなわち、微分の勾配が消失しないように、階段関数の増加挙動を模したものとしての)逆伝播時の傾斜ステップ状の階段関数との例を示す。グラフG2F及びG2Bはそれぞれ、2段の垂直ステップの階段関数及び対応する傾斜ステップ状の階段関数を示すものである。グラフG2Fを用いる場合、画像変換部1では2値画像を出力することとなる。逆伝播時に用いる関数は、傾斜ステップ状の階段関数であるグラフG2Bに示すものに代えてSTE(Straight through estimator)によりグラフG2B2のように直線でも良い。グラフG3F及びG3Bはそれぞれ、3段の垂直ステップの階段関数及び対応する傾斜ステップ状の階段関数を示すものである。グラフG3Fを用いる場合、画像変換部1では3値画像を出力することとなる。逆伝播時に用いる関数は、傾斜ステップ状の階段関数であるグラフG3Bに示すものに代えてSTE(Straight through estimator)によりグラフG3B2のように直線でも良い。
【0072】
階段関数によって設定される画像変換部1の出力する階調数は、以下のような考察に基づいて例えば2階調以上64階調以下に設定するとよい。(2階調の場合は白黒2値となる)
【0073】
まず、量子化考慮学習を利用しないとすると、通常では、重みや活性化関数に32ビットの浮動小数点を用いて計算することが多いが、RGBそれぞれ32ビットで出力された画素値のプライバシー画像を送信するのは、情報量の多さや一般的な画像フォーマットのビット深度が8ビット(256階調)であることから望ましくないと考えられる。また、それぞれのチャンネルで32ビットに出力後に、一般的な8ビットに256階調に量子化することも考えられるが、事後量子化では精度が低くなりやすい。よって、平坦化を行うプライバシー保護画像の生成においては、逆伝播でのSTEを用いた学習を用いることで、出力層が256階調以下となるように設定するとよい。また、人の視覚特性により64階調以上は連続階調として認識できるといわれている。平坦化されたプライバシー画像の画素値の一部のレンジが広くなるようにトーンカーブ補正すると、補正前には人が知覚できなかったグラデーションが表れてしまう恐れがある。それを防ぐために、64階調以下とすることがさらに望ましい。また、2階調である程度、前景と背景はわかるため、最低2階調あればよい。また、4色定理で知られるように、隣り合う領域を塗分けるのに4色あれば十分と言われることから、階調数は4値程度あれば平坦画風を表現しやすいと考えられる。まとめると、平坦化画像は2階調以上64階調以下とし、4階調程度が最も望ましいと考えられる。平坦化ではこのように少ない階調数を用いるため、事後量子化では非常に精度が低くなってしまいやすいが、逆伝播でSTEを用いることで、それを阻止することができる。
【0074】
なお、量子化考慮学習については、プライバシー保護画像を出力する出力層だけでなく、画像変換部1を構成するネットワーク全体で行う(すなわち、活性化関数を全て、所定のビット深度数に一致する階段数の階段関数に置き換えたネットワークを利用する)ようにしてもよい。(この場合、
図1では、変換NW部11の内部構成として量子化部12が含まれるものとして読み替えるようにすればよい。)例えば8ビット整数(INT8)等を用いて画像変換部1を学習し、最終層の活性化関数または追加の量子化関数で4値化する等しても良い。この場合、画像変換部1のモデルの容量が小さくなり、計算量も削減することができる。モバイル機器でもリアルタイム動作しやすい等の利点がある。
【0075】
なお、タスク部13側の学習(すなわち、ステップS12の学習でファインチューニングによりタスク部13も学習する場合)については、量子化考慮学習を行う(すなわち、タスク部13の活性化関数にも階段関数を設定する)ようにしてもよいし、量子化考慮学習は行わないようにしてもよい。ここでは量子化考慮学習の効果は、一般的な効果と同様で、単純に32ビット小数で学習したモデルを8ビットモデルに変換する際などに精度が低くなりにくいことである。
【0076】
ここで、画像変換部1において出力層での量子化を考慮した学習において、階調数を少なくする(例えば前述のように64階調以下とする)ことの意味について述べる。一般的には、出力層から出力される各ノードの出力値(画素値)は、256値で表現される。平坦化によるプライバシー保護を考慮したとき、単純には、この出力値の階調数を少なくすることでも実現できる。例えば、出力値をグレイスケール2階調とすると、階調数が少ないため、平坦化されやすい。しかし、タスク精度はかなり低くなりやすい。一方、出力値を4階調、8階調と増やすにつれて、プライバシーは漏洩しやすくなるが、タスク精度も保ちやすい特徴がある。すなわち、プライバシー保護とタスク精度とはトレードオフの関係にある。
【0077】
以下、詳細を後述するとしていた、画像変換部1での2つのチャンネルCH1,CH2を利用した処理に関して説明する。
【0078】
画像変換部1は前述したとおり、画像を変換するDNNネットワーク等で構成できる変換NW部11とその後適用される量子化部12からなるものとして構成できる。プライバシー用更新部2は、色を表現できるRGBの様な3つの出力チャンネルではなく、階調表現用のチャンネル(CH1)と輪郭表現用のチャンネル(CH2)を持ち、当該各チャンネルの処理を階調更新部21及び輪郭更新部22が担う。ここで、色チャンネルを持たないことで明示的に色情報を除去している。顔器官検出や姿勢推定などのキイポイント抽出では、多くの階調や色よりも、最低限の階調や解像度を落とさない輪郭情報が重視されやすい項目であるため、この2チャンネルとしている。人を含めた物体検出にも有効である。
【0079】
チャンネルCH1については通常のRチャンネルを、チャンネルCH2については通常のGチャンネルをあて、Bチャンネルは全ての画素で最大値や、RやGと同値とするなどすれば、通常の画像フォーマットで画像変換部1が出力した変換画像を人が視認することができる。YCbCr等の色空間であれば、CH1を輝度Yチャンネル、CH2をCbやCrにあてるなどしても良い。あるいは、このように通常の色空間を割り当てたうえでさらに、グレイスケール化して1チャンネルとしてもよい。
【0080】
画像変換部1では、階調表現用チャンネルCH1(階調チャンネルとも呼ぶ)と輪郭表現用チャンネルCH2(輪郭チャンネルとも呼ぶ)を出力する。階調更新部21はこのうち階調表現用チャンネルCH1の画像が入力され、変換画像のCH1画像とのみ接続して画像変換部1を学習する。輪郭更新部22はこのうちの輪郭表現用チャンネルCH2の画像が入力され、変換画像のCH2画像とのみ接続して画像変換部1を学習する。前述した
図5のステップS11において、階調更新部21と輪郭更新部22はそれぞれ1回ずつ、または、割合を決めて、画像変換部1に誤差逆伝播を行い学習する。量子化関数は最後に追加適用するのが望ましいが、その場合、CH1、CH2共通の量子化関数で量子化しても、別の量子化関数で量子化してもよい。たとえば、CH1,CH2ともに4値化しても良いし、異なる量子化を行ってもよい。
【0081】
階調更新部21の役割について述べる。ここでは、変換画像の階調チャンネルCH1画像を正解としての参考平坦化画像Tyに近づけるように学習するため、以下の第1又は第2の方法を用いることができる。
【0082】
第1の方法は、画像変換部1が出力した変換画像(CH1)と、この変換画像の原画像である訓練用画像と、を読み込み、加工器により訓練用画像から参考平坦化画像Tyを生成したうえで、参考平坦化画像Tyと変換画像との画像の相違を定量化したものとして例えばMSEを最小化するように、誤差を逆伝搬して画像変換部1を学習させ、そのパラメータを更新する。
【0083】
第2の方法は、画像変換部1が出力した変換画像(CH1)と、この変換画像の原画像である訓練用画像と、を読み込み、加工器により訓練用画像から参考平坦化画像Tyを生成したうえで、参考平坦化画像Ty(ターゲット画像)をリアル画像、変換画像をフェイク画像としてGANのフレームワークにおける識別器と生成器(画像変換部1)を学習し、そのパラメータを更新する。(前述の通り、加工器及び識別器は階調更新部21に備わるものとして、階調更新部21において識別器を学習するようにすればよい。)
【0084】
加工器に関して、第1の方法、第2の方法ともに、参考平坦化画像Tyの階調数が大きすぎると、変換画像の階調チャンネルCH1が平坦化されにくく疑似中間調表現(ハーフトーン画像)の様なノイズが多くなりやすいため、少な目の階調数で単純にN値化して生成する等して平坦な画像を生成するとよい。一方で、N値をCH1が出力する階調数と同じやそれ未満とすると、階調の制約が強くなるためか、平坦画像が壊れ領域が分かりにくい、タスク精度を維持しにくい等の問題が発生する。よって、N値は、CH1が出力する階調の2倍程度が望ましく、3倍までに抑えるとよい。CH1が出力する階調数が4であれば、参考平坦化画像Tyは単純8値化する等で生成する。このとき、参考平坦化画像は8値であるが、その階調を4値で疑似的に表現させるためにあるのではなく、CH1とCH2で異なる画風を出力するため、また、CH1で平坦化した画風を表現するために用いている。
【0085】
ここで、参考平坦化画像Tyは、既存手法の領域分割を適用して領域を識別したうえで、CH1が出力する階調数と同じ程度の数で領域を塗分けた平坦な画像として生成してもよい。またTyは動的に閾値を決める判別分析法等を用いてN値画像を生成しても良い。(ただし、単純N値画像と比較して変換画像を動画化した場合のフリッカーは起きやすくなる。)また、CH1は、計算量の観点から、第1の方法で問題はない。
【0086】
以上のような各方法により、画像変換部1による変換画像の階調チャンネルCH1が、参考平坦化画像Tyに類似する平坦なものとなるよう学習が進行し、変換画像においてプライバシー保護を実現することができる。
【0087】
次いで、輪郭更新部22の役割について述べる。ここでは、変換画像の輪郭チャンネルCH2画像を正解としての参考輪郭画像Teに近づけるように学習するため、以下の第1又は第2の方法を用いることができる。
【0088】
第1の方法は、画像変換部1が出力した変換画像(CH2)と、この変換画像の原画像である訓練用画像と、を読み込み、加工器により訓練用画像から参考輪郭画像Teを生成したうえで、参考輪郭画像Teと変換画像との画像の相違を定量化したものとして例えばMSEを最小化するように、誤差を逆伝搬して画像変換部1を学習させ、そのパラメータを更新する。
【0089】
第2の方法は、画像変換部1が出力した変換画像(CH2)と、この変換画像の原画像である訓練用画像と、を読み込み、加工器により訓練用画像から参考輪郭画像Teを生成したうえで、参考輪郭画像Te(ターゲット画像)をリアル画像、変換画像をフェイク画像としてGANのフレームワークにおける識別器と生成器(画像変換部1)を学習し、そのパラメータを更新する。(前述の通り、加工器及び識別器は輪郭更新部22に備わるものとして、輪郭更新部22において識別器を学習するようにすればよい。)
【0090】
加工器に関して、第1の方法、第2の方法ともに、参考輪郭画像Teは通常の輪郭抽出フィルタで作成することができる。例えば、ラプラシアン、ソベル、Canny、DoG(Difference of Gaussian)、拡張DoGフィルタなどがある。通常エッジ情報は0を中心に正数も負数も含むため、通常の視覚化と同じ方法で視覚化するとよい。例えば、値の絶対値をとり、線ではなく背景が白になるように(反転)処理しておくとよい。または、0が中間階調にくるように画像がとりえる値の範囲(0~1や0から255など)に正規化してもよい。さらに、減色しておいてもよい。
【0091】
以上のような各方法により、画像変換部1による変換画像の輪郭チャンネルCH2が、参考輪郭画像Teに類似するものとなるよう学習が進行し、変換画像において重要情報のみを残したプライバシー保護を実現することができる。
【0092】
なお、輪郭画像は情報が少なく、第1の方法では画像変換部1のCH2で必ずしも輪郭を表現できない場合がありうるが、この場合は、第2の方法を用いるようにすればよい。
【0093】
以上のように、平坦化・輪郭抽出した参考画像Ty,Teの画風(平坦・輪郭)に近づけるなどでプライバシー画像用更新部2において誤差を計算し、
図5のフローに沿って学習することで、画像変換部1による変換画像を平坦化によるプライバシー保護が実現され、且つ、タスク精度を保つものとすることができる。さらに、以下の例1,2の処理を行ってもよい。
【0094】
(例1) なお、タスク部13については、訓練用画像を学習済みの画像変換部1で変換した後、スクラッチからの再学習や、追加での学習をさせても良い。例えば、タスクが間違えやすい教師付き訓練用画像を追加で学習するなどにより、タスク精度を高められる。その際、画像変換部1からの出力、特にその階調チャンネルについては、学習の態様によっては粒状ノイズが生じていることもあるので、ノイズ除去処理をした後に、タスク部13を学習させても良い。ノイズ除去処理は例えば、膨張収縮処理があり、画像変換部1からの出力として量子化部12で量子化された状態においてノイズ除去すればよい。これによりさらにプライバシー保護度を高めることができる。
【0095】
(例2) 一方、変換画像を、学習時に用いたタスクとは別のタスクへ適用しても良い。例えば、タスク部13ははじめ、体の骨格推定が割り当てられ、画像変換部1を学習させるケースを考える。画像変換部1の学習がある程度収束すると、画像変換部1の出力画像は、不要な情報(色・詳細なグラデーション)は削るという条件の中、体の骨格推定に重要な情報(輪郭・領域分割がわかる程度の階調)はタスク精度を可能な限り下げない状態で残る状態となる。この状態は、実は、骨格以外の物体検出タスクなどでも同じとなりやすい。よって、物体検出用訓練用画像を、骨格推定タスクと接続して学習済みの画像変換器で変換した後、物体検出器を学習させると、物体検出タスクもプライバシー保護された画像に対してそれなりの精度を保つことができる。この場合の物体検出器のような別タスクの学習は、学習済みモデルからのチューニングでもよいし、スクラッチからの学習でも良い。
【0096】
すなわち、以下の手順1,2のような学習を行うようにしてもよい。この際、
図1の構成の学習装置30において、手順1ではタスク部13が第1タスクに関するタスク部13-1であるものとし、手順2ではタスク部13が第2タスクに関するタスク部13-2であるものとして、(手順1、2で利用するタスク部13を互いに異なるタスク部13-1,13-2に置き換えることで)学習を行うことができる。
<手順1>
図5のフローに沿って、画像変換部1及び第1のタスク(例えば骨格推定タスク)に関するタスク部13-1のパラメータを学習する。
<手順2> 手順1で学習済みの固定されたパラメータで構成される画像変換部1を用いて、第1のタスクとは異なる第2のタスク(例えば物体検出タスク)に関するタスク部13-2のパラメータを学習する。当該学習は、
図5のフローチャートからステップS11を省略したフローに沿って、ステップS12ではタスク部13-2の学習のみ行うものとすればよい。
【0097】
以上の例1や例2、
図5のステップS12において学習時にタスクも更新して学習したモデルのように、変換画像に対して精度をあげるように学習されたタスクのモデルは、転移学習する場合でも、同様の画像変換部1を用いて訓練用画像を変換してから学習を行うと良い。このとき、入力枚数を少なくしても、タスクの精度を向上させやすい。これは、学習済みの画像変換部1は、学習時に不要な情報を削減しやすいためだと考えられる。
【0098】
別タスクをスクラッチから学習する場合の訓練用画像は、変換しないフルカラーRGB画像を用いた場合より、入力枚数を少なくしても、タスクの精度を向上させやすい。これは、学習済みの画像変換部1は、学習時(及び推論時)に不要な情報を削減しやすいためだと考えられる。つまり、別タスクのスクラッチからの学習においても、学習済みの画像変換部1を用いることで、様々な背景で訓練用画像を撮影するといった大量の訓練用画像取得の手間も省くことができる。
【0099】
すなわち、画像変換部1において変換画像として得られるプライバシー保護画像は、その好適な用途の一例としてプライバシー保護画像と呼べるものであるが、より一般には、各種のタスクに対する精度を保ったうえで原画像から情報削減された情報削減画像と呼べるものである。(以下でもこのことを前提として、一般には情報削減画像である画像変換部1の出力画像を、用途例による呼称としてプライバシー保護画像と呼ぶこととする。)
【0100】
同様に、学習の際にプライバシー用更新部2で評価した誤差は、プライバシー保護度合いに基づく誤差であったが、より一般には情報削減度合いに基づく誤差と呼ぶことも可能なものである。また同様に、ユーザ設定等を受けて量子化部12で設定される量子化関数も、プライバシー保護度合いを調整するものであるが、より一般には、情報削減度合いを調整するものと呼ぶことも可能である。
【0101】
以下では、量子化部12の詳細に関して説明する。
【0102】
最終的に適用する量子化関数は、ユーザの求めるプライバシーレベルに応じて切り替えることができる。例えば、2値化用~32値化用の階段状の量子化関数を用意しておき、64値以内で出力された変換画像を、ユーザが選んだ量子化レベルで量子化することも可能である。量子化の粒度が高いほど、プライバシーは漏洩するが、タスク精度は高くなりやすい。
【0103】
量子化の粒度は異なっていても、誤差逆伝播の時に用いる関数が(STEの結果)同じであれば、階段関数を切り替えて学習しなくとも、学習していない階段関数の切り替えに対してもそれなりの精度は保ちやすいが、量子化粒度が変わっても、タスク精度を更に保てるようにするために、階調更新部21や輪郭更新部22による画像変換部の学習時で、離れた値の量子化関数を交互に用いて学習するとさらに良い。
【0104】
図7は、上記のように用いる各種の量子化関数等の例を示す図であり、以下において適宜、
図7の例を参照する。
図7の各例はいずれも、横軸(x軸)を量子化前の値(0≦x≦1)、縦軸(y軸)を量子化後の値(0≦y≦1)として、量子化関数やそのベース関数(量子化関数によって模擬される対象としての連続関数)を示している。なお、丸括弧()で囲まれた2つの例EXa0,EXd0がベース関数であり、その他の例は量子化関数となっている。例EXa0のベース関数はy=xの直線増加関数であり、これを均一に模擬した4値、8値の量子化関数が例EXa,EXbであり、不均一に模擬した8値、6値の量子化関数が例EXc, EXeである。また、例EXd0のベース関数はシグモイド曲線状の増加関数であり、これを模擬した4値の量子化関数が例EXdである。
【0105】
例えば、偶数エポックではCH1、CH2を4値化の量子化関数で学習させ、奇数エポックでは8(~32)値化の階段関数で学習させる等である。4値と8値で交互学習する場合の最も単純なCH1の学習方法(MSE最小化利用)は、偶数エポックでは単純8値化でTyを生成し、画像変換の最後に適用する階段関数に例EXa(4値の直線型)、奇数エポックでは単純16値化でTyを生成し、画像変換の最後に適用する階段関数にEXb(8値の直線型)を適用して学習させることである。双方とも、例EXa0ベース関数(直線型;y(量子化後の値)=x(量子化前の値))を誤差逆伝播時には用いて勾配が0になることを避け、逆伝播時の関数が同じとなるようにすると良い。(なお、切り替え学習の場合には、逆伝播時に
図6のG2BやG3Bの様な傾斜ステップ状の関数を用いることは望ましくない。)
【0106】
上記の階段関数切り替え学習は例EXa,EXb(4値、8値の直線型)のように量子化前の値も量子化後の階調値も等間隔であることが前提であったが、例EXc(8値の不均一直線型)の様に等間隔でない階段関数も使いうる。
【0107】
Tyを例EXc(8値の不均一直線型)のように量子化前(入力)の中間調は粗く量子化して生成すると、中間階調のプライバシーを保ちやすい。例EXc(8値の不均一直線型)は例EXa(4値の直線型)と同様に、逆伝播時に用いる関数として例EXa0(直線増加関数)を用いてもよいため、不整合も起こりにくい。例えば、これら例EXa,EXc(4値直線型、8値不均一直線型)を切り替えて学習することで、量子化後の粒度を4値→8値などに増加させても、中間階調のプライバシーは漏洩しにくい。一方で、タスク誤差のフィードバックとのバランスもあり、タスク解析に最小限必要な中間階調の変化等は、輪郭チャンネルや元の中間階調からずれた低い階調や高い階調で表現されやすい。(この時、出力側の階調差は人が明確に境界を視認できるように、ダイナミックレンジを64等分した値以上に離す必要がある。)
【0108】
一方で、Ty生成や学習・推論に使う階段関数の形状のベースを直線形状から変えることで、プライバシー漏洩度やタスク精度も変化させることができる。例えば、自然画像は中間階調に分布が偏るため、Tyを例EXd0(シグモイド曲線型)のようにコントラストを強調するトーンカーブで補正した後や(分布の平坦化を行った後)に例EXa0(直線増加型)をベースにした量子化を用いてTyを生成すると、量子化考慮学習による情報削除が起こりにくく、タスク精度を保ちやすい。
【0109】
利用(推論)する時は、切り替え学習に用いた量子化関数だけでなく、その中間やそれより粒度の高い量子化関数もある程度問題なく利用でき、プライバシー漏洩度を調整できる。例えば、4値と8値の量子化関数で学習すると、6値の量子化関数ではその中間的なプライバシー漏洩度やタスク精度を示しやすく、16値ではプライバシー漏洩度は増す代わりにタスク精度が高くなりやすい。(ただし、量子化の粒度を粗くする場合にはその精度を保ちにくくなる傾向があるため、4値前後での切り替え関数の学習はしておくと良い。)切り替え学習に用いた量子化関数の中間的な量子化関数は、可能な限り切り替え学習の関数と一致させることで、タスク精度を保ちやすくなると考えられる。
【0110】
例えば、4値と8値の量子化関数の切り替え学習を、それぞれ例EXa,EXb(4値直線型、8値直線型)で行った場合、その中間的な6値の量子化関数を例EXe(6値不均一直線型)の様にするとよい。例EXe(6値不均一直線型としてグラフが6個のステップを有する)では、量子化前の値(0~0.25、0.75~1、すなわち、6個のステップのうち1,2,5,6番目のステップ)においては例EXb(8値直線型)と一致し、量子化前の値(0.25~0.75、すなわち、6個のステップのうち3,4番目のステップ)においては例EXa(4値直線型)と一致している。
【0111】
また、逆伝播に用いる関数は、例EXa0(直線増加関数)や
図6のグラフG2B2やG3B2に示すように直線であることが望ましく、
図6のB2BやG3Bに示すような傾斜階段状の関数は不整合が起きやすいため用いない方が良い。
【0112】
また、利用するときは、(必ずしもタスク精度を可能な限り高く保つわけではないが)、同じ4値化でも異なる量子化関数も使いうる。例えば、例EXa(4値直線型)を用いて学習した画像変換部の変換画像に対し、タスク精度を重視したい場合には例EXa(4値直線型)を用い、プライバシーを重視して少々調整したい場合には例EXd(4値シグモイド曲線型)を用いることもできる。例EXd(4値シグモイド曲線型)では2値画像に近くなり中間階調表現ができ、タスク精度は少々下がるが、プライバシー漏洩度が軽減され、3値化と4値化の間の微調整としても用いることができる。
【0113】
以上、本発明の各実施形態によれば、画像変換部1は小さな畳込ネットワーク等で構成することができ、ユーザ端末上でも動作できる。ユーザ端末上で複数の量子化関数を用意し、切り替えられるようにすることで、ユーザは自分に適正なプライバシーレベルを選ぶことができ、その後の姿勢推定等の精度も基本的にはその範囲で最大限に保つことができる。
【0114】
また、プライバシー保護画像からの姿勢推定や顔器官検出等タスクのキイポイント抽出精度を保ちつつ、色や階調情報を明示的に削減し、静止画・動画出力時の目障りなノイズも発生しにくいプライバシー保護画像を生成できる。さらに、タスク精度を保ちつつ、画像上のプライバシー漏洩度の調整を、画像変換器を切り替えることなく画像への量子化関数を切り替えるだけで容易に行える。
【0115】
以下、種々の補足例や追加例等に関して説明する。
【0116】
(1) タスクが姿勢推定である場合、姿勢推定可能な状態でプライバシーを保護する応用例は様々であるが、例えば以下がある。
・宅内で運動した画像をサーバに送信し、姿勢推定による画像解析を行い、アドバイスを受ける場合に、宅内撮影画像の人物・肌・服装・部屋などのプライバシーを守ることができる。
・ドライブレコーダーや道路走行ロボットが撮影した映像をサーバに送信する際に、すれ違う歩行者の姿勢等をAI(人工知能)で認識できる状態を保ちつつ歩行者のプライバシーを守ることができる。
・サーバに集められた撮影映像の公開レベルをあげてデータを移管・公開する際に、歩行者の姿勢等をAIで認識できる状態を保ちつつ歩行者のプライバシーを守ることができる。
・モニタールームでのリアルタイム映像監視用途、サービス提供者の閲覧においても被写体のプライバシーを守りやすい。
【0117】
(2)
図8の質問例に示すように、ユーザのプライバシー保護への感じ方は、映像の利用用途・撮影場所などで大きく異なってくる。例えば、街中を移動するロボット搭載カメラに映った映像を想定し、「一般公開して良いか。」と質問Q1するのと、「サービス提供者がサービス品質向上目的のために閲覧しても良いか?」と質問Q2するのでは、ユーザの受容性は大きく異なる。(
図8では当該質問Q1,Q2の回答がA1,A2として示され、前者の方がプライバシー保護観点で受容度が低い。)本特許では、後者の様に、サービス提供者の映像利用に対するユーザのプライバシー保護を想定している。
【0118】
なお、
図8では、街角で不特定多数の人が歩いている映像(原画、原映像)と、これに本発明の実施形態を適用してプライバシー保護を図った映像(変換画像、プライバシー保護映像)とを、ユーザを想定した複数の被験者に見せたうえで上記質問Q1,Q2を行った際の回答として回答A1,A2が示されており、ユーザのプライバシー保護への感じ方が様々であっても、本発明の実施形態により相応のプライバシー保護が達成されている。
【0119】
図8の実験は詳細には次の通りである。日中の街中映像(原画)から本発明の実施形態でプライバシー保護を行った変換画像を作成し、原画と変換画像に対してユーザの受容性評価を行った結果が示されている。(映像は9種類、原画と変換画像があるため18クリップ、それぞれ10秒の映像を用いた。実験参加者は映像中の目立つ人を想定して質問を行った。また、実験参加者は20代~60代の男女12名である。)質問Q1の「一般公開されても良いか」に対しては、回答A1のように変換画像において50%程度しか「良い側」の回答をしていないのに対し、質問Q2の「サービス品質向上目的のため、サービス提供者が見ても良いか。(全動画を保存。目的に応じた利用の後、即廃棄。最大で2カ月保存。)」という条件に対しては、回答A2のように「良い側」の回答が90%となった。質問Q2におけるプライバシー保護では人の輪郭や服などの領域情報が残っていても日中の街中映像のプライバシー保護では実用に耐えうると予想される。さらに本実験では、顔をぼかす処理でプライバシー保護感が100%に増すことを確認しており、そのような局所的なプライバシー保護処理を同時に用いることもできる。また、人の形状(輪郭)や服などの領域情報が残っていることで、目視で骨格のアノテーションを行うことができ、姿勢推定器をチューニングするなど、サービス提供者側が品質向上検討をしやすくなる。
【0120】
(3)
図9は、一般的なコンピュータ装置70におけるハードウェア構成を示す図であり、以上説明してきた各実施形態のタスク実行装置10及び学習装置30はそれぞれ、このような構成を有する1つ以上のコンピュータ装置70として実現可能である。コンピュータ装置70は、所定命令を実行するCPU(中央演算装置)71、CPU71の実行命令の一部又は全部をCPU71に代わって又はCPU71と連携して実行する専用プロセッサ72(GPU(グラフィック演算装置)や深層学習専用プロセッサ等)、CPU71や専用プロセッサ72にワークエリアを提供する主記憶装置としてのRAM73、補助記憶装置としてのROM74、通信インタフェース75、ディスプレイ76、マウス、キーボード、タッチパネル等によりユーザ入力を受け付ける入力インタフェース77と、これらの間でデータを授受するためのバスBSと、を備える。
【0121】
タスク実行装置10及び学習装置30の各部は、各部の機能に対応する所定のプログラムをROM74から読み込んで実行するCPU71及び/又は専用プロセッサ72によって実現することができる。また、学習装置30による学習方法は、
図5の各ステップに対応する所定のプログラムをROM74から読み込んで実行するCPU71及び/又は専用プロセッサ72によって実施することができる。
【符号の説明】
【0122】
10…タスク実行装置、20…学習部、30…学習装置
1…画像変換部、11…変換NW部、12…量子化部、13…タスク部
2…プライバシー用更新部、21…階調更新部、22…輪郭更新部、23…タスク用更新部