【问题标题】:Object classification with Kinect using cascaded classifiers使用级联分类器使用 Kinect 进行对象分类
【发布时间】:2014-03-27 05:54:39
【问题描述】:

我的项目是创建一个软件来识别某些物体,如苹果或硬币等。我想使用 Kinect。我的问题是:我需要像 haar 分类器这样的机器学习算法来识别物体还是 kinect 本身可以做到这一点?

【问题讨论】:

    标签: machine-learning artificial-intelligence kinect haar-classifier


    【解决方案1】:

    Kinect 本身无法识别物体。它会给你一个密集的深度图。然后您可以使用深度特征和一些简单的特征(在您的情况下,也许颜色特征或渐变特征可以完成这项工作)。您输入到分类器(例如 SVM 或随机森林)以训练系统的那些特征。您使用经过训练的模型对新样本进行测试。

    关于 Haar 特征,我认为它们可以胜任,但您需要一个足够大的特征数据库。这完全取决于您要检测的内容。在苹果和硬币的情况下,只要颜色就足够了。

    请参阅this 论文,了解如何使用 Kinect 相机执行人体姿势识别。你只需要注意它们的深度特征和分类器。不要直接应用他们的方法。你的问题比较简单。

    编辑:简单的渐变方向直方图

    梯度方向可以让您大致了解对象的形状(具体而言,它不是形状特征,存在更好的形状特征,但这个计算速度非常快)。

    代码sn-p:

    %calculate gradient
    [dx,dy] = gradient(double(img));
    A = (atan(dy./(dx+eps))*180)/pi;   %eps added to avoid division by zero.
    

    A 将包含每个像素的方向。根据深度值分割原始图像。对于具有相似深度值的段,计算颜色直方图。提取与该区域对应的像素方向,称为A_r。计算一个 9-bin(你可以有更多的 bin。九个 bin 意味着每个 bin 将包含180/9=20 degrees)直方图。连接颜色特征和梯度直方图。这样做以获得足够数量的叶子。然后你可以把它交给一个分类器进行训练。

    编辑:这是对下面评论的回复。

    关于opencv_traincascade中的MaxDepth参数

    文档说,“弱树的最大深度。一个不错的选择是 1,即树桩的情况”。当您执行二进制分类时,它采用以下形式:

    if yourFeatureValue>=learntThresh
       class=1;
    else
       class=0;
    end
    

    上述对单个特征值(标量)执行阈值处理的分类器称为决策树桩。正负类之间只有一个分裂(因此maxDepth 是一个)。例如,它将在以下情况下工作。假设您有一个一维特征:

    f=[1 2 3 4 -1 -2 -3 -4]
    

    前 4 个是 1 类,其余是 0 类。通过将阈值设置为零,决策树桩将在此数据上获得 100% 的准确度。现在,想象一个复杂的特征空间,例如:

    f=[1 2 3 4 5 6 7 8 9 10 11 12];
    

    前 4 和后 4 是 1 类,其余是 0 类。在这里,您不能通过决策树桩获得 100% 的分类。您需要两个阈值/拆分。因此,您可以构建深度值为 2 的树。您将有 2^(2-1)=2 个阈值。对于depth=3,你得到4个阈值,对于depth=4,你得到8个阈值,依此类推。在这里,我假设具有单个节点的树的高度为 1。

    你可能会觉得层数越多,可以达到更高的精度,但随之而来的是过度拟合(以及计算、内存存储等)的问题。因此,您必须为深度设置一个好的值。我通常设置为 3。

    【讨论】:

    • 第一!!就我而言,我想识别一种叶子叫萨曼。我想我需要的特征是:叶子绿色时的大小和颜色,叶子死时的黄色和棕色!我想我需要一个大型数据库。你认为haar分类器是个好主意吗?或者你有更好的选择吗?
    • 你说的。简单的颜色特征是一个更好的主意。寻找颜色直方图。对了,为什么要使用 kinect 进行叶子分类?
    • 暂时没有。那是我的项目。项目是有人在kinect前面展示一片叶子,Kinect判断对象是否是叶子,对象是否是叶子决定对象是否是Saman的叶子。稍后我会做一个可以做的原型那些东西的东西!!出于这个原因,我想知道您是否认为 haar 分类器是一个好主意,或者您认为有更好的选择!你怎么看?
    • @user2676907 我想说,不需要使用 haar 功能。使用深度特征和颜色特征(例如颜色直方图)。
    • oh yaa...你说我不必用 haar 分类器进行训练,只需使用深度特征和颜色特征,我就可以识别叶子 rigth 吗??
    猜你喜欢
    • 2016-12-01
    • 1970-01-01
    • 2020-01-19
    • 2018-05-05
    • 2023-04-08
    • 2014-05-12
    • 2012-04-02
    • 2016-09-25
    相关资源
    最近更新 更多