OrbisBrain(株式会社・登記予定)

〒802-0001 福岡県北九州市小倉北区浅野3-8-1 AIMビル6F コンパス小倉内
CEO:早原 茂樹(Shigeki Hayahara)
CTO:有光 裕樹(Hiroki Arimitsu)
E-mail: hayahara@orbisbrain.com

【創業準備経緯】
2018年6月2日   商願2018-073397「OrbisBrain」・商標出願済み
2018年8月15日  特願2018-153011 として特許出願
          発明の名称「採寸値に基づく3次元モデルを生成するプログラム及び装置」
2018年10月26日  特許第6424309号(登録日2018年10月26日)←※クリックでダウンロード可能
2018年11月1日  コンパス小倉(北九州テレワークセンタ)・第1期・アクセラレーションプログラム・採択
2018年11月12日  特願2018-212569として特許出願
          発明の名称「採寸値とポイントクラウドとを相互に生成するプログラム及び装置」
2018年11月28日  関西経済同友会・「Cyber適塾」様向け・プレゼン


アクセラレーションプログラム・申請書

OrbisBrain from Shigeki Hayahara


【1】体積計算


この動画は、心室の容積データと同期して、心臓が拍動する様子を表しています。
従来、ポリゴンメッシュの体積計算の多くは、物理演算によって実現されており、計算負荷の高いものでした。
そのため、Unity等のリアルタイムエンジン上で、物体の体積を維持した変形を行うことは困難でした。

そこで、リアルタイム用途を想定した、物理演算に依らない体積計算アルゴリズムを開発しました。
このアルゴリズムは、ポリゴンメッシュの変形に応じて、初期状態の体積を強制して変形させます。
ポリゴンメッシュの収縮に対して膨張し、膨張に対して収縮し、適切な体積を維持し続けます。
数値入力やグラフの波形から、体積の変化を手動で制御することもできます。

また、ポリゴンメッシュは多角形の集合で構成されているので、通常は厚みを持ちません。
そこで、動画の例では、二重構造のポリゴンメッシュにより、皮膚や筋組織の厚みを再現しています。
動画では、心筋が収縮するにつれて、筋組織は厚みを増し、同時に心室内の容積は適切に保たれています。
また医療データから、リアルタイムに心臓の拍動をシミュレーションしています。


【2】メッシュスムージング

この動画は、ノイズの多い三次元モデルデータのスムージング処理を表しています。
これは、ポリゴンメッシュ上の各頂点を、その頂点と周囲の頂点との重心方向に移動するように操作します。
この操作を繰り返すことにより、各頂点は周囲の頂点と平均化され、結果的に凹凸のない滑らかなポリゴンメッシュが得られます。
しかし、一般的な凸状の多面体の場合、頂点座標の平均化は各頂点を凹方向に移動する操作となり、ポリゴンメッシュ全体が収縮してしまいます。
動画左では、骨表面が滑らかになるにつれて、それぞれの骨が収縮していく様子が分かります。

これに対し、動画右では、収縮性の平均化と膨張性の平均化を並行させることで、この問題を解決しています。
各頂点を周囲の頂点と平均化することによって、近傍の凹凸のみが平均化され、ポリゴンメッシュ全体が収縮していません。
これによって、ノイズを効果的に減らしながら、本来のモデル形状を損なわないスムージング処理を行うことができます。

※BlenderWiki スムーズ
※円滑化 < メッシュの加工 < モデリング | Blender入門(2.7版)

【3】骨格推定

この動画は、任意の体型の人体モデルに対して、体内の骨格構造を推定する処理を示しています。
ポリゴンメッシュ表面の変形に応じて、内部ポリゴンメッシュを変形させる手法としては、「ケージ変形」が一般的です。
ケージ変形は、ポリゴンメッシュ表面を内部を囲う枠(ケージ)として扱い、枠内の構造を維持します。
しかしながら、計算負荷が高くなると共に、純粋に幾何学的な変形であるために解剖学的な構造を反映しません。

動画では、スキニング変形とその逆演算から、骨格構造を推定しています。
スキニング変形とは、擬似的な骨格構造とその関節の変位に基づいて、ポリゴンメッシュを変形させる手法です。
まず、ベース人体モデルと骨格モデルとに、解剖学的な構造を考慮したスキニング変形を適用します。
そして、ベース人体モデルと、与えられた人体モデルから得られる関節の変位を骨格モデルに適用します。

これによって、骨格構造を、高速な計算で推定することができます。
また、汎用性の高いスキニング変形を用いるために、ベース人体モデルの開発に注力しさえすれば、任意の人体モデルに対して汎用的に再利用できます。
尚、動画では骨格系の推定のみですが、勿論、筋肉も含めた筋骨格系やその他の器官系(循環器系、神経系、消化器系、呼吸器系等)にも応用することができます。

※スキニング | Maya | Autodesk Knowledge Network

【4】解剖学に即した筋骨格系のリギングアプローチ

筋骨格系の基本的なリギングアプローチは、骨格を構成する関節位置にジョイント(計算機上の関節)を配置し、ジョイントを中心にポリゴンメッシュを回転させるというものです。
従来のリギングモデルは、非常に単純化した骨格モデルに基づいており、人体の運動を表現する上で十分な機能を備えていませんでした。
例えば、単関節(2つの骨からなる関節)ではなく複関節(3つ以上の骨からなる関節)である肘関節は、多くの場合、単一のジョイントによる回転で近似されます。
また、脊柱は、約30個の椎骨がS字状に湾曲しながら連結したものですが、回転に使用されるジョイントの数は5つ程度です。

前述の骨格推定の動画では、従来どおり、骨格とジョイントとを対応付けることによって、筋骨格系のリギングを行っています。
骨格のリギングでは、解剖学に即した関節位置にジョイントを配置し、解剖学上の運動表現(屈曲、伸展、外転、内転、回旋、外旋、内旋、回外、回内、側屈等)に基づいて、ジョイントの回転を制御します。
筋肉のリギングでは、まず筋肉と骨格とを対応付け、それによって、筋肉とジョイントとの対応を決定します。
本来、まず筋肉の収縮が起こり、それが骨を回転させますが、その反対のモデルを考えることで、筋肉と骨格を対応付けます。


【5】前腕回転


この動画は、前腕の回内・回外の様子を表しています。
従来の前腕の回転計算は、ジョイントを肘関節に1つ配置し、肘ジョイントを中心にポリゴンメッシュを回転させて実現していました。
この方法では、肘の屈曲は表現できても、回内・回外(ジョイントの捻り)を適切に行えないという問題がありました。
肘と手首の間にもう1つの補助ジョイントを配置し、2段階で捻りを表現する手法もあります。

そこで、解剖学的な観点から2つのジョイントを配置し、それによって前腕のポリゴンメッシュを回転させる手法を取りました。
まず、前腕の回内・回外を行う2つの骨(尺骨と橈骨)と上腕骨との関節位置に、ジョイントを2つ配置します。
腕尺関節は蝶番関節であり、腕橈関節は球関節であるので、回内・回外の動作は、橈骨が尺骨を跨ぐことによって起こります。
尺骨ジョイント・橈骨ジョイントの回転は、この動作を模倣するように決定します。

前腕筋群の回転は、それぞれが尺骨ジョイント・橈骨ジョイントの影響をどの程度受けるかで決定します。
実際には、まず筋肉の収縮が起こり、それが骨を回転させますが、ここでは反対に、骨に筋肉を追従させます。
肘と手首を通る直線に垂直な平面状で、前腕筋群と尺骨・橈骨との距離を計算し、距離の比から適切に重み付けしています。

これによって、動画のように、解剖学的に、より正確に前腕を変形させることができます。


【6】3DCGモデルセット

3DCGmodel
https://www.turbosquid.com/FullPreview/Index.cfm/ID/1118599

これは、詳細かつ解剖学的に正確な人間の皮膚、筋膜、筋肉および骨格系を含むモデルセットです。
芸術的な外観になるように設計されていますが、3D空間での筋肉や肌のシミュレーションにも高度に最適化されています。
また、非常に複雑で密な構造ですが、交差点や自己交差点はまったくありません。
更に、各フェースは、リラックスした均一なサイズとグリッド状のトポロジで構成されています。
これにより、バイアスのない信頼性の高いシミュレーション結果が得られます。
この安定性は、望ましくない結果や予期しないエラーでシミュレーションを繰り返す回数を減らし、品質にもっと集中することができます。

使い方はとても簡単です。
モデルのスキンシェイプとこのモデルのスキンシェイプの両方に一致します。使い方はとても簡単です。
次にシミュレートします。これで十分です。
形状に合わせるには2つの方法があります。
モデルをこのモデルにマッチさせると、シュリンクラップが最適です。
より正確な結果を得るための高解像度スキンモデルと、より便利な操作のための低解像度スキンモデルが含まれています。
このモデルをモデルにマッチさせる場合は、ケージ変形を使用するか、個別にマッスルをスカルプトしてモデルのスキンに合わせることができます。
それでも、シミュレーションの開始フレームでの筋肉の形状は、彫刻のないデフォルトの状態であることが推奨されます。
交差点や自己交差点は注意深く削除されているため、通常は布シミュレーションで行われるように、シミュレーションは常に初期状態から開始する必要があります。
また、シミュレーションを実行する際に腱を修正するためのウェイトマップも用意されています。
MayaユーザでnClothを使用している場合は、このウェイトマップをnClothのinputMeshAttract属性に適用してください。
それは筋肉に沿って均一で美しい流れで構成されたモデルでもあり、彫刻のための理想的なベースメッシュです。
スキンの形状は実際にはこの筋肉モデルのシミュレーションの結果であり、ほとんど追加の彫刻は行われません。
これは、皮膚の形状も解剖学的に信頼できることを意味します。


【7】DeltaMush

DeltaMushは、Rhythm & Hues Studiosによって開発されたポリゴンメッシュの変形アルゴリズム(※デフォーマ)です。
ポリゴンメッシュの平滑化により、デフォーメーションアーティファクトを軽減するとともに、平滑化により失われたディテールを復元します。
あらゆるデフォメーションアーティファクトに対し、堅牢なアルゴリズムです。

(1)対象ポリゴンメッシュと参照ポリゴンメッシュを平滑化する
(2)参照ポリゴンメッシュの各頂点に対して平滑化前後の差分ベクトルを得る
(3)対象ポリゴンメッシュと参照ポリゴンメッシュの対応する頂点とその一近傍頂点を評価し、接線空間の回転変換を得る
(4)参照ポリゴンメッシュの平滑化差分ベクトルを回転変換し、対象ポリゴンメッシュに差分を適用する
ポリゴンメッシュの平滑化:LaplacianSmoothing