3Dモデルをいろいろ作ってみたい

3Dモデルをいろいろ作ろうとがんばっています。苦労した点、役に立ちそうな情報を発信していきます。

ロボット骨格を修正、さらにアーマーを装着

試作を繰り返しながらひさびさにアーマー装着の段階までたどりついたロボットのモデルです。 ロボット骨格にアーマーを装着した状態 骨格は前回投稿したときのものを変更、強度と関節の可動域を改善しています。 左:骨格 中:アーマー装着後(正面) 右:アー…

AIにロボットの顔を描いてもらう

最近、テキストを入力するとその内容にあったもっともらしい画像を生成してくれるスマホアプリやサービスが話題になってますよね。核となっている画像生成AIはStable Diffusionといわれるものでプログラムと学習済のネットワーク重みデータが公開されていま…

またまた長いお休みのあとのロボット骨格新バージョン

1年以上お休みしていたロボット骨格の作成をこの夏から再開しています。 手足の関節回りのパーツを何種類か用意しDプリントしてから、それらを組み合わせて骨格を作っています。完成形までFusion360の上で組み合わせていくよりがイメージがつきやすいかな。 …

Blenderを使って愛犬をモデリング

3Dプリンタを買ったときから家人からは、うちのワンコを作ってよと言われていました。プリンタを買ってからだいぶ時間もたっているしそろそろ最初の試作にチャレンジすることにしました。でもロボットや宇宙船などのメカ系と比べて動物ってより造形センスが…

3DモデルのViewerにIM-NETのモデル生成機能を組み込む

前回のブログで「次の目標はこのViewerにIM-NETのモデル生成機能を組み込むことになります。」と書いてから早や3か月、やっとコーディングが終わりました。副業(?)のJavaScriptの仕事がちょっと忙しくなってしまい、Vue.jsとかおじさんの知らないフレームワ…

3DモデルのViewerに機能を追加してみた

前回作成した3DモデルViewerにモデルデータのセーブの機能を追加しました。 セーブ機能つきのViewer画面 大きな変更点は読み込んだ3Dモデルの間でメッシュ<=>ボクセル の相互変換をできるようにして、ボクセルに変換したデータをvox形式で読み書きできる…

vedo libraryを使って3DのViewerを作ってみた

IM-NETを使った3Dモデルの生成の可能性が確認できたところで、さらに手法をいろいろ試すためにはGUIを持ったテストベッドを用意したいと思うようになりました。まず欲しい機能としては以下の2種類の3Dデータ: ボクセルデータ(NxNxNの格子の点の有無で形を表…

ロボットの顔のモーフィング

IM-NETを使った3Dモデルのモーフィング処理ですが、これまでに集めたロボット頭部のデータをIM-NETに学習させてみました。 1.2つのロボット頭部の3DボクセルデータをそれぞれIM-NETエンコーダで処理 2.得られ2つのたコード(256次元)を加重平均 3.平均…

学習用3Dデータの準備に関する備忘録

IM-NETのプログラムが掲載されているgitのリポジトリには学習用の3Dデータをどこから取得するかという点についても記述がありました。ShapeNetとうい3Dデータを集めるプロジェクトがあるんですね。 shapenet.org Robotの顔なんていう特殊なカテゴリはありま…

state-of-the-artのDeep Learning(IM-NET)を試してみた

前回、Deep Learningを使った3Dデータのモーフィングを試してみて、なんらかの形を作ってはくれるもののちょっと残念な結果に終わったわけですが、我流で進めるのもそろそろ限界かなと思いちょっと世の中の状況を調べてみました。さすがに日本語の書籍で3Dモ…

ロボットの頭部をAIでデザインできないかと試してみたい ーVAEでモーフィングー

前回のブログの終わりに法線ベクトルを使った3Dモデル(VAE:変分オートエンコーダ)の学習を実行中と書きましたがその結果がやっとでました。あれから2週間以上もコンピュータを動かしつづけたわけではなくて、結果を確認してみたら学習に失敗していて何回か…

ロボットの頭部をAIでデザインできないかと試してみたい ー3Dモデル表現方法の変更ー

これまでDeep Learningの入力/出力となるデータとして例えば1x64x64x64といった形式のNumpyデータを使ってきました。64というのは空間をX方向、Y方向、Z方向に分割するときの解像度(数字が大きいほど形状を細かく表現できる)ですが、残った1次元(1チャネル)…

Pytorchの勉強を続ける

Pytorchの勉強を続けています。前回、基本的なGANは動いたと書きましたがどうもうまく学習できていないみたい・・・ オートエンコーダ(AE)のほうが学習状況の確認がしやすい(損失関数が1つだけなのでこいつが単調に減少していってくれればいちおう学習が進ん…

ロボットの頭部をAIでデザインできないかと試してみたい ーフレームワークをPytorchに変更ー

これまで3Dモデル生成のネットワークを作るのにTensorflow/Kerasというフレームワークを使っていたのですが、しばらく前からPytorchというフレームワークを使ってプログラムを作っています。2つのフレームワークはDeep Learning用フレームワークの2大勢力で…

ひさびさにロボット骨格の新バージョン

前回のBlogからちょっと期間があいてしまいましたが、実はDeep Learningのプログラムでハマっておりました。デバッグのためのルールや方法を確立できず、機械学習のフレームワークを変えていちから試してみたりと、低レベルから試行錯誤をやりなおしていると…

Deep Learningで3Dデータ生成 -高解像度の3Dモデルを目指して-

RTX3090 GPUボードのおかげでDeep Learningの学習のスピードは相当(200倍程度)速くなることは確認できたのですが、3次元データの解像度を単純に上げていくとGPUメモリ容量の制約でGPU並列処理ができなくなる、すなわち事実上実行不能になるという制約に変わ…

新しいパソコンでDeep Dreamを試してみた

今回購入したパソコンの筐体はいわゆるフルタワー、このサイズのパソコンを買ったのは30年ぶりぐらいかな。中を開けるとこんな感じです。 本体の側面カバーを開けたところ 電子部品としてはマザーボードとグラフィックボード(GEFORCE RTX 3090)だけである意…

GPUでDeep Learningの学習がどれだけ速くなるか

先週、オーダーしていた新しいPCが届きました。グラフィックカードにGEFORCE RTX 3090を搭載、メモリ64Gバイト、CPUは8コア2.5GHzという自分史上最高スペックのマシンです。週末にTensorflow等のDeep Learning用ソフトウェアのセットアップを行い、GPUによる…

やっぱり速いPCが欲しい、という話

GAN(敵対的生成ネットワーク)で生成する3Dモデルの精度やバリエーションをもっと改善したいと学習するモデル解像度を32x32x32から64x64x64にスケールアップしたのですが、結果は惨憺たるものでした。得られた生成モデルに何を入力しても、どれも同じような丸…

ロボットの頭部をAIでデザインできないかと試してみたい ー3Dの畳込み層を使ってみるー

前回の試作では3Dモデル生成のためのGAN(敵対的生成ネットワーク)の構成は2次元の画像を生成するのと全く同じでした。3次元座標情報をさながら地球儀を紙の世界地図に展開するようなかたちで2次元に展開し、ネットワークに入力していたわけです。その後、GAN…

ロボットの頭部をAIでデザインできないかと試してみたい ー単純に適用してみたー

OBJ形式の3Dモデルをニューラルネットへの入力であるNumpy形式に変換するプログラム、逆にニューラルネットの出力のNumpy形式をOBJ形式に変換するプログラムを作ったので、参考書で定義されているGAN(敵対的生成ネットワーク)で3Dデータを生成してみました。…

ロボットの頭部をAIでデザインできないかと試してみたい ーまだ始めたばかりですがー

以前に3Dモデルをプログラムで生成するツールを試作していましたが、今年はFusion 360でのモデリング作業が主となっていてなかなか手をつけることができませんでした。1年以上の間、こっちのアプローチの作業はしていない... ichidaya.hatenablog.jp ichi…

ロボット骨格にボディアーマーを装着する -次郎丸編-

1か月以上かかってしまいましたが、PETGフィラメントで出力したロボット骨格(前回投稿後に改良)にボディアーマーを装着しました。Fusion360上で大きさや位置の合わせをしながら設計していった(下図)のですが、骨格の動きとアーマーが干渉したり、出力してみ…

ロボット骨格の関節可動範囲を改良

前回のBlogで紹介したロボット骨格を改良を続けています。今回は肩と脚のつけ根の関節の自由度を1つ増やしました。 肩と脚のつけ根にジョイントを追加 ロボット骨格の関節はPETG製のパーツとバーツ同士を繋げるボルト/ナット、緩衝材として用いるシリコンゴ…

ロボット骨格 新バージョン

連休の間にロボット骨格の新バージョンを制作しました。関節の保持力を高めるために新素材(金属)を採用しています。関節の回転軸に8mm~10mmの長さのボルトを使い、ナットでしっかりとめてPETGで出力したパーツを押さえつけています。 ロボット骨格タイプA …

サーフェスモデリングの練習でロボット頭部を作ってみる

サーフェスモデリングの練習でロボット頭部のモデリングを行ってみました。 ロボット頭部のモデル デザイン自体はネットにあった人間用ヘルメットのマネです。正面図と側面図をキャンバスに貼りつけてから「位置合わせ」で大きさを調整、あとはお手本をなぞ…

ボディアーマーの作成 -初めてのサーフェスモデリング-

新型のロボット骨格用のボディアーマーを制作しました。前回作ったボディアーマーは平面だけの組合せの「カクカク」した感じのものだったのですが、 ichidaya.hatenablog.jp 今回はサーフェスモデリングの練習をしながら少し曲面がはいったものに挑戦してみ…

ロボット骨格の量産化に挑戦

Adventurer3でPETGフィラメントでのの出力がだいぶ安定してきたので連続印刷モードはオフにして複数部品をまとめて出力してみました。 複数部品を印刷 本体だけでなくサポートの印刷スピード(別パラメータだということに最近気づいた)も遅くしたのがよかった…

ロボット骨格を再モデリング

なかなか先に進めない、とぼやきながらまたロボット骨格をモデリングしなおしました。パラメータの設定に四苦八苦しながらPLAからPETGフィラメントに切り替えてパッチンとはめ込むスナップインの機構を作りやすくはなったのですがまだ気に入らない点があった…

3Dプリンタの不調がやっと解決

最近2週間ほどAdventurer3の調子が悪くて全く3D出力ができませんでした。何回かFlashForge社に問い合わせて今日になってやっとどうにか解決しました。 最初のトラブルは下の写真のように出力中にフィラメントのガイドチューブがはずれてしまうというものでし…