Change Detection from a Street Image Pair using CNN Features and Superpixel Segmentation

概要

既存手法は3Dのモデルとカメラ位置推定を要求。これは計算が大変。

CNNの特徴量を比較することで低周波のmapが作れてこれは光や視点移動に対してrobust。surperpixel segmentationも行う。データセットも作成し実験で手法の有効性を示した。

superpixel: ピクセルをグルーピング

 

導入

多方向の車を用いた画像を用いる。画像は光やカメラの視点が違う。画像の変化には3Dの変化(物体の変化)と2Dの変化(壁の文字など)が含まれる。

この研究では2Dの範囲で解決する(3Dのモデルをつくらない)。CNNを利用する。Imagenetの転移学習で行う。

CNN上位のレイヤーが抽象的な乗法、下位のレイヤーがlow-levelの変化をrepresentする。

CNNはscene changeを捉えられるが変化の境界がわからないのでsuper pixel segmentationの特徴量を利用

最初に粗いgridに分割しCNNで変化を検出。これらをsuperpixel segmentsにprojectして変化の正確な境界を見つける

データセットPCDD、車とGPS

 

関連研究

標準的な方法:
2Dのdomainで解決。appearance modelを作るが異なる視点などの関係ないappearance changeに対応できない。

3Dの方法:

steadyな状態の3Dモデルを作り、queryのイメージと比較。モデルはカメラ以外も使われる

3Dの方法2:

動画から3Dモデルを作る方法を利用してspatio-temporalなmodelを作る方法あり。

ネットからの画像で作る方法もあり。SfMを利用する。

この論文の手法は最悪数メートル離れた画像にも対応。SfMに必要な大量のデータは必要としない。位置はGPSで正確に分かるものとする。

 

手法

プーリング層で特徴量抽出し、正規化して差分をとる。それをgridからpixcelにprojection。

このままだとresolutionが粗いのでsuperpixel segmentationを変化前、後の画像でそれぞれとってその中のprojectionした特徴量の平均の大きい方を取る。

Geometric contextで地面と空の要素は削除

 

CNNは光や位置の変化にrobust。これは物体識別に有利で変化検出にも有効。

 

 

 

 

 

pythonメモ

 

BARFを理解したい

概要

NeRFは流行っているけどカメラ位置を入力しなければならない。coarse-to-fine registrationをNeRFに応用した。SLAMなどへの応用が期待できる。

 

導入

reconstruction: 画像から3D, registration: カメラ位置の推定 は鳥と卵の問題。

既存の解決法SfM, SLAMはbundle adjustmentを用いるが局所最適化に陥りやすく、結果がsparseな点が問題。(bundle adjustment: 観測された画像との誤差などの再投影誤差が最も小さくなる3Dの点群とカメラ姿勢を推定)

NeRFのカメラ位置推定にはback propagationだけど単純に行うと局所最適化が起こる。

coarse-to-fine registeringを使用。positional encodingが重要。BARFはphotometroic BAと見做せる。

結果不完全な位置からの3Dsceneの復元ができて視点合成とか応用が期待できる。

 

関連研究

SfM SLAM:

reconstruction, registrationを同時に行う。これらはdirectとindirectな方法の二つに分かれる。directはkeypointを見つける方法。BARFはindirectな方法の一つだけど単純な幾何ではなくニューラルネットワークを用いる点が異なる。

視点合成:

入力にない画像を生成する。ニューラルネットワークを使う手法が発展。BARFはカメラ位置がわからなくても合成可能。

 

手法

NeRFとの大きな違いはpositional encodingのbackwardが高周波なものほど大きくなってしまうことを防ぐためにencoding時にパラメータ付きの係数をかけて、学習が進むにつれて高周波なものの勾配が伝播されていくようにしている点。(coarse-to-fine registering)

 

 

Dimensionality Reduction of Multimodal Labeled Data by Local Fisher Discriminant Analysis

https://www.jmlr.org/papers/volume8/sugiyama07b/sugiyama07b.pdf

引用数が多いMasashi Sugiyama の単著論文

参考

https://ibisml.org/ibis2007/O1_sugiyama.pdf

 

概要

情報を失わずに次元を削減したい。

Fisher discriminant analysis(FDA)はクラス情報に応じた分類ができるがmultimodal(クラス内にクラスターがある場合?)に対応できない。

LPPは局所的な構造を保つことができるが教師なしんの分類なのでクラス情報を反映しない。

これらを組み合わせたLocal Fisher Discriminant Analysis(LFDA)を提案。

この手法の次元削減をデータの可視化と分類問題に用いると良い結果がでた。

カーネル関数を用いた非線形次元削減も可能。

 

所感

既存の道具を組み合わせてうまく新しい問題を解決した、という感じ?

数式は力不足で追えない

この発展形がSELFらしい。

LFDAとPCA(主成分分析)を組み合わせたもののようだ。

https://scholar.google.co.jp/citations?view_op=view_citation&hl=en&user=GkYIrlIAAAAJ&citation_for_view=GkYIrlIAAAAJ:3fE2CSJIrl8C

 

Self-supervised Simultaneous Alignment and Change Detectionを読む

概要

画像の位置決めと変化検出は同時に行う必要がある。光の変化も問題。self-surpervisedなネットワークSACD-Netを提案。

 

導入

変化検出には視点が変化するためピクセルの単純の比較ではなくアラインメントが必要。

これまでの手法では変化が小さいことを仮定して画像のアラインメントを前処理として行っていたが現実世界には対応できない。同時にアラインメントと画像処理を行わなければならない。また光の変化も問題。

ここではCNNモデルであるSACD-Netを提案。warping parameterとchange probability mapを同時に推定。consistent constrainを満たさなくても良い(??)

 

関連研究

A:Image Alignment

ピクセル間の対応→光の変化、大きな歪みに弱い

CNN→大きな歪み、non-rigidな変化に弱い

self-supervisedなモデルも現れるが物体の変化、光には対応していないので変化検出には使えない。

 

B:Change detection

モバイルカメラの場合はimage alignmentが必要

学習に正解が必要なものはデータの収集が大変

 

→image alignmentとchange detectionを同時に行う方法を提案。feature lossとsemantic lossを導入。

 

image alignment: 画像を対応づけること?

warp: 画像の歪み?

サーベイ

イデア

CLIP-basedなparaphrasingによるccg2lambdaの改良

 

先行研究

arxiv.org

読んだ理由:著者から見つけた。CLIP-basedで関連がありそう。

概要:

3Dの物体の性質と言語を結びつけるのは難しい。CLIPに基づいたモデルを導入したが3Dの性質を見分けることが難しかった。view estimationを導入すると精度が向上したが人間には及ばない。

導入:

roboticsにvision languageを応用するためには物体のcanonicalなvisualな性質とnon-canonicalな、blindfoldedな視点からのcaptionを理解させる必要がある。人間は簡単にできるけどBERTとか使ってもむずい。その主な理由は大規模モデルはinternet-basedでcanonicalな視点からキャプションがついた画像が多いから。視点の推測をサブ予測として行わせると精度が向上することが示されて、panoramatic viewのデータを食わせたモデルに匹敵する精度を誇り、かつroboticsに実現しやすい。ベンチマークSNAREとそのモデルLAGORを実装した。

 

roboticsよりであんま関係ないっぽい。まあCLIPの関連研究として挙げられそうではある。

 

arxiv.org

これもImage-textについて書かれているだけだった。

clip はopenaiからモジュールとして提供されているらしい

 

単純にccg2lambdaのバージョンを上げればできそう。

そのためにはccg2lambdaの完全理解が必要。

その過程で既存研究、全て言語モデルを用いた推論システムとの差別化できる要素を見つけたい。

 

どうして画像からパラフレーズを行うことにこだわる必要があるのか?

dalle2とかは大規模言語モデルに基づいているから結局大規模モデルを使ってパラフレーズしたものをccg2lambdaと組み合わせる、というので良い気がする。

BERT, CLIPとかでいくつかパラフレーズの補完を行い、さらに複数のデータセットで試せれば理想的。

Logicとmachine learningの融合という感じで十分差別化できるのではないか?

考察でCLIPに関することにはgroundingとの関連も述べれば良い気がする。

 

流れとしては

 ccg2lambdaをpythonとcoqのバージョンアップに対応させる

→transoformersとか使えるようにする

→BERT, CLIPとか使い、さらに複数のデータセットで評価する

いきなり複数実装するのは難しいかもとりあえずCLIPだけとかから始めよう。

機械学習のRTEの精度を越えることが目標。

これはかなり不安だな。うまくいくのかな?難しいデータセットの方がこの手法にとって有利そうな気がする。その辺りの調査も行う必要があるかも。

 

aclanthology.org

マルチモーダルな推論にもccg2lambdaが使えるという話。

 

ということで結局問題になるのは実装で初心に戻ってccg2lambdaの論文とコードを読み直そう。

https://arxiv.org/pdf/1707.08713.pdf

これはちょっとsimilarityを測っているからちょっと違う。

 

https://arxiv.org/pdf/1804.07656.pdf

フレーズの知識補完に自然演繹を使い、表現のためにグラフ表現を使う。

サブグラフマッピングアルゴリズムを使うらしい。

フレーズの知識補完で双方向のものはデータ不足とnoisyな点が問題。

この論文では単方向のものを用いるが、既存研究は単語や導出木からalignmentsを行うのに対してこの研究ではsemantic representationでalignmentsを行なっていてこれによって違う意味関係と区別やcoreferenceの無視も防げる。

 

論理式はイベント表現を用いる。さらにDAGsを用いた表現が存在。

 前提とゴールをそれぞれatomic-formulaに分解

→sub-goalと一致したpredicateをもつ論理式を前提の集合から見つける

あった→sub-goalの引数の中の変数を前提の引数にunifyしてからsub-goalを取り除く

(unifyが複数ある場合は複数の可能性を探索する)

ない→word abductionによってpredicateがsub-goalのものとlinguistic relationにあるものを見つけ、unifyしてsub-goalを除去

フレーズアブダクション

unprovableなsub-goalをspanningしていく。切れ目はsemantic roleを持ったedge

あとは論文読んだ方が早い。natural deductionの簡単な解説もあった。

データセット

SICK:compositional distributional semanticsを評価するためのものだったのでlogically challengingでphrasal knowledgeが必要

SNLI: phrase knowledgeは必要だが難しくない(parallelなことが多いため)

FraCaS: lexical or phrasal knowledgeを必要とせず純粋に論理的に難しい問題が含まれる←良いかも?

5.4の最後classifierで精度向上ってどういう意味?

少し勘違いしていた。フレーズをラベル付きの訓練ケースで得てからテストを行う。

modifier:修飾、predicate:述語

 

夏休みが終わってしまう

もう9月も2/3終わったのか!

早すぎる、、、。

もうすぐ大学が始まってしまう。

 

後輩が入ってきたらしい。

いやあれから一年経つのか早いなあ、、、。

「20過ぎたらあっという間」、これ本当に真実だと思うなあ。

毎日くだらないこと考えてないで大切に生きていかないと。

 

後輩にも同期にも先輩にも優秀な人ばかりですごい。

色々負けたくないなあ。

 

思い返せばこれまでおれは色々な学問を齧って中途半端にしか勉強していない気がする。

大学受験も全教科満遍なくできるタイプだった。だから相対的に国語とかの成績が良かった。

大学に入ってからも英語、簿記、微積、統計、代数、圏論、競プロみたいな感じで勉強したけどどれも途中で他の勉強に移ってしまったような気がする。

この夏も、モデル検査、暗号学、機械学習自然言語処理、画像処理に入門した。

今はマルチモーダルか暗号学に進もうと考えているけど、またAセメスターの講義を受けて気が変わらないか心配。

いつまでもフラフラしていないでどれかしっかり勉強しないと。

とりあえずは論文を書くことがゴールだな。

 

例の話は結局どうなったのだろうか。

あっちの話も完全に信頼しているけどうまくいくのだろうか。

あれも続けられるのだろうか。

 

あとはTOEFLやらないと!!

 

全力を尽くそう。あと、簡単には諦めないようにしよう。

もうそろやることを絞っても良いと思う。

 

毎日大切に生きよう。