会社で、3次元形状を識別できる畳み込みニューラルネットワーク(CNN)のコードを試してます。
下記のサイトと、そのコードのありかは以下。
3次元畳み込みニューラルネットワークを用いて3次元モデルを分類してみる(ボクセル) - ぽきたに 〜ありきたりな非凡〜
GitHub - tacky0612/classification3dmodel: 3D model classification
ここの記事にある通りに進めると、「ModelNet10」(10種類の形状セット)、「ModelNet40」(40種類の形状セット)の3D形状を使って学習させてます。いわば、3D版のMNISTといったところのデータセット。
ここから入手できます(「ModelNet10.zip」、「ModelNet40.zip」)
Princeton ModelNet
で、もちろん私もこの通り進めました。ちゃんと、認識してくれました。
でもひとつ、困ったことが。
それは「3D形状を見るビューアがない」こと。
3面視のようなものは画像で出力されるんですけど、それじゃああまり形状をちゃんと把握できない。
しかも、よくあるIGES形式でも、STL形式でもない、OFF(Object File Format)という、あまり馴染みのない形式です。
本当に、ちゃんと認識できているのか?やはりきちんと確認するには、形状を読み込んでくるくる回せるやつが欲しい・・・
で、ModelNetの配布サイトを見ると、なにやらビューアっぽいものがあるにはあるんですが、どうやらMATLABを使うコードのようなもののようです。
が、MATLABなんて高価なもの、うちの職場にはございません・・・
ちょっと前だったら、3D形状を自在に扱える環境だったんですが(CAD、CAEツール等)、今はそういうのがないんですよね。
てことで、なんとかいいビューアがないか探してみたところ、こんなのを発見。
MeshLab
「MeshLab」です。
上のサイトで、ちょっと下に「Download」 -「Win64」というのがあるので、それをクリックしてダウンロードします。
こんな画面が開きます。
予め、ModelNetのサイトから「ModelNet10.zip」をダウンロード、解凍しておきます。
で、「File」-「Import Mesh…」を選び、ModelNet10の一つを適当に開いてみます。
ここでは、「Chair」-「train」-「chair_0006.off」を開きました。
ちゃんと開きますね。
左ボタンを押しながらマウスを動かすと「回転」、ホイールボタン(真ん中ボタン)を押しながらだと「移動」、ホイールボタンを回すと「拡大/縮小」できます。
これで、データセットの確認が容易になりますね。
ただ、一点注意です。別のファイルを読ませる時、そのままimportをすると、前の形状データに重なってしまいます。一体、新規(白い書類のアイコン)をクリックしてから読むようにしましょう。
なお、「File」-「Export Mesh As…」を選んで、別の形式に出力させることができます。
以前、私がよく使ったのは「.igs」と「.stl」ですが、ここには「.stl」がありますね。
先のコードでも、STL形式を読み込むことはできるようです。また、よくあるビューアも、STL形式なら読めるものが多いです。
3次元形状の認識AIを作ってみたいとお考えの方は、とりあえずこのMeshLabでの形状チェックをお勧めします。
でも実際に使うには、3Dのデータを作らなきゃダメですから、やはりCADソフトは必要でしょうね・・・
最近のコメント