金曜日。
今週は、ずっとボクセル関係の実装のためにパソコンに向かっている。
今日は、総当たりの距離計算を、行列計算に書き換えて高速化を試みて、Cuda を利用した Cupy などを導入した。
フルカラーのフルカラーの大きな山である形の定義はできたので、ここからは距離による色付け。
ここで、各ピクセルから最寄りの点までの距離を計算する必要があり、画像1枚に 600x600 ピクセルがあり、数千から数万の点群との距離計算が必要。
600x600 のピクセル計算では、形の定義の際にも同様の処理を考え断念したが、この数量をループ処理で解くには時間がかかり過ぎることはわかっていた。
Numpy による行列計算で実装すると、150秒であった。Numpy は CPU で、一応並列処理してくれるっぽい(?)。大きな行列計算であれば、GPGPU で高速化できるかと思い、Cupy のセットアップをして流すと、7秒であった。大きな行列であれば、GPU へ流すコストよりも、計算量が勝るようなので、かなり良くなった。
が、入力の点群のソースとしている STL の仕様上、平面の部分には大きなメッシュが貼られ、粗密が結構不便。新たに点群を定義する必要がありそう。