3DCG屋さんの活動記録

PROFILE ★★こんな人です

映像制作会社でクリエイティブの修行中。日ごろはMaya&AEを中心にいろんなCGソフトを触りながら、TD寄りの作業が好きで、インタラクティブな体験型空間演出をやりたいと模索中。面白いこと新しいこと大好きな『素直』でいつづける

2020年11月25日水曜日

UE4.25 でコントロールリグの作業効率Python


以下のサイト様のPythonを使わせてもらいました!!



Mayaリガー向け!UE4.26 ControlRig &Python、コントロール階層を自動で作る! 

https://tech-art.online/ue-controlrig-python/


ただ、UE4.25.3でうまくいかなかったので、勝手に更新してみた備忘録です。

改良途中ですが配布。(カスタムして再配布がNGならすぐ消しますのでm(__)m)






2020年11月5日木曜日

UnityでのOculusアプリ開発メモ


 備忘録


3Dモデルにテクスチャ割り当て

●TGA(静止画)をメッシュに直接DDするだけで適用

●mp4(動画)をメッシュに直接DDする(3840x3840pxまで読めた。ただし複数動画になるとフリーズする。4898x4898pxは完全NG・・・要検証)



エラー

●FBXでスクリーンモデルを読み込んでも割り当てできず真っ黒のまま

 →モデルはコンバイン&頂点結合

2020年7月28日火曜日

UE4のUMG でPythonツール作成


スケルタルメッシュのマテリアルを一括で適用させたい!
Skeletalmesh material assign 20200721)

問題は
UE4にアニメ付きAlembicキャッシュを読み込むと、マテリアルすべて剥がれてる。。
それを、自動で割り当てたい!

参考




一応できた。



できたツールの使い方は、
・手動でAlembicをインポート
・同じキャラクタなら、最初の1体は手動でいったんすべてのマテリアル割当
・2体目からは以下の手順で自動割り当て
  ①ツールで1体目のマテリアル割当情報取得(実際は、スロットインデックスとマテリアルのパス)
  ②2体目以降のマテリアル未割当のAlembicに対してマテリアル割当(実際は、スロットインデックスとマテリアルパス)


ポイントは
・どの情報を「String」にするか、しないか
・Unrealの情報はStringにできない。配列で格納しにくい?
・↑で困ったら、力づくで「String」に変換してSliceで切り取る!!Splitもつかうと簡潔になる!
・Attributeで困ったら、UE内でマウス右クリックでコピー、テキストエディタにコピーすると内容が少し見えてくる


■今後の展望
・Undoができるようにしたい!


2020年7月17日金曜日

OpenVINO はじめました windows編


私的備忘録 2020.07.16
---------------------------------------------



WindowsにOpneVINOインストールして開発環境構築

参考インストール手順


  • ①OpenVINOのインストール条件を確認
             MicrosoftVisualstudio →2017アンインストールして、2019いれた(C++デスクトップをON)
             Python3.X    →3.7.6入ってた

  • ②公式からWindows用のインストーラDL(2020.7/16時点で最新)
                 w_openvino_toolkit_p_2020.4.287.exe

  • ③上をダブルクリックで実行
  • ④不足プログラム出たらメモ(おそらく cmake と python。あとはGPUエラー)






  • ⑤cmakeをDL
             (VS2019のときは 3.14・・・3.14.7)
                 cmake-3.14.7-win64-x64.msi

  • ⑥モデルオプティマイザーを構成する    
    • すでに以下ファイルあるので、コンソールから実行
             cd C:\Program Files (x86)\IntelSWTools\openvino\deployment_tools\model_optimizer\install_prerequisites
             install_prerequisites.bat
             ※Caffe *、TensorFlow *、MXNet *、Kaldi *、およびONNX *のモデルをIRに変換するために必要。それぞれのフレームワークで個別に必要。↑のやつだと一気に個別に構成できる。
             ※フレームワークごとに1つづつ構成もできる。install_prerequisites_caffe.batとか・・

  • ⑦環境変数への追加
              C:\Program Files (x86)\IntelSWTools\openvino\bin
       C:\Program Files (x86)\IntelSWTools\openvino_2020.4.287\python\python3.7
  • ⑧必須ではないが、CPU内蔵のGPUを使うときはこちら
                 ※GForce GTXのグラボつかってて、オンボードグラボは無効になってるっぽい。。ほかのソフトに影響出るの面倒ので今回はスルー。


インストールは以上。
ちゃんとインストールできたかを、以下のdemo実行で確認!!!

  • ⑨demo1 画像分類検証スクリプトの実行
うまくいった!確率が表示

  • ⑩demo2 推論パイプライン検証スクリプトを実行する
    が、成功時に最後に出る画像が出ない。
調べたらウイするセキュリティソフトが webへのアクセス?を制限してて
必要なモデルがDLされていなかった。
→セキュリティソフト(ESETでペアレントコントロール解除)

再度実行したら行けた!(車の画像出力)

以上がいけたら、インストール成功です!!!
ひとまずお疲れさまでした!!

2020年6月18日木曜日

はじめての OpenCV for Python で画像表示


OpenVINO を使う前に
OpenCVを試してみたい


ってことで


インストール
cmdからpipでインストール

今回は main(core)だけインストールしたので

$ pip install opencv-python

でOK!
どうやら 4.2がインストールされたっぽい。
ちなみに、Windowsです。

さらに、画像表示テスト。

使ってみた。
うほ!簡単楽しい。


ディープラーニング推論セミナー メモ


完全個人用メモ

-------------------------------------------------

・AI CORE Xスターターキット
・Intel OpenVINO

第1部
導入知識編

そもそもAIとは?

◆AIの分類
・条件分岐  例:温度設定で動くエアコン。If文で行動を変える
・機械学習
・ディープラーニング

<解説>
条件分岐:画から特徴を見つけ、さらに条件を人間が事細かに設定して、
【考える:人100、PC0】
機械学習:画から特徴(傾向)を見つけるのを機械にしてもらう。
【特徴見つける 人50、 分析 PC50】
DL:機械に丸投げ。特徴、分析、予測まで全部。非常に処理多くマシン負荷高い!スーパーPCじゃないと無理。昨今のPC性能向上で可能に。ブーム。
【人0、PC100】

◆ディープラーニングの種類
・CNN ConvolutionalNeuralNetwork   画像認識。最も産業に実用化されているディープラーニング。医療:画像診断、工場:目視検査、小売り:自動レジ精算。
・RNN Recurrent Neural Network  過去の株価入力、未来の株価を予測。時系列データ。自然言語処理。Google翻訳の精度向上に貢献 LSTM。 BERT でさらに翻訳向上。
・GAN Generative Adversarial Network  画像生成。本物のアイドル写真を多数覚えさせ、架空のアイドル画像を生成。
・DQN Deep Q-Network  深層強化学習 赤ちゃんがいろいろ調整して、失敗を繰り返して成長する。α碁(人間に勝つまで精度向上)。ゲーム、バーチャルで精度上がってる。これからリアルの世界に進出。車の制御、ロボットの制御。


◆CNNの種類
分類 確率%で結果が返ってくる。  (例:猫95.4% 犬1.9%
     使い方 確率が50%以上なら猫と表示
回帰 数値そのままが返ってくる。 連続量。重さ、長さ、温度、年齢 (例:22.223
     プログラミング上ですぐに使える
検出 顔っぽいものがあるぞ確率で。(分類と回帰の合わせ技)
                   使い方 顔っぽいもの50%のとろこにバウンディングボックスを表示
セグメンテーション 物体検出に近い。ピクセル単位で細かいとこまで分かる。 
     使い方 歩く歩行者の画像→歩きスマホを検知、危険だぞと警告


◆フェーズ
学習データ作成 
 数千~数十万のサンプル用意
 正解の組み合わせ(データセット)の用意
 ラベリング(正解を用意。いろんなパターンで)
学習
 ①まず適当にAIに投げて、結果を確認
 ②結果とラベリングを比較して誤差を算出、それをフィードバックする
 ③誤差が小さくなるようにパラメータ調整して、再度学習 →1回前より精度UP(繰り返し)
 ※①~③を数十~数百回繰り返して、パラメータを詰める
推論 ★←本セミナーはココ
 学習してないデータを使って、予測。
 フィードバックなし、データはたくさんいらない。 
 クラウドコンピューティングの場合、データをクラウドに飛ばして推論してもらう
 (実際に使うやつ。フィードバックはない。)

OpenVINOの場合、学習から得られるファイルは2つだけ!!
・xml モデル、テンプレート
・bin パラメータ、重み 
これがあって、扱い方がわかれば、推論できる!



---------------------
第2部
環境ツール編

◆Intel OpenVINO
・ディープラーニング 推論のための ソフトウェアツール
・無償利用可能、商用利用可能
・エッジコンピューティング
   リアルタイム応答(0.01秒レベル)
   通信料ゼロ(⇔クラウドコンピューティングだと都度通信料かかる)
   セキュリティリスク低い(プライバシーや機密データにたいする安心感がある)

TrainedModel
↓ 様々なツールによってデータ形式・モデル形式が異なる
ModelOptimizer
↓ IR形式に変換(統一できる) ディープラーニングのドロップアウト?レイヤー 量子化 精度下がるがスピード上げる
InferenceEngin 推論 

メリット
IntelのIR形式の学習済みモデルを使用できる。
・目の方向、頭の方向推定
・車や歩行者、自転車を認識
・2D画像から関節を推定
・文字認識
・同一人物の推定

・初心者でも使いやすい。
・ModelOptimizerが肝の機能



◆AI CORE
・AIoT向け 小型高性能PC
・Intel Movidius Myriad X搭載 推論に適したチップ搭載
・OpenVINO インストール済み。設定も。すぐに実行可能
・Ubuntuインストール済み Linuxのディストリビューション(MacOS) GUI

コーディング方法

メモ帳でコーディング(python)
ターミナル コマンド打ち込んで 実行(2.3個覚えれば使える)
コード修正(座標、文字列、色の変更) セーブ
ターミナルでコマンド実行

2回目の実行は速い
 Linuxコマンドは履歴覚える。
 過去のコマンドをすぐに呼び出せる。

95x 95x 50mm の本体サイズ
FullHD USBカメラ同梱
HDMI DP LANx2 5VDC USB3.0x2

実証実験しやすい。




----------------------------------
第3部
プログラミング

◆Python
基礎
特徴:
①多様な用途(科学技術、サーバーなどバックエンド、組み込み系)
②スクリプト言語(⇔C、Javaはビルドが必須)(昔は処理遅いと言われた。が今はPCの高性能化で気にならない)
③インデント(字下げ)

インデントでブロック分け。
他の言語では、{}で分けてた。
見た目すっきり!


OpenCV
基礎:
OpensourceのComputerVision
画像処理、画像認識 ライブラリ
Pythonコードで書くには
import cv2 #パッケージ読み込み

pythonにおけるOpenCVはcv2

import cv2 #openCVの関数が使えるようになる
img=cv2.imread('cat.jpg')
cv2.imshow('image',img)  #ここでいったんいける
cv2.waitKey(0) #キーボード押されるまで待つ
cv2.destroyAllWindows() #閉じる

以上だけで、猫の画が表示される。

動画も処理できる
1fごとにカメラから画像を取得する(無限LOOP)


Numpy
基礎
ベクトル 行列 演算 高速に ライブラリ
推論時に↑を意識しなくても行けるようになってる

import numpy as np
a = [10, 20, 30]
b = np.array(a)
print(b)

次元が重要!
1次元 a = [10, 20, 30]
2次元 b=np.array([ [10, 20, 30], [40, 50, 60] ])
3次元 c=np.array([ [ [1,2,3],[4,5,6] ] , [ [ 7,8,9],[10,11,12] ] ])

画像と親和性高い
・スライス
  画像のクリッピングが1行で可能
・次元の入替
  画像は「高さ、幅、色情報」の3次元
  画像の回転も容易




---------------------------------
Q&A

・クラウド側のサービスで分類と検出
  クラウド データやりとりで時間かかる。数秒とか。 例:サーバーセンター
  エッジ(端末)即座に結果を返す。 例:車に搭載

・ディープラーニング 学習は 変なデータを入れた分だけおかしくなる。(変なデータ1つで全然だめになる、じゃない。)
          そのため、少しずつ少しづずデータの精度上げることができる(アナログ的)

学習はクラウドコンピューティング必須。エッジだとめちゃくちゃ時間かかる。。
推論はエッジコンピューティングでもサッとできる!!★←本セミナーはココ

NeuralComputing Stick (NCS)以外にはOpenVINOのアクセラレータはない(現時点では)
VPUとよばれるchipが入ってる
AI CORE X にはユニットとして入っている。






↓ OpenVINOツールキット https://docs.openvinotoolkit.org/

AI CORE Xスターターキット http://jp-vnet.com/items/plist.php?b=...

↓ ツクモネットショップ販売ページ https://shop.tsukumo.co.jp/goods/4589...

↓ Webコンテンツページ https://jellyware.jp/aicorex/

↓ JellyWareホームページ https://jellyware.jp/