こんにちは、技術開発の三浦です。
色々な本を読んだり、色々な人とお話をすると、「まだまだ知らないことが一杯あるんだなぁ」と感じます。そのたびに焦ることもあるのですが、一方で知らないことがあるって幸せなことなのかも、とも感じるようになりました。
さて、私は今年度に入って継続的にblenderとオンライン英会話の勉強を続けているのですが、今回はblenderを使いはじめてよかった、と思ったことをご紹介します。
3DCGとそれほど関係がない業務を担当している私にとって、blenderを触るようになってどんなメリットがあったのか、そしてこれからどう活用していこうと考えているのかについて、今回はお話ししたいと思います!
blenderとは
blenderはオープンソースの統合型の3DCG制作ソフトウェアです。無料でありながらかなり機能が充実しており、最近はアニメの制作にも利用されているそうです。
このブログでも何度か登場していて、この前はblederでAIが生成した画像を展示するギャラリーを作った話を紹介しました。
blenderをはじめたきっかけ
私がblenderの勉強をしようと思ったきっかけの1つが、3Dプリンタを使ってIoTデバイスのケースを作れるようになりたい、ということでした。
IoTの取り組みをしていると、センサーやマイコンボードをバラバラに仕入れて使うことがあるのですが、設置する時、それらを覆うケースが欲しいなと思うことがあります。しかし使うデバイスによって必要なサイズは変わってしまうので、ちょうどいい大きさのケースがいつも既製品の中で見つかるとは限りません。しかも試作品の段階ではそんなに大量に必要ではなく、どこかに制作を依頼するよりは自分で作った方が早いだろうと考え、そのために3Dプリンタが使えるようになりたいと考えていました。
3Dプリンタを使うためにもその元データを用意する必要があります。そのデータはblenderなどの3DCGソフトで3Dモデルを作ることで得ることが出来ます。
このような理由でblenderをちゃんと勉強しよう、と思い立ち、最近ようやく3Dプリンタで簡単な形状のものを作れるようになってきました。
blenderを使い始めてよかったこと
blenderを使い始めてみると、その他の用途でもblenderが活用できることが分かりました。例えば以下のようなことが出来るようになりました。
- 画像をちょっとアレンジして見せられるようになった
- ちょっとした小物が作れるようになってオリジナルのプレゼントを作った
また、まだ実験段階なのですが「きっと出来るんじゃないか」と考えていることが
- 物体検出モデルの学習データの自動生成に使えそう
ということです。
それぞれについて、具体的にお話をしていきます。
画像をちょっとアレンジして見せられるようになった
オンラインミーティングをするときに背景画像を設定することがあると思いますが、たとえば以下のようなシンプルな背景画像を使っていたとします。
これでも背景画像としては十分だと思いますが、この画像をこんな風にアレンジしてみたらいかがでしょうか?
一気にボリュームマシマシになった感じがしませんか?
この3DCGイラストは、以下のようにパソコンデスクの3Dモデルを作り、パソコンの画面に当たる面に先ほどの画像をテクスチャとして貼り付けて作っています。
3Dモデルを作った後はカメラの位置などを設定して「レンダリング」という処理を施せば、先ほどのようなオンラインミーティング用の背景画像を作ることが出来ます。
3DCGのよいところの一つに、カメラの設定などを変えるだけで同じ3Dモデルから色々な画像を作り出すことが出来るという点があると思います。着色や質感を変えると、全体の雰囲気がガラッと変わります。季節に合わせて色々な雰囲気を楽しむことも出来ます!
私はオンラインミーティング用の背景画像の他にも、スライド資料にちょっとしたアクセントとして3DCGのイラストを載せたりしています!
ちょっとした小物が作れるようになってオリジナルのプレゼントを作った
最近オリジナルのプレゼントを作って渡す機会がありました。こんな感じで動物のオブジェクトを3Dプリンタで作ってみました。
それをカプセル型のケースに詰めて、オリジナルのカプセル入りおもちゃとしてプレゼントしました。
これはblenderで3Dモデルを作り、3Dプリンタで出力して作りました。
作った3Dモデルは、3Dプリンタで出力するだけでなく、ちょっと手を加えてあげて3DCGイラストにもしました。
同じデータから、現実世界の物体や、3DCGイラストが作れるのってとっても面白いと思いました。特に子どもにとってはパソコンやタブレットの中で見たイラストが現実のモノになって出てくるのがとても面白いみたいです。
物体検出モデルの学習データの自動生成に使えそう
こちらは現在色々調べながら試している段階なのですが、これまで見てきたように、1つの3Dモデルから設定を変えることで色々な画像を生成出来ることが分かりました。
これを利用すれば、現実世界の物体を検出する物体検出モデルの学習データを、3Dモデルから自動的に生成することが出来るのでは、と考えています。
たとえばこちらのリアル画像の中から、「コップ」を検出する物体検出モデルを作ることを考えてみます。
これに対し、例えば先ほどのパソコンデスクの3Dモデルから、以下のような画像を生成したら、学習データとして使えるのではないか、と考えています。
同じ3Dモデルですが、カメラの角度を変えることで違う画像を作ることが出来ます。
さらにコップの質感を変えることも簡単に出来るので、バラエティに富んだ学習データが生成出来るのでは・・・と考えています。
3Dモデルの中で、特定のオブジェクトが存在する位置は座標情報から取得することが出来るので、3Dモデルから出力した画像の中で、検出対象の物体がどこの位置に写っているのかについても自動的に出力することが出来ます。
画像に対して検出対象の物体を指示するアノテーション作業はかなり大変な作業なのですが、これを人の手を介さずに出来れば大きな工数の削減につながります。
blenderは様々な操作をPythonのプログラムを介して行うことが出来ますので、ランダムにカメラの角度を変えたり照明の明るさを変えたりしながらレンダリングし、さらに検出対象のオブジェクトがどこに写っているのかというデータを出力することも、Pythonのプログラムによって実現可能なようです(まだ出来ていないのですが)。
この取り組みについては、またいつかこのブログで詳細をご紹介したいと思います。
まとめ
ということで、今回は私がblenderを使いはじめてよかったなと思ったことを紹介させて頂きました!blenderについてはまだまだ初心者の域を出られていないので、引き続き勉強してもっといろいろなものを作れるようになりたいと思います。
また、私が普段取り組むことが多い機械学習の領域への活用についても色々試してみて、面白い結果が出たらあらためてご紹介します!