(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022186472
(43)【公開日】2022-12-15
(54)【発明の名称】画像処理装置
(51)【国際特許分類】
G06T 7/00 20170101AFI20221208BHJP
【FI】
G06T7/00 350C
【審査請求】未請求
【請求項の数】1
【出願形態】OL
(21)【出願番号】P 2021094707
(22)【出願日】2021-06-04
(71)【出願人】
【識別番号】000003207
【氏名又は名称】トヨタ自動車株式会社
(74)【代理人】
【識別番号】100099759
【弁理士】
【氏名又は名称】青木 篤
(74)【代理人】
【識別番号】100123582
【弁理士】
【氏名又は名称】三橋 真二
(74)【代理人】
【識別番号】100092624
【弁理士】
【氏名又は名称】鶴田 準一
(74)【代理人】
【識別番号】100147555
【弁理士】
【氏名又は名称】伊藤 公一
(74)【代理人】
【識別番号】100123593
【弁理士】
【氏名又は名称】関根 宣夫
(74)【代理人】
【識別番号】100133835
【弁理士】
【氏名又は名称】河野 努
(74)【代理人】
【識別番号】100122116
【弁理士】
【氏名又は名称】井上 浩二
(72)【発明者】
【氏名】牧田 将太
(72)【発明者】
【氏名】トミー ケロラ
(72)【発明者】
【氏名】兼平 篤志
(72)【発明者】
【氏名】工藤 康統
(72)【発明者】
【氏名】アレクシ バレ
(72)【発明者】
【氏名】エイドリアン ガイドン
(72)【発明者】
【氏名】ジエ リ
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096AA06
5L096BA04
5L096CA04
5L096DA02
5L096HA09
5L096HA11
5L096JA18
5L096KA04
5L096KA15
5L096MA07
(57)【要約】
【課題】従来よりも少ない負荷で画像へのパノプティックセグメンテーションを実行することができる画像処理装置を提供する。
【解決手段】画像処理装置は、画像に含まれる各画素の、当該画素に対応する物体の種別を示すクラスへの分類と、当該画素が分類されるクラスに対応する1以上の物体のうち当該画素に対応する個々の物体を示すインスタンスの識別とを1ステージの演算により実行する識別器に画像を入力することにより、画像に含まれる各画素のクラスへの分類とインスタンスの識別とを実行する演算処理部を備え、識別器は、同一のクラスに属する画素の特徴を表す特徴ベクトルが接近し、異なるクラスに属する画素の特徴ベクトルが離反するように学習され、かつ、同一のインスタンスに識別される画素の特徴ベクトルが接近し、異なるインスタンスに識別される画素の特徴ベクトルが離反するように学習される。
【選択図】
図4
【特許請求の範囲】
【請求項1】
画像に含まれる各画素の、当該画素に対応する物体の種別を示すクラスへの分類と、当該画素が分類されるクラスに対応する1以上の物体のうち当該画素に対応する個々の物体を示すインスタンスの識別とを1ステージの演算により実行する識別器に前記画像を入力することにより、前記画像に含まれる各画素の前記クラスへの分類と前記インスタンスの識別とを実行する演算処理部を備え、
前記識別器は、同一のクラスに属する前記画素の特徴を表す特徴ベクトルが接近し、異なるクラスに属する前記画素の前記特徴ベクトルが離反するように学習され、かつ、同一のインスタンスに識別される前記画素の前記特徴ベクトルが接近し、異なるインスタンスに識別される前記画素の前記特徴ベクトルが離反するように学習される、
画像処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、画像に含まれる各画素のクラスへの分類およびインスタンスの識別を実行する画像処理装置に関する。
【背景技術】
【0002】
車両に搭載された撮像部から出力される画像を用いて車両の走行を自律的に制御する自動運転システムは、画像から検出された車両周辺の物体から所定以上の距離を保つように車両の走行経路を作成し、作成された走行経路に従って車両の走行を制御する。自動運転システムでは、適切な走行経路を作成するために、画像から車両の周辺の他車両や人といった物体および道路や歩道といった背景を検出する画像処理装置が用いられる。
【0003】
特許文献1には、画像に含まれる各画素をクラスに分類するセマンティックセグメンテーションと、分類されたクラスに属する物体のうち当該画素に対応する物体を識別するインスタンスセグメンテーションとを実行する画像処理装置が記載されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
画像に対し、例えばSegNet、Deeplab、PSPNetといった畳み込みニューラルネットワーク(CNN)によるセマンティックセグメンテーションと、例えばMask R-CNNといったCNNによるインスタンスセグメンテーションとを別々に実行することにより、画像の画素ごとにクラス分類とインスタンスIDの付与をあわせて行うことができる。また、例えばDeeperLab、SSAPといったCNNは、単一のニューラルネットワークにより、画像の画素ごとにクラス分類とインスタンスIDの付与を行うパノプティックセグメンテーションを、並列のストリームにより実行する。しかし、このような処理を行うネットワークは規模が大きく構造が複雑で、処理の実行に時間を要するため、車両における自動運転制御のようなリアルタイム処理に適用することが難しかった。
【0006】
本開示は、従来よりも少ない負荷で画像へのパノプティックセグメンテーションを実行することができる画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【0007】
本開示にかかる画像処理装置は、画像に含まれる各画素のクラスへの分類と、当該画素が分類されるクラスに対応する1以上の物体のうち当該画素に対応する物体を示すインスタンスの識別とを1ステージの演算により実行する識別器に画像を入力することにより、画像に含まれる各画素のクラスへの分類とインスタンスの識別とを実行する演算処理部を備え、識別器は、同一のクラスに属する画素の特徴を表す特徴ベクトルが接近し、異なるクラスに属する画素の特徴ベクトルが離反するように学習され、かつ、同一のインスタンスに識別される画素の特徴ベクトルが接近し、異なるインスタンスに識別される画素の特徴ベクトルが離反するように学習される。
【0008】
本開示にかかる画像処理装置によれば、従来よりも少ない負荷で画像へのパノプティックセグメンテーションを実行することができる。
【図面の簡単な説明】
【0009】
【
図1】画像処理装置が実装される車両の概略構成図である。
【
図3】ECUが有するプロセッサの機能ブロック図である。
【
図4】埋め込み空間における学習を説明する模式図である。
【発明を実施するための形態】
【0010】
以下、図面を参照して、従来よりも少ない負荷で画像へのパノプティックセグメンテーションを実行することができる画像処理装置について詳細に説明する。本開示にかかる画像処理装置は、画像を識別器に入力することにより、画像に含まれる各画素のクラスへの分類とインスタンスの識別とを実行する。クラスは、画素に対応する物体の種別を示し、例えば人、車両といった物体、または、道路、空といった背景を含む。インスタンスは、画像に含まれる各画素が分類されるクラスに対応する1以上の物体のうち当該画素に対応する個々の物体を示す。識別器は、クラスへの分類とインスタンスの識別とを1ステージの演算により実行するよう構成されている。また、識別器は、同一のクラスに属する画素の特徴を表す特徴ベクトルが接近し、異なるクラスに属する画素の特徴ベクトルが離反するように学習され、かつ、同一のインスタンスに識別される画素の特徴ベクトルが接近し、異なるインスタンスに識別される画素の特徴ベクトルが離反するように学習されている。
【0011】
図1は、画像処理装置が実装される車両の概略構成図である。
【0012】
車両1は、カメラ2と、ECU3(Electronic Control Unit)とを有する。ECU3は、画像処理装置の一例である。カメラ2とECU3とは、コントローラエリアネットワークといった規格に準拠した車内ネットワークを介して通信可能に接続される。
【0013】
カメラ2は、画像を出力する撮像部の一例である。カメラ2は、CCDあるいはC-MOSなど、可視光に感度を有する光電変換素子のアレイで構成された2次元検出器と、その2次元検出器上の撮影対象となる領域の像を結像する結像光学系とを有する。カメラ2は、例えば車室内の前方上部に、前方を向けて配置され、所定の撮影周期(例えば1/30秒~1/10秒)ごとにフロントガラスを介して車両1の周辺の状況を撮影し、周辺の状況に対応した周辺画像を出力する。車両の周辺状況を表す周辺画像は、画像処理装置の処理対象となる画像の一例である。
【0014】
ECU3は、通信インタフェースと、メモリと、プロセッサとを有する。ECU3は、通信インタフェースを介してカメラ2から受信する周辺画像に基づいて、車両1の周囲に存在する物体までの距離を推定する。
【0015】
また、ECU3は、車両1と周囲に存在する物体との間の距離が一定以上となる走行経路を作成し、車両1が走行経路に従って走行するように、車両1の走行機構(不図示)に制御信号を出力する。走行機構には、例えば車両1に動力を供給するエンジンまたはモータ、車両1の走行速度を減少させるブレーキ、および車両1を操舵するステアリング機構が含まれる。
【0016】
図2は、ECU3のハードウェア模式図である。ECU3は、通信インタフェース31と、メモリ32と、プロセッサ33とを備える。
【0017】
通信インタフェース31は、通信部の一例であり、ECU3を車内ネットワークへ接続するための通信インタフェース回路を有する。通信インタフェース31は、受信したデータをプロセッサ33に供給する。また、通信インタフェース31は、プロセッサ33から供給されたデータを外部に出力する。
【0018】
メモリ32は、記憶部の一例であり、揮発性の半導体メモリおよび不揮発性の半導体メモリを有する。メモリ32は、プロセッサ33による処理に用いられる各種データ、例えば周辺画像に含まれる各画素のクラスへの分類とインスタンスの識別とを行う識別器として動作するニューラルネットワークを規定するためのパラメータ群(層数、層構成、カーネル、重み係数等)を保存する。また、メモリ32は、各種アプリケーションプログラム、例えば画像処理を実行する画像処理用プログラム等を保存する。
【0019】
プロセッサ33は、制御部の一例であり、1以上のプロセッサおよびその周辺回路を有する。プロセッサ33は、論理演算ユニット、数値演算ユニット、またはグラフィック処理ユニットといった他の演算回路をさらに有していてもよい。
【0020】
図3は、ECU3が有するプロセッサ33の機能ブロック図である。
【0021】
ECU3のプロセッサ33は、機能ブロックとして、演算処理部331を有する。演算処理部331は、プロセッサ33上で実行されるプログラムによって実装される機能モジュールである。演算処理部331の機能を実現するコンピュータプログラムは、半導体メモリ、磁気記録媒体または光記録媒体といった、コンピュータ読取可能な可搬性の記録媒体に記録された形で提供されてもよい。あるいは、演算処理部331は、独立した集積回路、マイクロプロセッサ、またはファームウェアとしてECU3に実装されてもよい。
【0022】
演算処理部331は、通信インタフェース31を介してカメラ2から受信した周辺画像を識別器に入力することにより、周辺画像に含まれる各画素のクラスへの分類とインスタンスの識別とを1ステージの演算で行うパノプティックセグメンテーションを実行する。
【0023】
識別器は、Deeplab V3+またはPSPNetといった、画像に含まれる各画素のクラス分類を実行可能なニューラルネットワークにより構成することができる。
【0024】
識別器は、各画素のクラスへの分類に加えて、インスタンスの識別を行う。
【0025】
識別器は、各画素のクラス分類およびインスタンス識別を行うために、各画素について埋め込み(embedding)を作成する。埋め込みは、同じ物体に対応する画素については距離が小さく、異なる物体に対応する画素については距離が大きくなるように作成される。
【0026】
識別器は、各画素にクラス分類が付与され、かつ、物体クラスに分類された画素についてインスタンスごとに識別子が付与された画像を教師データとして入力することにより学習される。識別器は、入力された画像の各画素xiに関連付けられた埋め込みei(embedding)からクラスとインスタンスとを検出するように、埋め込み空間を学習する。すなわち、識別器は、画素群Χ(|Χ|=N)を、クラス群Sおよびインスタンス群Iに区分可能な埋め込み群εに対応づける関数fを学習する。クラス群SはクラスCの数により規定される埋め込み空間(S={S1,...,S|C|})である。インスタンス群Iは、クラスに含まれるインスタンスにより規定される埋め込み部分空間(I={I1,...})である。あるクラスkにおけるすべてのインスタンスlについて、Il⊆Sk⊆εのような階層構造が成り立つ。
【0027】
クラスCは、車両、人といった物体クラスCthingと、道路、空といった物質クラスCstuffとに分けられる。物質クラスCstuffは単一のインスタンスを有する。
【0028】
埋め込み空間の学習には、一般的に、協調埋め込み(Associative Embedding)損失を使用することができる。協調埋め込み損失は、各埋め込みの真値画素ラベルに応じて、ある埋め込みeiを他の埋め込みejへと引き寄せ(プッシュ)、または、ある埋め込みeiを他の埋め込みejから引き離す(プル)ように設定される。インスタンスLについて、協調埋め込み損失は以下の式(1)および式(2)のように表すことができる。
【0029】
【0030】
なお、σpullおよびσpushは問題固有のヒンジハイパーパラメータであり、[]+はReLU関数を表す。
【0031】
上述の損失関数を用いたニューラルネットワークの学習には、ヒンジハイパーパラメータの手動設定が必要となるため、実データセットへの適用は困難である。
【0032】
パノプティックセグメンテーションの品質(PQ)の評価には、マスクの重なりを表すIoU(Intersection over Union)が用いられる。IoUは離散値をとるため、勾配降下法により最適化することができない。Lovaszヒンジを用いることにより、以下の式(3)に表される、画像の各画素における予測エラーεiについての連続的かつ微分可能なLovaszヒンジ損失を求めることができる。
【0033】
【0034】
なお、予測エラーξおよびIoU差異ΔIoUは以下の式(4)、(5)のように定義される。
【0035】
【0036】
なお、πはξの降順における指数である。
【0037】
ここで、IoU(π1,...,πi)は、最大予測エラーξπiを有する画素xiについてIoUを計算することを表す。
【0038】
複数のクラスにおける予測について、クラスごとに計算される上述の損失のすべてのクラスについての平均を求める。
【0039】
【0040】
なお、tcはクラスの真値がcのとき1であり、それ以外のとき0となる。
【0041】
インスタンスIlに属する画素に対応する埋め込みeiのスコアpl(ei)は、インスタンスIlの平均をμl、分散をσlとすると、式(7)で表される。
【0042】
【0043】
なお、dcos(a,b)は1からaとbとの内積(コサイン類似度)を引いた値である。
【0044】
plが増加すると埋め込みが引き寄せられ、そうでないときには引き離されるため、plは損失においてプッシュとプルの両方の役割を果たすことに注目されたい。
【0045】
識別器は、インスタンスについて、遠隔の物体をよりよく分離するために、以下の式(8)に表される空間カーネルを使用する。
【0046】
【0047】
なお、ρiは埋め込みeiの空間位置であり、σl,spatialは逆伝搬により学習されるパラメータである。
【0048】
クラス分類の学習の制御のため、クラスSには平均μおよび分散σが関連付けられる。このとき、あるクラスSkに属する埋め込みeiのスコアψk(ei)は、以下のように表現される。
【0049】
【0050】
なお、単純にガウシアンカーネルpkをクラスに属する埋め込みのスコアとして用いることも可能であるが、クラスの数はインスタンスの数と異なり既知であるため、クラスの平均に最も近い埋め込みに対してデコードを行いソフトマックス関数に入力することが好ましい。
【0051】
クラスkに属する埋め込みの平均μkは、クラスkが物体クラスであってインスタンスに対応する場合と、クラスkが物質クラスである場合とに分けて以下の式(10)のように定義される。
【0052】
【0053】
それぞれの埋め込みeiについて、予測されたインスタンスとクラスのスコアをそれぞれφl(ei)、ψk(ei)とすると、Lovaszヒンジ損失を最小化することで、学習データセットにおけるIoU値が最大化される。階層構造を形成してプッシュとプルとの両方に働く損失項は、以下の式(11)のように定義される。
【0054】
【0055】
なお、この式はすべての埋め込みei、インスタンスIlおよびクラスSkについて計算される。これにより識別器は、同じクラスに属する埋め込みを引き寄せ、異なるインスタンスに属する埋め込みを引き離すように働く。埋め込み空間における階層構造を適切に表現するため、クラスの分散がインスタンスの分散よりも大きくなるよう識別器に学習させることにより、インスタンスおよびクラスの階層がモデル化される。
【0056】
図4は、埋め込み空間における学習を説明する模式図である。
【0057】
埋め込み空間では、各画素がクラスSC1、SC2またはSC3のいずれかに分類されるように埋め込みが作成される。識別器は、クラスSC1に属する画素について、引き寄せ合う埋め込みを作成するよう学習される。また、識別器は、クラスSC1に属する画素について、クラスSC2またはSC3に属する画素と引き離す埋め込みを作成するよう学習される。
【0058】
また、埋め込み空間では、クラスSC1に属する画素が、さらにインスタンスI1、I2またはI3のいずれかに分類されるように埋め込みが作成される。識別器は、インスタンスI1に属する画素について、引き寄せ合う埋め込みを作成するよう学習される。また、識別器は、インスタンスI1に属する画素について、インスタンスI2またはI3に属する画素と引き離す埋め込みを作成するよう学習される。
【0059】
識別器の学習には、デコード段階で任意数のインスタンスを検出するため、以下の式(12)に示す損失項がさらに使用される。
【0060】
【0061】
なお、sg[]は勾配停止演算子である。シード値は、インスタンスにおいてのみ値を有するよう予測され、物質クラスにおいてはゼロに回帰される。
【0062】
識別器の学習には、同一の物体について予測されたインスタンス分散を類似させることによりインスタンスの分離が容易となるように、インスタンスに属する各埋め込みについての以下の損失項がさらに使用される。
【0063】
【0064】
クラスの平均が更新されるには時間を要するため、ネットワークの他の部分に追い付けず、逆伝搬による学習が難しい。そのため、識別器の学習には、クラスの継続的表現を保つためにL2正則化を用いた以下の損失項がさらに使用される。
【0065】
【0066】
なお、μk
batchは、クラスkの真値範囲において予測された埋め込みをバッチ単位で平均した値である。また、クラス分散σkは逆伝搬により学習される。
【0067】
識別器の学習には、以下の式(15)に示す損失関数が使用される。
【0068】
【0069】
なお、損失関数Lの値は、画素群Χに含まれるすべての画素について平均される。
【0070】
識別器は、各画素xiについて、タプル(ei、σi、si)を出力する。eiは予測される埋め込みであり、σiは予測されるインスタンス分散であり、siはシード値の確率である。
【0071】
埋め込み空間によりカバーされる範囲を拡大するため、一般化されたトムソン問題を解くことで単位球面における初期値を決定してもよい。初期値は、以下の式(16)により求められる。
【0072】
【0073】
識別器は勾配降下法により局所最小値を発見することができる。
【0074】
識別器は、学習された階層埋め込み空間からクラスとインスタンスとを予測するため、まず、埋め込みeiのクラスSkについてのスコアψk(ei)の最大値から、クラスを各画素に関連づける。物体クラスについては、まず予測されたシード値siの候補数を3x3最大プーリングにより減少させる。そして、残ったシード値siに閾値を適用してシード値siの候補となる初期セットを得る。各シード値siの候補は関連している階層埋め込みeiを有する。これにより、2つのシード値(si,sj)が同一インスタンスを表す確率の計算に、以下の式(17)に示すカーネルを用いることができる。
【0075】
【0076】
そして、識別器は、確率Φ(ei,ej)に基づいて同一物体を表すシードを結合する。これにより、インスタンスあたり1つの推定されたシード値siを得ることができる。
【0077】
識別器は、それぞれのsiについて、Φ(ei,ek)に閾値を適用することでインスタンスマスクを推定し、すべての残存画素埋め込みekについて、各画素を、推論されたシード値の中で最も確率の高いインスタンスに関連づける。インスタンスのクラスはシード画素により決定される。物質クラスについては、クラスのスコアψk(ei)の値に閾値を適用し、誤検出の数を減少させる。
【0078】
図5は、画像処理のフローチャートである。ECU3は、周辺画像の入力に応じて画像処理を実行する。
【0079】
ECU3の演算処理部331は、周辺画像の入力を受け付けると、周辺画像を識別器に入力する(ステップS1)。識別器は、入力された周辺画像に含まれる各画素をクラス分類するとともに、インスタンスの識別を行い(ステップS2)、画像処理を終了する。
【0080】
識別器は、クラスへの分類とインスタンスの識別とを1ステージの演算により実行するよう構成されている。また、識別器は、同一のクラスに属する画素の特徴を表す特徴ベクトルが接近し、異なるクラスに属する画素の特徴ベクトルが離反するように学習され、かつ、同一のインスタンスに識別される画素の特徴ベクトルが接近し、異なるインスタンスに識別される画素の特徴ベクトルが離反するように学習されている。
【0081】
このように画像処理を実行することにより、ECU3は、従来よりも少ない負荷で画像へのパノプティックセグメンテーションを実行することができる。
【0082】
ECU3は、画像処理の実行により得られた画素のクラス分類および識別されたインスタンスを用いて、車両1の周囲に存在する物体の位置をより適切に予測し、走行経路を作成することができる。
【0083】
本開示にかかる画像処理装置は、車両に搭載されるECU以外の情報処理装置、例えばパーソナルコンピュータ、スマートフォン、サーバコンピュータ等といったパノプティックセグメンテーションを実行する情報処理装置として実装されてよい。
【0084】
当業者は、本発明の精神および範囲から外れることなく、種々の変更、置換および修正をこれに加えることが可能であることを理解されたい。
【符号の説明】
【0085】
1 車両
3 ECU
331 演算処理部