Kaggleに挑戦-5
課題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を理解すること
課題1は課題2の内容をアプリケーションプログラムとして実装したもので、車に対して3次元のbounding boxを正しく設定しようとするものである。
README.mdには、This is an implementation in Keras of the paper "3D Bounding Box Estimation Using Deep Learning and Geometry"と明記されている。
*プログラムは、作成者が次のように機能を分類している。
最初のCell:tensorflow, keras, numpy, cv2等のimportや定数の定義など
2番目のCell:Preprocessing stuff:前処理(各種の機能を有する関数の定義)
3番目のCell:Construct the regression network :回帰ネットワークの構築
4、5、6番目のCell:Kick off the training:トレーニング開始
7番目のCell:Regress 3D boxes on a video:ビデオ画像への回帰3Dバウンディングボックス表示
*入力データ:データベースは、KITTI
KITTIは、Kaggleのデータセットからダウンロードした。
image_2とlabel_2の内容を確認した。
KITTIのアップデート情報は、www.cvlibs.netにあるとのことだが、サイトにアクセスできない。今は必要ない。
Kaggleでは、今回と類似したコンペ「Lyft 3D Object Detection for Autonomous Vehicl」をやってたんだな。1か月ほど前に終了したようだが。the measure of intelligenceとbioinfomaticsに熱中していて気づかなかった。いや、違ったかな。気づいていたけど、レベルが高すぎて、参加してもどうにもならないと判断したように思う。それもそうだが、自動運転に興味がわかなかったのかもしれない。今は、とにかく、人工知能について深く考え、主体的にかかわっていくためには、自分が、すごいな、どうなっているのだろう、どうやっているのだろうと思る技術を、身に着けたいと考えている。
KITTIは、Karlsruhe Institute of TechnologyとToyota Technological Institute at Chikagoによって作られたのかな。KIT+TTI=KITTIか。遺伝子コードみたいだな。
前処理:
* def compute_anchors(angle)
なんのこっちゃさっぱりわからん。lとrは、leftとrightのことか。左を向いてるか、右を向いてるかということか。次のセクションで呼び出されて、anchorsが計算されて、その値を返しているようだが・・・
*def parse_annotation(label_dir, image_dir)
データベースKITTIのラベルのalpha : Observation angle of object, ranging [-pi..pi]を読み込んで、前のセクションのanchorsを呼び出して、・・・、orientationとconfidenceを、・・・
*前処理は、データベースに対して行うものだから、データベースについての知識が重要である。データの前処理は、実用上は非常に重要だが、テクニカルな問題なので、論文などには、殆ど書かれていないので、プログラミングの達人たちに学ぶしかない。
KITTIに関する説明:
ラベルファイルには、物体のタイプの後に、空白で区切られた、小数または整数、が次の順に並んでいる。
0.type : Car, Van, Truck, Pedestrian, Person_sitting, Cyclist, Tram, Misc or DontCare
Tramは路面電車かそれに類するものだな。
1.truncated : Froat from 0 (non-truncated) to 1 (truncated)
2.occluded : Integer (0, 1, 2, 3) indicating occlution state : 0 = fully visible, 1 = partly occluded, 2 = largely occluded, 3 = unknown
3、alpha : Observation angele of object, ranging [-pi. .pi]
4.bbox : 2D bounding box of object in the image (0-based index) : contains left, top, right, bottom pixel coordinates
5.dimensions : 3D object dimensions : height, width, length (in meters)
6.location : 3D object location x, y, z in camera coordinates (in meters)
7.rotation_y : Rotation ry around Y-axis in camera coordinates [-pi. .pi]
8.score : Only for results:train data には何も入力されていない。
*急がず、あわてず、着実に、日々、前進したいものだ。
つづく