参照Ubuntu 14.04.5系统上OpenPTrack V1版本安装配置(Kinect V2)配置安装完成后,是单台机器的方式。
如果场地比较大,则需要部署多个Kinect V2
。由于每台Kinect V2
看到同一个人的视角不同,因此需要校准,才能进行合并。
下面,我们用两台PC
+两个Kinect V2
(每台机器上连接一个Kinect V2
)来演示一下如何校准的操作。
参照Ubuntu 14.04.5系统上OpenPTrack V1版本安装配置(Kinect V2)配置安装完成后,是单台机器的方式。
如果场地比较大,则需要部署多个Kinect V2
。由于每台Kinect V2
看到同一个人的视角不同,因此需要校准,才能进行合并。
下面,我们用两台PC
+两个Kinect V2
(每台机器上连接一个Kinect V2
)来演示一下如何校准的操作。
目前在研究视觉跟踪人的事情,找到的比较好的参考项目就是OpenPTrack
了,截至目前(2017.8.14
)OpenPTrack
的V2
版本还没有释放出代码,因此我们只能依旧在V1
版本上进行测试,这个版本目前只能在Ubuntu 14.04.5
系统上运行,其他系统上(比如Ubuntu 16.04
)问题比较多,还是建议在Ubuntu 14.04.5
系统上进行安装。
OpenPTrack
OpenPTrack
目录Kinect V2
驱动程序安装重启系统,然后执行如下命令:
可能需要重新插拔一下Kinect
的USB
数据线,然后执行如下命令
执行之后,等待十几秒,然后Ctrl+C
中断执行。
执行完成后,执行
之后,会弹出三个界面出来。
Microsoft Common Objects in Context
(简写COCO
)数据集是微软团队提供的一个可以用来进行图像识别,分割,注解等开发工作的数据集。
其官方说明网址:http://mscoco.org/。
继续阅读Ubuntu 16.04系统Microsoft Common Objects in Context(COCO)数据集在Python环境中的使用
val
是validation
的简称。training dataset
和validation dataset
都是在训练的时候起作用。validation
的数据集和training
没有交集,所以这部分数据对最终训练出的模型没有贡献。validation
的主要作用是来验证是否过拟合、以及用来调节训练参数等。
比如训练0-10000
次迭代过程中,train
和validation
的loss
都是不断降低,
但是从10000-20000
过程中train loss
不断降低,validation
的loss
不降反升。
那么就证明继续训练下去,模型只是对training dataset
这部分拟合的特别好,但是泛化能力很差。
所以与其选取20000
次的结果,不如选择10000
次的结果。
这个过程的名字叫做Early Stop
,validation
数据在此过程中必不可少。
如果跑caffe
自带的训练demo
,你会用到train_val.prototxt
,这里面的val
其实就是validation
。
而网络输入的TEST
层,其实就是validation
,而不是test
。你可以通过观察validation
的loss
和train
的loss
定下你需要的模型。
但是为什么现在很多人都不用validation
了呢?
我的理解是现在模型中防止过拟合的机制已经比较完善了,Dropout\BN
等做的很好了。
而且很多时候大家都用原来的模型进行fine tune
,也比从头开始更难过拟合。
所以大家一般都定一个训练迭代次数,直接取最后的模型来测试。
ImageNet
ImageNet是一个计算机视觉系统识别项目,是目前世界上图像识别最大的数据库。是美国斯坦福的计算机科学家李飞飞模拟人类的识别系统建立的。能够从图片识别物体。目前已经包含14197122张图像,是已知的最大的图像数据库。每年的ImageNet大赛更是魂萦梦牵着国内外各个名校和大型IT公司以及网络巨头的心。图像如下图所示,需要注册ImageNet帐号才可以下载,下载链接为http://www.image-net.org/
继续阅读“GrabCut” — Interactive Foreground Extraction using Iterated Gr aph Cuts
caffe
程序自带有一张小猫图片,存放路径为caffe
根目录下的examples/images/cat.jpg
, 如果我们想用一个训练好的caffemodel
来对这张图片进行分类,那该怎么办呢? 如果不用这张小猫图片,换一张别的图片,又该怎么办呢?如果学会了小猫图片的分类,那么换成其它图片,程序实际上是一样的。
开发caffe
的贾大牛团队,利用imagenet
图片和caffenet
模型训练好了一个caffemodel
,供大家下载。要进行图片的分类,这个caffemodel
是最好不过的了。所以,不管是用C++
来进行分类,还是用python
接口来分类,我们都应该准备这样三个文件:
1. caffemodel
文件
可以直接在浏览器里输入地址下载,也可以运行脚本文件下载。下载地址:http://dl.caffe.berkeleyvision.org/bvlc_reference_caffenet.caffemodel
文件名称为:bvlc_reference_caffenet.caffemodel
,文件大小为230M左右,为了代码的统一,将这个caffemodel
文件下载到caffe
根目录下的models/bvlc_reference_caffenet/
文件夹下面。也可以运行脚本文件进行下载:
2. 均值文件
有了caffemodel
文件,就需要对应的均值文件,在测试阶段,需要把测试数据减去均值。这个文件我们用脚本来下载,在caffe根目录下执行:
执行并下载后,均值文件放在 data/ilsvrc12/ 文件夹里。
3. synset_words.txt
文件
在调用脚本文件下载均值的时候,这个文件也一并下载好了。里面放的是1000个类的名称。
数据准备好了,我们就可以开始分类了,我们给大家提供两个版本的分类方法:
一. C++
方法
在caffe
根目录下的examples/cpp-classification/
文件夹下面,有个classification.cpp
文件,就是用来分类的。当然编译后,放在/build/examples/cpp_classification/
下面
我们就直接运行命令:
命令很长,用了很多的\符号来换行。可以看出,从第二行开始就是参数,每行一个,共需要4个参数
运行成功后,输出top-5
结果:
即有0.3134的概率为tabby cat, 有0.2380的概率为tiger cat ......
二. python
方法
python
接口可以使用jupyter notebook
来进行可视化操作,因此推荐使用这种方法。
在这里我就不用可视化了,编写一个py
文件,命名为py-classify.py
对于macOS Sierra (10.12.3)
来说,需要设置python
环境,(参考源代码中的python/requirements.txt
),如下:
执行这个文件,输出:
caffe开发团队实际上也编写了一个python版本的分类文件,路径为 python/classify.py
运行这个文件必需两个参数,一个输入图片文件,一个输出结果文件。而且运行必须在python
目录下。假设当前目录是caffe
根目录,则运行:
分类的结果保存为当前目录下的result.npy文件里面,是看不见的。而且这个文件有错误,运行的时候,会提示
的错误。因此,要使用这个文件,我们还得进行修改:
1.修改均值计算:
定位到
这一行,在下面加上一行:
则可以解决报错的问题。
2.修改文件,使得结果显示在命令行下:
定位到
这个地方,在后面加上几行,如下所示:
就样就可以了。运行不会报错,而且结果会显示在命令行下面。