本篇文章介绍的是Community Core Vision(CCV) 1.4版本,1.3版本指南可移步至此链接。以《About MT》系列文集:Community Core Vision(CCV) 1.3 全指南为基础,所以建议先阅读完前者之后,再来此阅读本篇文章。
概述
Community Core Vision,简称CCV,一个开放源代码的计算机视觉与机器传感的跨平台解决方案。它需要一个视频输入流用来捕获数据,将数据处理之后,输出追踪数据(如触点坐标和触点大小等)以及触摸事件(如手指按下、移动和按下并保持等),这些都是构建多点触摸应用程序的基本要素。CCV可以与各种网络摄像头或视频采集设备协同工作,通过支持TUIO/OSC/XML的应用程序进行数据连接,并且支持包括FTIR、DI、DSI和LLP等在内的多种基于光学的多点触摸硬件方案。
下载地址:http://nuicode.com/projects/ccv/files,根据自己的操作系统下载对应版本。
更新日志
升级UI。
完整的Fiducial支持(在图像处理学中,Fiducial Marker技术是一种有效的依照基准点模式的图像处理方案)。
解决了传送XML格式信息时的bug。
多通讯模式(XML+TUIO UDP)。
CCV调试模式。
可根据Fiducial模式或Objects/Finger模式选择不同的过滤器。
在config.xml文件可以对基准点(Fiducial)进行设置。
将物体的加速度计算在内。
重新整理了键盘快捷键。
为Finger、Objects和Fiducials单独计数。
界面变化
1. 是否使用摄像机作为图像源(将原来的“使用摄像机”和“使用视频”两个按钮合并为一个)。
2. 模板操作区,用于控制选中的模板的溢出范围。第一个滑块控制选中的模板的往外溢出范围,第二个滑块控制选中的模板的往内的溢出范围。这是CCV 1.4版本新增的重点功能——自定义对象捕捉,下文会将讲解。
3. 保存与加载模板。
4. Track面板,用于设定捕获对象类型选择。分别为:手指,自定义基准,对象。
CCV 1.4版本界面布局有了较大变化,但除了上述4个区域外,其它按钮和功能均与CCV 1.3版本相同。
配置和校准
CCV 1.4版本在配置和校准方面与CCV 1.3版本几乎一样,但是通过Track面板的三个选项,可以更精确地获得想要捕获的对象。此外,在config.xml也有一些变化,但并影响最终用户使用。
具体配置和校准,参见《About MT》系列文集:Community Core Vision(CCV) 1.3 全指南。
对象追踪入门
这个功能是CCV 1.4版本的新增功能,使用这个功能,可以自定义对象的追踪模式,使其更加精确地追踪到对象。
1. 打开CCV所在目录,data文件夹下,templates.xml文件。如果之前没有做过任何模版设置操作,则此文件有可能是空的。
2. 示例格式:
<TEMPLATE>
<WIDTH>36.000000</WIDTH>
<HEIGHT>55.000000</HEIGHT>
<MINWIDTH>25.520044</MINWIDTH>
<MINHEIGHT>38.988960</MINHEIGHT>
<MAXWIDTH>46.833553</MAXWIDTH>
<MAXHEIGHT>71.551262</MAXHEIGHT>
<TRUEID>0</TRUEID>
<ID>180</ID>
</TEMPLATE>
如果需要一个指定的ID来表示此触点,改变<TRUEID>标签值为1,并将<ID>标签设置为你想要在此模板里指定的特定ID。
现在,这个文件看起来像:
<TEMPLATE>
<WIDTH>36.000000</WIDTH>
<HEIGHT>55.000000</HEIGHT>
<MINWIDTH>25.520044</MINWIDTH>
<MINHEIGHT>38.988960</MINHEIGHT>
<MAXWIDTH>46.833553</MAXWIDTH>
<MAXHEIGHT>71.551262</MAXHEIGHT>
<TRUEID>1</TRUEID>
<ID>187</ID>
</TEMPLATE>
3. 如果要增加模板,首先确保CCV 1.4主界面的Track面板中,选中了“OBJECTS”按钮。然后把对象放在追踪表面上,也就是触摸设备的表面,在右边Tracked Image区域,就会出现一个纯黑白的二进制图像。现在,用鼠标从对象的左上角开始拖拽,会拖拽出一个矩形,一直拖拽到完全包裹住二进制图像。然后调节Template Area的两个滑块,分别调节向内向外的溢出范围。完成之后,按回车键添加模板。
4. 如果要在运行的时候改变ID,先按照之前的步骤添加模板,然后点击“SAVE TEMPLATE(保存模板)”,打开templates.xml文件。更改<ID>标签值为想要的数值,然后将<TRUEID>标签值设为1,完成后回到主界面,点击“LOAD TEMPLATE(加载模板)”。
5. 如果要清除模板,则将此文件所有内容删除即可。
6. 确保ID值符合下面的编号分配规则。
templates.xml文件<ID>标签编号分配规则
ID 数字范围 分类
三种模式
三种模式指的是Finger+Objects、Finger+Fiducial、Finger+Objects+Fiducial。其实,模式只是从技术上讲的东西,只要在使用的时候,追踪的效果满足其要求,模式也就无所谓了。包括刚才叙述的新增的自定义对象追踪功能,也是为了更好的满足其追踪的需要。
Finger+Objects模式就是我们现在所使用的模式。
先说一下Finger+Fiducial模式。
1. 启动CCV 1.4并确保已经调试完毕。
2. 在Track面板中,启用FIDUCIALS,也就是前面有一个小红点。
3. 按键盘上的 i 键,进入Fiducial控制模式,i 键是过滤器切换键。这时,在Debug Information一栏中的Filter信息就会从Finger/Object变为Fiducial。
4. 现在,你可以调节各种过滤器,以达到最佳的追踪效果。如果这个时候在Track面板中没有启用或关闭了Fiducial模式,那么在Tracked Image就会显示为静止图像或空白图像。
5. 在窗口中,Finger触点、Object触点和Fiducial触点个数都会被分别统计。
为了更好地理解,可以认为是这样:
摄像机的图像被复制成了两份,一份用于普通的Finger+Objects模式处理图像,另一份则用于Fiducial模式,两者互不干涉。
再来说一下Finger+Objects+Fiducial模式。原则上是不推荐使用这种模式,因为这样捕捉的对象会相当混乱,如果使用这种模式,就相当于是几种模式的并集,所以会更可能多地追踪触点,调整起来会比较繁琐。
再次说明,模式只是为了提高追踪的准确性,是手段,不是目的。