AI_ML_DL’s diary

人工知能、機械学習、ディープラーニングの日記

Kaggleに挑戦-9

Kaggleに挑戦-9

課題1:GitHubのexperiencor / image-to-3d-bboxのプログラムコードを理解すること

課題2:3D Bounding Box Estimation Using Deep Learning and Geometry, A. Mousavian et.al., arXiv:1612.00496v2 [cs.CV] 10 Apr 2017を理解すること

データベース:KITTI left color images of object data set (12 GB)

今日の課題

*入力データの前処理:anchorの計算とanchor, BINの意味、annotationの読み込み

*データベースのチェック

 

論文中の図面や主要な式とその説明文について、しばし、ながめてみる。

f:id:AI_ML_DL:20191220113338p:plain

著者らの方法は、2D bounding box を推定し、それをベースに、3D bounding boxを推定しているようである。

f:id:AI_ML_DL:20191220113414p:plain

2D bbxに3D bbxが内接しているようにみえる。KITTIデータベースは、物体のhright, width, lengthを実物サイズ(メートル単位)で与えており、物体の位置x, y, zも実サイズ(メートル単位)で与えているので、訓練データで学習しているときに、これらの値をうまく組み合わせ、計算することによって、2D bbxから3D bbxの予測を高い精度で行うことができ、それを分岐した3つの全結合層のノードに学習させているのだろう。

さて、テストデータによる予測の際には、当然のことながら、画像が入力されるだけ。それが、CNN層で分類され、それに基づいて2D bbxが推測され、さらに、分岐した3つの全結合層を通過することによって、3D bbxが再現される。というシナリオなのだろうけど、どうしてそのようなことが可能になるのか、わからないな。不思議だな。

f:id:AI_ML_DL:20191220113439p:plain

 annotationをきちんと理解できていない。物体(type)を車に限定して、チェックした。train_2のimageとrabelを突き合わせて確認してみた。type:OK, truncated:OK, occluded:OK, alph:カメラに向かって来る方向がプラス、カメラから離れていく方向がマイナスであることが確認できた。

bbox二次元で、縦375ピクセル、横1242ピクセルにおいて、左上を(0, 0)としてピクセル単位で表されていることを確認した。(KITTIのsensor setupには、カメライメージは1382x512ピクセルとあったので、鵜呑みにしていたが、「ペイント」でデータベースから読み込んだ画像は1242 x 375ピクセルだった。これは、labelの2D bboxの位置とも合う)

小数点以下2桁表示だが、整数で良いのではと思った。dimensionsは、車の実サイズのようで、小数点以下2桁のメートル単位で表示されている。hが1.32から1.51m、wが1.35から1.61m、l(L)3.23から4.44mとなっている。location:物体の位置を小数点以下2桁表示しているとなっているが、車高のyは1.38から2.02m、距離のzは11.21から47.66mと、それらしい値になっているが、xが-6.77から+6.07までの値をとっており、車幅でもないし、よくわからない。符号がマイナスの車は画面の左側、プラスの車は画面の右側を走っている。ryは回転角で、グローバルな回転角すなわち車の進行方向を示しているようである。このあたりを確実なものにするため、Kaggleに挑戦-10で、labelファイルから読み取った数値から、方位や2D bounding box, 3D bounding boxを画像上に重ね書きするプログラムの作成に取り組む。

f:id:AI_ML_DL:20191220113505p:plain

これは、車の回転角と進行方向との関係を説明するための図である。

f:id:AI_ML_DL:20191220113537p:plain

これがモデルの計算モデルのブロックダイヤグラムで、CNN層で物体認識し、全結合層で物体の形状や方位を回帰により推測するものである。

f:id:AI_ML_DL:20191220113710p:plain

ラベルデータが示している2D bbxが左側の映像に重ね書きされ、3D bbxが右側の映像に重ね書きされている。まずは、これと同じものを、画像とラベルのペアから作成するためのプログラムをつくる。

 

*3D bounding box推定に関する数式とその説明文

f:id:AI_ML_DL:20191220114157p:plain

f:id:AI_ML_DL:20191220114325p:plain

f:id:AI_ML_DL:20191220114439p:plain

f:id:AI_ML_DL:20191220114525p:plain

 

*これらの式をきちんと読み解いて、プログラム化することが、学習プログラムを作成する前にやっておくべきことである。 

 

 つづく

 

f:id:AI_ML_DL:20191220120944p:plain

style 051

f:id:AI_ML_DL:20191220121057p:plain

DeepDream