Ubuntu 16.04.3系统上OpenPTrack V1版本安装配置(Kinect V2)

对于 Ubuntu 14.04.5系统上的安装操作,请参考Ubuntu 14.04.5系统上OpenPTrack V1版本安装配置(Kinect V2)

下面是我自己 fork出来修改后的代码在 Ubuntu 16.04.3系统上的安装操作

要求机器上必须有 CUDA 8.0/9.0支持的显卡才可以。

1.从GitHub上获取项目代码

2.安装ROS

3.安装 OpenPTrack

4.链接 OpenPTrack目录

5. Kinect V2驱动程序安装

检查当前用户目录下的 .bashrc文件,注释掉如下内容:

然后执行如下命令:

6.重新编译代码

执行如下命令:

检查当前用户目录下的 .bashrc文件,然后注释掉如下内容:

上面语句如不注释,会导致程序启动时候的崩溃。

新建一个 Shell,执行如下命令

执行此步的时候如果提示找不到 Kinect设备,请重启一下系统再试试。

7.测试系统

可能需要重新插拔一下 KinectUSB数据线,然后执行如下命令

执行之后,等待十几秒,然后 Ctrl+C中断执行。
执行完成后,执行

之后,会弹出三个界面出来。

参考链接


Kinect V2 深度图与彩色图融合(Ubuntu 14.04)

参考Kinect V2在Ubuntu 14.04系统上的驱动配置与安装在一个全新安装的 Ubuntu 14.04系统中配置完成相关的驱动及其依赖。

Kinect V2深度图与彩色图融合的方式,简单粗暴,由于深度图像是 512*424大小,因此,直接把彩色图像缩放成对应的 512*424,然后像素点一一对应。至于原始大小的彩色图像,那么就是一片像素对应同一个深度即可。

注意,这个方式只适合 Kinect V2,可以理解成 Kinect V2的设计就是这样的,两个设备出厂的时候就校准为这样的输出。

具体的转换代码参考registration.cpp,Registration.cpp,建议直接调用驱动层提供的功能来实现,这样的话,一系列的参数设置可以同步,否则上层每次修改了分辨率等参数的时候,要自己手工修改这些数据。

Python深度图与彩色图融合的例子如下:

 

参考连接


Ubuntu 14.04.5系统上OpenPTrack V1版本双Kinect V2简单校准

参照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简单校准

Ubuntu 14.04.5系统上OpenPTrack V1版本安装配置(Kinect V2)

目前在研究视觉跟踪人的事情,找到的比较好的参考项目就是 OpenPTrack了,截至目前( 2017.8.14OpenPTrackV2版本还没有释放出代码,因此我们只能依旧在 V1版本上进行测试,这个版本目前只能在 Ubuntu 14.04.5系统上运行,其他系统上(比如 Ubuntu 16.04)问题比较多,还是建议在 Ubuntu 14.04.5系统上进行安装。

1.从GitHub上获取项目代码

2.安装ROS

3.安装 OpenPTrack

4.链接 OpenPTrack目录

5. Kinect V2驱动程序安装

重启系统,然后执行如下命令:

6.完整的自动化安装脚本

7.测试系统

可能需要重新插拔一下 KinectUSB数据线,然后执行如下命令

执行之后,等待十几秒,然后 Ctrl+C中断执行。
执行完成后,执行

之后,会弹出三个界面出来。

参考链接


OpenPTrack Installation Guide

Ubuntu 16.04系统Microsoft Common Objects in Context(COCO)数据集在Python环境中的使用

Microsoft Common Objects in Context(简写 COCO)数据集是微软团队提供的一个可以用来进行图像识别,分割,注解等开发工作的数据集。

其官方说明网址:http://mscoco.org/

继续阅读Ubuntu 16.04系统Microsoft Common Objects in Context(COCO)数据集在Python环境中的使用

Caffe训练过程中的train,val,test的区别

valvalidation的简称。
training datasetvalidation dataset都是在训练的时候起作用。
而因为 validation的数据集和 training没有交集,所以这部分数据对最终训练出的模型没有贡献。
validation的主要作用是来验证是否过拟合、以及用来调节训练参数等。

比如训练 0-10000次迭代过程中, trainvalidationloss都是不断降低,
但是从 10000-20000过程中 train loss不断降低, validationloss不降反升。
那么就证明继续训练下去,模型只是对 training dataset这部分拟合的特别好,但是泛化能力很差。
所以与其选取 20000次的结果,不如选择 10000次的结果。
这个过程的名字叫做 Early Stopvalidation数据在此过程中必不可少。

如果跑 caffe自带的训练 demo,你会用到 train_val.prototxt,这里面的 val其实就是 validation
而网络输入的 TEST层,其实就是 validation,而不是 test。你可以通过观察 validationlosstrainloss定下你需要的模型。

但是为什么现在很多人都不用 validation了呢?
我的理解是现在模型中防止过拟合的机制已经比较完善了, Dropout\BN等做的很好了。
而且很多时候大家都用原来的模型进行 fine tune,也比从头开始更难过拟合。
所以大家一般都定一个训练迭代次数,直接取最后的模型来测试。

引用链接


图像识别训练样本集

ImageNet

ImageNet是一个计算机视觉系统识别项目,是目前世界上图像识别最大的数据库。是美国斯坦福的计算机科学家李飞飞模拟人类的识别系统建立的。能够从图片识别物体。目前已经包含14197122张图像,是已知的最大的图像数据库。每年的ImageNet大赛更是魂萦梦牵着国内外各个名校和大型IT公司以及网络巨头的心。图像如下图所示,需要注册ImageNet帐号才可以下载,下载链接为http://www.image-net.org/

继续阅读图像识别训练样本集

Caffe用训练好的caffemodel来进行分类

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.修改文件,使得结果显示在命令行下:

定位到

这个地方,在后面加上几行,如下所示:

就样就可以了。运行不会报错,而且结果会显示在命令行下面。

参考链接


Caffe学习系列(20):用训练好的caffemodel来进行分类