3DCG屋さんの活動記録

PROFILE ★★こんな人です

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

2020年6月18日木曜日

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


完全個人用メモ

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

・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/








































0 コメント:

コメントを投稿