OpenCVとUnityの連携について

2015.08.13 | openCV, unity3d

OpenCVとUnityとの連携を考えたとき、

  • openCVSharpを使う
  • pluginとしてnative実装
  • nativeで実装して通信(udp等)で連携
  • openCV for Unityをつかう

などあると思うけど、それぞれのメリット・デメリットをまとめておく。

openCVSharpを使う

メリット

  • Unityのみで完結する。
  • 最終アプリも一つとなる。
  • openCV <-> Unity texture のやり取りも可能

デメリット

  • macで若干使いにくい。
  • 本家openCVからの移植なので移植までのタイムラグがある。

pluginとしてnative実装

メリット

  • 最終アプリが一つとなる。
  • openCV <-> Unity texture のやり取りも可能

デメリット

  • win, macなどそれぞれpluginを用意する必要がある。
  • デバッグ等ちょっとやりにくい。

nativeで実装して通信(udp等)で連携

メリット

  • アプリが分かれるので、認識パートと描画パートなど開発を分けやすい。
  • 通信でのやりとりなので、データ量が少なければ比較的高速なやり取りが可能。(※pluginの場合との比較は未検証)
  • 認識と描画パートが分かれるので、後からそれぞれのパートを別の実装(UnityからUE4へなど)に変えやすい。

デメリット

  • アプリが複数となる。
  • 画像のやりとりをする場合は、工夫が必要か。 別アプリにしたときの画像のやりとりは、 syphonを使うなどになるか。

openCV for Unityをつかう

メリット

  • さまざまなデバイスに対応
  • 最終アプリも一つとなる。
  • Unityのみで完結する。
  • openCV <-> Unity texture のやり取りも可能
  • Kinectなどのサンプルもあり

デメリット

  • 有料 $95
  • openCVの知識+アセットの学習コストが必要。(Sampleなどが充実しているのでそれほど難しくはないが)
  • packageが巨大 300Mb程度

関連外部URL

UnityでOpenCVを どう使うか – OpenCVSharp vs OpenCV dllを使う環境 vs スタティックライブラリ

pagetop