夜風のMixedReality

xRと出会って変わった人生と出会った技術を書き残すためのGeekなHoloRangerの居場所

Unity Barracuda でONNXを読み込む

本日はUnityBarracudaの続きを学びます。

UnityBarracudaを使用することでUnityで学習済みモデルを使用することでニューラルネット推論の実行を行うことができます。

redhologerbera.hatenablog.com

〇ONNX Model Zoo

github.com

[ONNX Model Zoo]はONNXのコミュニティにより提供されているONNXの学習済みモデルのブランチです。

画像認識だけではなく顔認識などのモデルもあるようです。

今回はここからONNXモデルを取得します。

GitHubから任意のプロジェクトを開きます。今回はYoloを触っていきます。

f:id:Holomoto-Sumire:20210727202014j:plain

②ダウンロードからモデルを入手します。

f:id:Holomoto-Sumire:20210727202144j:plain

③ダウンロードしたモデルをUnityのBarracudaを導入したプロジェクトにインポートします。

f:id:Holomoto-Sumire:20210727202258j:plain

以上でONNXモデルをUnityにインポートすることができました。

スクリプトでONNXを読み込む

UnityのプロジェクトにONNXを読み込むことができました。

scriptでONNXを読み込むために新規のC#スクリプトを作成し次のネームスペースを追加します。

using  Unity.Barracuda;

このネームスペースの追加にとってONNXをはじめとしてBarracudaの機能が使用できます。

今回は記事最下部参考にさせていただいた記事を参考に次のようなスクリプトを作成しました。

public class ONNXLoader : MonoBehaviour
{
    
    public NNModel modelAssets;
    private Model m_RuntimeModel;
    private IWorker m_worker;

    public RenderTexture targetTexture;
    // Start is called before the first frame update
    void Start()
    {
   
    }

    // Update is called once per frame
    void Update()
    {
        
    }
}

[NNModel]でONNXモデルを読み込みます。

以上でONNXモデルを読み込めました。

〇参考

qiita.com