Python
前回のブログで「次の目標はこのViewerにIM-NETのモデル生成機能を組み込むことになります。」と書いてから早や3か月、やっとコーディングが終わりました。副業(?)のJavaScriptの仕事がちょっと忙しくなってしまい、Vue.jsとかおじさんの知らないフレームワ…
前回作成した3DモデルViewerにモデルデータのセーブの機能を追加しました。 セーブ機能つきのViewer画面 大きな変更点は読み込んだ3Dモデルの間でメッシュ<=>ボクセル の相互変換をできるようにして、ボクセルに変換したデータをvox形式で読み書きできる…
IM-NETを使った3Dモデルの生成の可能性が確認できたところで、さらに手法をいろいろ試すためにはGUIを持ったテストベッドを用意したいと思うようになりました。まず欲しい機能としては以下の2種類の3Dデータ: ボクセルデータ(NxNxNの格子の点の有無で形を表…
IM-NETのプログラムが掲載されているgitのリポジトリには学習用の3Dデータをどこから取得するかという点についても記述がありました。ShapeNetとうい3Dデータを集めるプロジェクトがあるんですね。 shapenet.org Robotの顔なんていう特殊なカテゴリはありま…
これまで3Dモデル生成のネットワークを作るのにTensorflow/Kerasというフレームワークを使っていたのですが、しばらく前からPytorchというフレームワークを使ってプログラムを作っています。2つのフレームワークはDeep Learning用フレームワークの2大勢力で…
前回の試作では3Dモデル生成のためのGAN(敵対的生成ネットワーク)の構成は2次元の画像を生成するのと全く同じでした。3次元座標情報をさながら地球儀を紙の世界地図に展開するようなかたちで2次元に展開し、ネットワークに入力していたわけです。その後、GAN…
OBJ形式の3Dモデルをニューラルネットへの入力であるNumpy形式に変換するプログラム、逆にニューラルネットの出力のNumpy形式をOBJ形式に変換するプログラムを作ったので、参考書で定義されているGAN(敵対的生成ネットワーク)で3Dデータを生成してみました。…
以前に3Dモデルをプログラムで生成するツールを試作していましたが、今年はFusion 360でのモデリング作業が主となっていてなかなか手をつけることができませんでした。1年以上の間、こっちのアプローチの作業はしていない... ichidaya.hatenablog.jp ichi…
前回記事のロフト操作だけで宇宙船を造形するというアイデアは半年くらい前から温めていたのですが、試してみるとけっこう手間がかかるためなかなか完成できないというのが実情でした。 ichidaya.hatenablog.jp 基準となる平面を選択後に長さを指定してオフ…
立体地図のモデル(OBJ形式)を制作で品質や作業効率の改善のために以下のようなPythonプログラムを作ってみました。いずれもOBJ形式データを生成するませに標高メッシュの情報を表すCSV形式のデータの前処理を行うプログラムです。 標高値の平滑化(ガウシアン…
カラー造形のためのテクスチャ画像を作成する考え方は前回述べたとおりなのですがもう少し実装よりというか、泥臭い作業上の注意点なども記録しておきたいと思います。 テクスチャ画像の生成スクリプトのソースコードを下記に置きました。 MapTexture.py こ…
標高メッシュの情報からOBJ形式の3Dデータを生成するPythonスクリプトを作成。