覚え書きブログ

物体の3次元形状計測の雑メモ

縦縞と横縞のパターンをプロジェクタで投影し、物体の3次元形状を推定する方法として、位相シフト法がある。

まず、位相シフト法による物体の高さ推定の式の導出は以下の通りである。

ここで、I(x,y)は画像のピクセルx,yの輝度値であり、\phi(x,y)はピクセルx,yに写っている物体の位相(高さ)である。

この位相シフト法を、鏡面物体に適用する場合、鏡面の反射特性(入射角と反射角が等しい)を考慮する必要が出てくる。その反射特性を利用した位相シフト法に Phase Measuring Deflectometryがある。

Phase Measuring Deflectometry: a new approach to measure specular free-form surfaces, M. C. Knauer et al., Photonics Europe, 2004

論文:https://pdfs.semanticscholar.org/e794/7b1818ea147556efd5e361cf9960f84643a4.pdf?_ga=2.70399574.777748080.1554120750-963396836.1554120750

まず、鏡面物体は局所的にみれば、入射角と反射角が等しい関係を利用し、傾き\alphaにより生じた位相zと、\alphaと距離dの関係式が導きだせる。

あとは、この位相z(論文ではψ)を、位相シフトで求めて、上記の関係式を用いて¥alphaに変換すればよい。ただし、距離dが必要になるのはまずい。

ステレオカメラと位相シフト法による鏡面と透明物体の 3次元形状復元, 山崎雅起 et al., 情報処理学会論文誌, 2008

論文:https://ipsj.ixsq.nii.ac.jp/ej/?action=repository_action_common_download&item_id=17935&item_no=1&attribute_id=1&file_no=1

Deflectometry setup definition for automatic chrome surface inspection, I. A. Alberto et al.,

論文:https://agaldran.github.io/pdf/deflectometry.pdf

Study of the specular surfaces by deflectometry phase shift, G, Assia et al., 2016

論文:https://www.researchgate.net/publication/292527217_Study_of_the_specular_surfaces_by_deflectometry_phase_shift

異常行動検知とGANの雑メモ

Future Frame Prediction for Anomaly Detection - A New Baseline, W. Liu et al., arxiv, 2018, CVPR2018

論文:https://arxiv.org/pdf/1712.09867.pdf
githubhttps://github.com/StevenLiuWen/ano_pred_cvpr2018
GANを用いて予測したフレームと真のフレームの差を用いた異常検知。予測と真との動きベクトルが一致するように制約をいれる「temporal constraint」を導入。

Improved Techniques for Training GANs, T. Salimans et al., NIPS2016

論文:https://papers.nips.cc/paper/6125-improved-techniques-for-training-gans.pdf
GANの学習では、非凸の対立ゲームのナッシュ均衡を探す必要があるが、実際に学習をまわしてみると、学習に失敗(収束しない)することがよくある(経験的には、Discriminatorがよく初期反復で、高いlossを出したまま動かなくなることがある)。
その原因の一つが、single point modeと呼ばれる、GeneratorがDiscriminatorにより真と判定される一部の同じデータのみを出力し続ける状態に入る場合である。通常のミニバッチで求めたmin-max lossでは、平均の誤差は見ているものの、Generatorが出力したデータ間の類似性はとくに見ていないため、Generatorが同じデータを出力していても罰則を与えることができない(または、Discriminatorがその状態になっていることを知る由もない)。そこで、本論文では、Feature matching、minibatch discrimination、およびHistorical averagingというテクニックが提案された。

  • Feature matching:Discriminatorの中間層の特徴ベクトルのrealとfakeの統計量の一致度を見る。例えば、期待値や分散など。これにより、Generatorが同じデータを出力しだすと、分散でおそらく差がでるのでGeneratorに罰則を与えることができる。以下のような期待値だけでは差が出ないと思われる。

f:id:hirotaka_hachiya:20190401180215p:plain

  • minibatch discrimination:ミニバッチ内のデータ間の類似度(closeness)を、線形変換し圧縮したベクトル(M_{i,b}とM_{j, b})を用いてデータi, j間の類似度を測る。

f:id:hirotaka_hachiya:20190401174810p:plain
これを、全データnに対して足し、B種類の線形変換に対してかけた、n x Bの行列を出力するlayerのことを、minibatch discrimination layerと呼ぶ。類似度が高いデータをGeneratorが出していることを、この行列を用いてDiscriminatorは知ることができる。
f:id:hirotaka_hachiya:20190401175102p:plain

  • Historical averaging:

GeneratorとDiscriminatorそれぞれのlossに以下のような過去のパラメータの値の平均からの乖離を追加する。これにより、おそらくoverfittingの回避を狙っている(Discriminatorが初期反復で失敗する場合は大抵大きくパラメータが更新されてoverfittingしているから?)。
f:id:hirotaka_hachiya:20190401175343p:plain

これ以外にも、one-sided label smoothingとVirtual batch normalizationが提案されている。

Triple Generative Adversarial Nets, C. Li et al., NIPS2017

論文:http://papers.nips.cc/paper/6997-triple-generative-adversarial-nets.pdf
モチベーションは、improved GANに似ているが半教師あり学習の設定を考えている(つまり、カテゴリラベルが付与されていない教師無データが大量にある)。single point mode(課題1)に加えて、Discriminatorが、realかfakeの2値分類と、カテゴリの分類問題とを同時に学習する場合、Discriminatorの学習可能な容量を超えているという課題(課題2)も考えている。解決方法として、以下のように、カテゴリ分類学習に特化した、Classifierを導入することを提案している。課題2は単純にネットワークを分離することで解決し、課題1は、教師無データXc~P(X)に対して、ClassifierをかけてYcを予測し、(Xc, Yc)を作り、これをrealとしてDiscriminatorが学習することにより解決しようというものである。つまり、Classifierから得られる、多様なデータ(Xc, Yc)を、Discriminatorにrealかfakeの分類をさせることにより、Generatorがsingle point modeに入るメリットを減らしている。すなわち、single point modeは、初期の反復の段階で、GeneratorがDiscriminatorが苦手なデータを特定できてしまい、Generatorがその苦手なデータばかりを出すようになりDiscriminatorの学習を邪魔するようになる(Discriminatorは、Generatorが生成するデータをFakeと判定できるようになっても、オーバーフィットしているので、Generatorが少し変更を加えて生成したデータを誤判定するというのを繰り返す)。しかしながら、Classifierによる多様なデータをDiscriminatorに与えることにより、Discriminatorは多様なデータに対してTrueまたはfakeが判定できる状態を維持させることができる。

f:id:hirotaka_hachiya:20190401180713p:plain

Wasserstein GAN

論文:https://arxiv.org/pdf/1701.07875.pdf
ブログ:https://vincentherrmann.github.io/blog/wasserstein/

realデータの分布とGeneratorにより生成されたfakeデータの分布間のEarth Mover's distance (Wasserstein distance)を最小化するように学習する。以下のtotal variation, KL, Jensen Shannonなどと比べて、EMは連続性を持ちやすく学習が安定するというメリットがある。
f:id:hirotaka_hachiya:20190402003249p:plain
f:id:hirotaka_hachiya:20190402003348p:plain

ちなみに、x軸方向は確率1で「0」をとり、y軸方向は一様分布にしたがって[0,1]の値zを取る2次元の分布P0(x,y)に対し、(\theta, z)でモデル化されたP\theaを考えた場合、P0とP\thetaの距離はそれぞれのメトリックで以下のようになる。
f:id:hirotaka_hachiya:20190402003933p:plain
このように、EMは連続性を担保しやすいloss関数となっている。
f:id:hirotaka_hachiya:20190402004019p:plain