如何在unity里使用opencv?

畢業研究決定用unity作為平台,使用oculus rift作為輸出,webcam+opencv識別手勢操作。

目標是製作出浮空的GUI,以及用手作為控制。感覺最近的hololens就是目標產品XD

最開始使用了Kinect for windows v1識別手勢,發現kinect放在頭上面,攝像頭到手的距離太短,識別率不高,於是想改用webcam+opencv,現階段就是想如何在unity里使用opencv。

如果有更好的方法請告訴我。

よろしくお願いします。


最簡單的方法是用socket通信……

你在外面寫個exe,然後opencv搞進去,通過網路消息傳遞進unity

我有個學長的作業就這麼幹了 @王宇翔 = = Virtual Reality Ball Game

如果你追求美感,可以打包出dll然後再弄

Unity and DLLs: C# (managed) and C++ (unmanaged)


同題主 , 畢業設計 準備做的是 "遮擋調節下的人臉識別" 也準備使用unity + opencv實現

目前在研究 opencv for unity 插件

【人臉識別】-插件

目前已經可以在unity/安卓上跑了

如果大家有別的思路還望多交流


opencvsharp 強烈推薦

地址 shimat/opencvsharp · GitHub

下載openCVsharp的dll 拖到unity 的Plugins文件夾里。

然後只要正常安裝了opencv 配置了環境變數就能用了,版本支持到2.4.10。

github的wiki里還有tutorial

最近在做u3d+kinect bodyindex的處理用到了opencvsharp 非常的方便。kinect識別的話放在頭上肯定識別率不高的,盡量kinect還是放在固定位置來識別,識別距離最少要大於半米。kinect v2的性能比v1提升很多識別率也高很多,可以試試v2 。


首先官方商店裡有opencv for unity,其次識別手勢用leapmotion或者二代kinect。

我又看到了你要把攝像頭綁腦袋上…那你最好還是用leapmotion,單目攝像頭是個坑,我們實驗室有人在做單目攝像頭的動作捕捉,還得先剔除背景,這就是說你腦袋不能動。

如果你不想自虐,leapmotion是最好的選擇,二手400元左右,而且api很簡潔,好上手。


要是老闆給錢的話要不來一發LeapMotion吧...官方提供支持Unity的package的...


題主後來設計開發完成了吧,可以和大家分享下嗎?


你可以看看Unity使用OpenCvSharp人臉識別僅供玩耍 -_-||


AForge.NET :: Computer Vision, Artificial Intelligence, Robotics


靜態版本,打包成dll,按Unity插件導入。


試試Kinect one,要是它識別不出攝像頭希望也不大。

OpenCV可以用在clr類庫,添加到解決方案里,需要用它的C#項目引用里添加下就可以了。clr類庫項目里除了C#項目要用到的類之外都可以用原生C++類,用OpenCV很方便。


我的畢業設計是用Unity做一個類似於ps的軟體,我用的是emgucv。


正在做Kinect v2研究的表示你可以直接用V2 V2能夠捕捉到手指節點 你再去做手勢定義就方便很多了。


推薦閱讀:

關於MFC是否out了的問題?
用OpenCV人臉檢測,出現這個錯誤,大神賜教?
在 MFC 框架中,有什麼方法能直接將 OpenCV 2.0 庫中 Mat 格式的圖片傳遞到 Picture Control(圖片控制項)顯示?
關於opencv中對齊圖片的問題?
做增強現實AR,高通sdk與opencv有什麼區別。各有什麼利弊?

TAG:Unity遊戲引擎 | OpenCV | OculusRift | HTCVive |