Googleは、TensorFlow 3Dをリリースした。これは、TensorFlow機械学習フレームワークに3Dディープラーニング機能を加えるライブラリである。新しいライブラリは、研究者が3Dシーン理解モデルを開発およびデプロイできるようにするツールとリソースを提供する。
TensorFlow 3Dには、GPUアクセラレーションと共に3Dディープラーニング向けの最先端のモデルが含まれている。これらのモデルには、3Dオブジェクト検出(車、歩行者など)から点群の登録(3D屋内マッピングなど)まで、幅広いアプリケーションがある。
たとえば、3Dオブジェクト検出は点群データを使用する難しい問題である。それはスパース性が高いためである。効率的なモデルの構築を容易にするために、TensorFlow 3Dはスパース畳み込みネットワークとプーリング操作を提供する。このデータのスパース性を処理する方法として、3Dの畳み込みネットワークを想像することができる。同様に、ゼロでないピクセルが数個しかない画像に対する畳み込みネットワークについて考えることができる。
Tensorflow 3Dでの前述の操作について、U-Netと呼ばれる基本モデルがある。それは、パフォーマンス3Dオブジェクト検出および3Dセマンティックセグメンテーション(オブジェクトカテゴリに属するものとして空間内の各ポイントを分類する)の基幹部分である。TensorFlow 3Dセマンティックセグメンテーションを使用した例は次のとおりである。
from tf3d.layers import sparse_voxel_unet
task_names_to_num_output_channels = {'semantics': 5, 'embedding': 64}
task_names_to_use_relu_last_conv = {'semantics': False, 'embedding': False}
task_names_to_use_batch_norm_in_last_layer = {'semantics': False, 'embedding': False}
unet = sparse_voxel_unet.SparseConvUNet(
task_names_to_num_output_channels,
task_names_to_use_relu_last_conv,
task_names_to_use_batch_norm_in_last_layer,
encoder_dimensions=((32, 48), (64, 80)),
bottleneck_dimensions=(96, 96),
decoder_dimensions=((80, 80), (64, 64)),
network_pooling_segment_func=tf.math.unsorted_segment_max)
outputs = unet(voxel_features, voxel_xyz_indices, num_valid_voxels)
semantics = outputs['semantics']
embedding = outputs['embedding']
自動運転での3D知覚については、LiDARおよび深度カメラの需要が高まっている。これは、自動運転で最も一般的に使用されているセンサーである。さらに、3Dオブジェクト検出(車、歩行者など)などの3Dシーン理解の研究により、精度と推論速度が大幅に向上した。Googleによると、この実装は、Waymo Open Datasetで検証すると、既存のTensorFlow操作を使用して適切に設計された実装よりも、約20倍高速である。
最後に、Google AIの研究者が発表した最近の論文によると、Waymo Open DatasetでのLiDAR 3Dオブジェクト検出のパフォーマンスが大幅に向上した。
Waymo Open Datasetでの実験で私たちのアルゴリズムが、フレームごとのメモリと計算の使用量を減らしながら、従来のフレームごとのアプローチよりも7.5% mAP* @0.7、その他のマルチフレームアプローチよりも1.2%優れていることが示されました。
(平均精度(mAP)は、深層学習におけるオブジェクト検出を評価するためのメトリックである。)
この成果は、自動運転のための3Dマッピングだけでなく、LiDARの認識にも非常に価値あるものである。
TensorFlow 3Dは、市場に出回っている3Dディープラーニング拡張機能の1つにすぎない。Facebookは2020年にPyTorch3Dを発表した。これは、3Dレンダリングとバーチャルリアリティに特化したものである。市場のもう1つのプレーヤーは、NVIDIAのKaolinである。Kaolinは、高解像度シミュレーション環境のようなアプリケーション向けのモジュール式の微分可能なレンダリングである。この概要から、TensorFlow 3Dアプリケーションは、マッピングだけでなくロボット工学の認識にも特化しているようである。一方で、他のオプションは3Dシミュレーションとレンダリングに特化している。3Dレンダリングの目的として、GoogleにはTensorFlowグラフィックスがある。
画像ソース: Waymo Open Dataset on GitHub