zoukankan      html  css  js  c++  java
  • OpenTLD源码解析(1)

    Technorati 标签: ,,,
    首先对tldProcessFrame(tld,i)进行分析
     

    1.得到img

     
    image 
     

    2.跟踪过程

     
    image 
     

    3.检测过程

     
    image
     

    4.跟踪结果和检测结果的综合

     
    image 
    检测结果可能有多个,需要bb_cluster_confidence对其进行融合,融合的方法聚类平均。
    得到cBB和cConf。
     
    初始时,默认使用跟踪的结果

    tld.bb(:,I)  = tBB;
    tld.conf(I)  = tConf;
    tld.size(I)  = 1;
    tld.valid(I) = tValid;

    如果跟踪的结果和检测的结果overlap的值小余0.5并且检测的conf值也比跟踪的大,则用检测结果初始化跟踪。

    这保证了当跟踪丢失时,或者跟踪错误时,可以使用检测代替。

    另一种情况,则跟踪有效,将检测结果与跟踪overlap值大于0.7的挑选出来和跟踪结果进行平均,得到最后的结果。

    5.学习过程

    image

    如果结果valid则学习。

    6.关于overlap和conf

    这两个值非常重要,相当于一个标准尺子。

    当你确定一个bb是对的时,与其overlap值越大,则两个是同类的,否则是不同类

    conf是用对检测出的结果,给出一个其正确程度的数字量度。而与其对比的,则为不断

    更新的Y样本和N样本。

    TLD的学习过程,和这两个参数关系很大。

    6.1 overlap

    overlap值的意思如下:

    image

    交集占其并集的百分比,作者程序中这部分是用c写的:

    image

    6.2 conf

    6.2.1 从Patch到Pattern

    从图像中得到patch

    patch = img_patch(img.input,bb(:,i));

    image

    标准话15X15

    patch   = imresize(patch,patchsize); % 'bilinear' is faster

    image

    变成向量,然后使其均值为0;
    pattern = double(patch(:));

    pattern = pattern - mean(pattern);

    6.2.2 计算Pattern到正样本和负样本的距离

    imagetld.nex image tld.pex

    nccP = distance(x(:,i),tld.pex,1); % measure NCC to positive examples
    nccN = distance(x(:,i),tld.nex,1); % measure NCC to negative examples

    NCC距离计算方法:

    NCC距离表示两个归一化矢量之间的夹角取值在(-1,1)之间

    image

    image

    代码如下:

    // correlation normalized
    double ccorr_normed(double *f1,double *f2,int numDim) {
        double corr = 0;
        double norm1 = 0;
        double norm2 = 0;

        for (int i = 0; i<numDim; i++) {
            corr += f1[i]*f2[i];
            norm1 += f1[i]*f1[i];
            norm2 += f2[i]*f2[i];
        }
        // normalization to <0,1>
        return (corr / sqrt(norm1*norm2) + 1) / 2.0;
    }

    此处定义距离时,因为正负样本有多个,定义距离有两种方法:

    % measure Relative Similarity
    dN = 1 - max(nccN);
    dP = 1 - max(nccP);
    % measure Conservative Similarity
    maxP = max(nccP(1:ceil(tld.model.valid*size(tld.pex,2))));
    dP = 1 - maxP;

    6.2.3 确定Pattern接近正样本的程度

    image
    conf(i) = dN / (dN + dP);

    6.2.4 关于isin

    image

     

     

     

     

  • 相关阅读:
    数据库架构的演变
    一个简单的跨库事务问题
    一个优美的架构需要考虑的几个问题
    铁道部新客票系统设计
    详细介绍软件架构设计的三个维度
    单代号网络图
    分库分表带来的完整性和一致性问题
    软件架构设计箴言理解
    设计高并发的电子商店
    mysql之索引补充
  • 原文地址:https://www.cnblogs.com/gghost/p/3555797.html
Copyright © 2011-2022 走看看