Tensorflow1.15 pointnet sem_seg #2 です。
Tensorflow1.15 pointnet sem_seg で、学習ができたので、
今回は、検証用のプログラム、sem_seg/batch_inference.py を試してみました。
開発環境
OS: Windows10
言語: Python3.7
Tensorflow 1.15 GPU
開発ツール: Eclipse
検証は、下記を実行するだけですが、
> cd sem_seg
> python batch_inference.py
実際に試してみると、入力データが、 .npy が必要のようです。
オリジナルの text zipをダウンロードして、sem_seg/collect_indoor3d_data.py を実行すると、
作成される様ですが、肝心のオリジナルの text zip を入手できません。
なので、学習で使った、.h5 ファイルを使うように、変更してみました。
1. 早速修正した、コードを掲載します。
sem_seg/batch_inference_nishi.py
実行は、
> cd sem_seg
> python batch_inference_nishi.py
そうすると、
log6/dump ディレクトリーの下に、
?_gt.obj
?_gt.txt
?_pred.obj
?_pred.txt
等ファイルが作成されます。
特に、?_pred.txt に、predict した結果が残されていました。
ポイント毎に
x,y,z,r,g,b,acc,class
が出力されるので、これを、open3d 等で表示してみると確認できます。
2. 表示プログラム
早速、?_gt.obj , ?_pred.obj , ?_pred.txt を、open3d で表示してみました。
sem_seg/view_obj_nishi2.py
test_id=4
で実行すると、class=8 -> chair
だけを検出しているポイントだけを確認できます。
3. 感想
1) 結局、全ての判定ポイント(num_point=4096) 毎に、それぞれのクラスを判定して
クラス番号を付与するプログラムと言う事らしいです。
つまり、複数の同じ物があれば、それの全てのポイントに、同じクラス番号が付与される事のようです。
2) 入力は、Depth カメラで撮影した PointCloud に近い画像の様なので、
実際のアプリケーションでも、利用できそうです。
次は、独自データで学習しようとした場合、その学習データは、どうやって用意すれば良いのか?
を考えないといかんぞね。
たとえば、インテルの Depth Camera と、表示用のLCD を、Raspi に繋げて、
電池駆動で持ち運び出来るようにして、
スイッチを押したら、その時の RGB-D と Point Cloud データを、保存するプログラムを、動かして、
屋外に持ち出して撮影する。
と、言う事か?