不过对于一般个人玩家来讲,薯庆家里的环境很难允许放置一大坨绿布,别墅大佬除外 这就有了本文的主题,利用景深相机搭配Liv的相关软件来虚拟绿幕实现抠像最后混合VR画面实现MR视频。进入正题之前感谢D总的视频,感谢钦总(暗潮污水)给予的帮助,感谢Liv提供了这么优秀的软件,感谢Liv DiscordNo-green-screen频道玩家ragesaq提供的整套流程说明,后期Liv会提供整合好的无绿幕版专用软件会省掉不少工作,到时再提供方法。下面开始本次教程!
准备工作
一台kinect2.0以及适配器套件kinect2.0
可以是xbox one的,也可以是windows专用版,无所谓,不推荐kinect1.0也就是360带的那个,18年前的东西了性能不行。1.0和2.0比较,未来Liv提供的整合版会支持更多的景深摄像头,下图是适配器,记得别买成XBOX的电源适配器了。如果本身有X1,那可以直接把kinect拿出来用,只要再配个适配器,奶东大概350块左右可以买到,如果买kinect2.0 for windows全套某宝大概1300多可以买到。
高性能主机
因为过程中需要3款软件配合虚拟摄像并输出,对CPU压力非常大,楼主的i5 4570明显垮了,开启MR画面捕捉后CPU已经90%占用,玩游戏都很卡了,更别说再录制视频,所以一个高性能超线程CPU是必须的,推荐i7 4790起。至于显卡大家玩VR的想必都不差就不再多说了。
相关软件
连接与安装
把Kinect2按照适配器的说明书连接好PC,注意适配器需要机箱背面的USB3.0接口,前置的USB可能会导致画面捕获不稳定
安装OBS,然后再安装虚拟摄像头插件,都默认即可,安装完可以在工具菜单看到虚拟摄像头插件
解压Kinect.2.Green.Screen.zip,CoordinateMappingBasics-WPF.exe是我们制造绿幕的主程序
Steam安装liv和vivr,安装完Liv点右键属性,在测试里面选择公共测试版本,这对录制Beat Saver有帮助,对应的Beat Saver也选择beta版本
运行程序(重点来了)
首先把kinect2放在一个适合录制的位置和角度,要在vr定位器能够捕捉到的地方,打闭手巧开KinectV2GreenScreen主程序,如kinect2连接没有问题,左下角能够看到Running,在摄像头面前晃悠下能够捕捉到你的人像并成功去背景。
运行OBS,左边如果没有场景就新建一个并改名成容易识别的名字,比如green。然后在来源里面点击+,选择窗口捕获。
在窗口中选择KinectV2GreenScreen的主程序。
添加好来源对捕获到的KinectV2GreenScreen窗口点右键,选择变换→编辑变换,在裁剪里面我们可以上下左右进行裁剪,把没用的白边去掉。
裁剪掉白边拉大窗口,应该轿键差不多正好覆盖1920x1080的背景,不够就拉大一点。
接着新建一个场景,我这里命名为camera,来源选择视频捕获设备,设备里面选择kinect V2。
顶部工具条点开工具→VirtualCam,勾选自动开始,水平翻转(kinect默认捕获的画面是反的),然后点start,这就打开了虚拟摄像头,crop裁剪可以禁用。
1.Kinect原理帆罩:kinect1:Prime Sense公司的Light Coding技术作为原理,给不可态并闹见光打码,然后检测打码后的光束,判断物体的方位。
kinect2:TOF原理(精度、灵敏度和分辨率都更高),根据光反射回来的时间判断物体的方位,当然检测光的飞行速度是几乎不能实现的,所以发射一道强弱随时间变化的正弦光束,然后计算其回来的相位差值,所以使用场景尽量避免反射物以及不要移动Kinect,不然会有问题。
2.可供研究开源库:Openni,KinectSDK,手势库NITE,Kinect-ms-sdk。由于我是新手,而且比较熟悉的Kinect的SDK,所以就从这个开始总结,其他的有机会再来详细分析。
3.首先你用Kinect,首先要了解它能干什么,能获得哪些数据
其实看他的SDK就知道它能获取的数据包括:语音,彩色图像,深度图像,骨骼数据(这个是根据深度和彩色通过算法识别提供给开发者使用的)。而又这几种数据又能扩展出什么新的数据,开发出什么有趣的功能完全是由开发者们的能力和对世界的好奇。(官方SDK已提供了表情,脸部建模,语音识别,手势判断等,其他的估计不会那么快提供出来)
4.Kinect的使用程序流程:
开始程序-获取kinect摄像机-打开读取器-打开Kinect-获取读取器的相关帧数据-使用帧数据-关闭帧-关闭读取器-关闭Kinect-关闭程序
这就是Kinect的一个完整的工作流程,无论是彩色,深度,骨骼的数据获取都需要这个流程的,而我们主要 *** 作是蔽羡在使用帧数据的这个阶段。其他基本是不变的。
4.1 kinect的开启很简单:在程序开始时,也就是unity的Start函数里写下
_Sensor = KinectSensor.GetDefault()
if (_Sensor != null)
{
_Reader = _Sensor.ColorFrameSource.OpenReader()
if (!_Sensor.IsOpen)
{
_Sensor.Open()
}
}
这样就能成功开启Kinect传感器和读取器了。
4.2 程序的关闭
要注意的是没获取完数据不要随意进行Kinect的关闭 *** 作,不然数据会不准确,一般kinect的关闭是在你准备要关闭程序的时候进行的,在unity上的mono类里有专门的OnApplicationQuit(),在这里进行关闭kinect的 *** 作。
代码如下:
void OnApplicationQuit()
{
if (_Reader != null)
{
_Reader.Dispose()
_Reader = null
}
if (_Sensor != null)
{
if (_Sensor.IsOpen)
{
_Sensor.Close()
}
_Sensor = null
}
}
中间的数据获取和数据的使用会占很大的篇幅,会在后续的博客里一个个分析
2. Kinect是什么?一款RGBD传感器,也可以说是颜色+深度摄像头,可以识别人体,并且自动根据人体比例实时计算出不是那么精确但是可以接受的各个关节的运动数据,也可以抓取人的轮廓。3. Macbook如何安装windows为第二系统,具体步骤
下载好所需的Win10镜像文件,插上一个最小8G容量的U盘。 打开Boot Camp助理
Finder文件夹窗口,嫌袭屏幕顶部任务栏Go去往,Utilities使用工具,Boot Camp Assistant助理
选择一下win10镜像文件,下一步,等待重启,按照提示设置在格式化bootcamp盘,下一步进行安装,设置用户名密码之类乱七八物者碰糟的,等待安装完毕。
第一次进入win10会自动安装Boot camp驱动程序
重启按alt键,选择进去mac系统
System Preference系统偏好设置里StartUp Disk启动磁盘里设置开机自罩谈动进入哪个系统
安装完毕
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)