• 使用星凸随机超曲面模型对扩展对象和分组目标进行形状跟踪(Matlab代码实现)


     👨‍🎓个人主页:研学社的博客 

    💥💥💞💞欢迎来到本博客❤️❤️💥💥

    🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

    ⛳️座右铭:行百里者,半于九十。

    📋📋📋本文目录如下:🎁🎁🎁

    目录

    💥1 概述

    📚2 运行结果

    🎉3 参考文献

    🌈4 Matlab代码实现


    💥1 概述

    在传统目标跟踪技术中,早期由于传感器分辨率的限制,通常只能用点来描述目标,即目标每一时刻最多只能生成一个量测,只能对目标的质心位置、速度、加速度等进行估计。随着现代传感器技术发展,高分辨率传感器在工程中的应用越来越广泛,导致每个时刻可以得到不止一个量测,而扩展目标跟踪技术正是利用获得的多个量测信息,通过信息融合运算,得到对目标形状和运动状态的估计。

    近些年扩展目标跟踪问题得到了广泛的关注,而对扩展目标形状进行估计是学者们研究的重点,因此,诞生了许多对扩展目标形状建模的方法。例如Baum等将扩展目标建模为随机超曲面模型(Random Hypersurface Model,RHM),该模型的核心思想是假设目标的量测源分布在目标边界的一个缩小版本之上,量测由处于缩小版本边界上的量测源和传感器噪声共同构成。星凸随机超曲面模型主要将径向函数用傅里叶级数展开从而描述目标轮廓,由展开系数实现对扩展目标形状建模,并结合尺度因子缩放扩展目标的形状完成对其表面量测源的建模。随机超曲面模型假设目标产生的每一量测由对应的量测源产生,这种建模方式弊端会造成量测方程具有较强的非线性。

    📚2 运行结果

     部分代码:

    function randomHypersurfaceModel_2011(numberOfMeasurement)
    if nargin ==0
    numberOfMeasurement= 100;
    end
    % Number of Fourier coefficients
    nr_Fourier_coeff = 11;

    % State describtion prior [b0--bn, x, y]
    x = zeros(nr_Fourier_coeff + 2, 1);
    x(1) = 1.5;

    % State covariance prior
    C_x = diag([ones(1, nr_Fourier_coeff).*0.02, 0.3, 0.3]);

    % Measurement noise
    measurementNoise = diag([0.2, 0.2].^2);

    % Scale properties
    scale.mean = 0.7;
    scale.variance = 0.08;

    % Angular resolution for plotting
    phi_vec = [0:0.01:2*pi];

    % Object size
    a = 3;      % -- width of the horizontal rectangle
    b = 0.5;    % | height of the horizontal rectangle
    c = 2;      % | height of the vertical rectangle
    d = 0.5;    % -- width of the vertical rectangle

    sizeObject = [a b c d];

    % Object shape bounds
    objectBounds = [[-d, -c];[d, -c];[d, -b];[a, -b];[a, b];[d, b];[d, c];
        [-d, c];[-d, b];[-a, b];[-a, -b];[-d, -b]]' ./ 2;


    % Main

    % Plot
    h_object = fill(objectBounds(1, :), objectBounds(2, :), [.7 .7 .7]);
    hold on
    xlim([-3 3]);
    ylim([-3 3]);
    axis equal
    xlabel('x-Axis')
    ylabel('y-Axis')
    title('Random Hypersurface Model Simulation')

    for j = 1 : numberOfMeasurement
        
        % Get new measurement
        newMeasurement = getNewMeasurement(sizeObject, measurementNoise);
        
        % Filter step
        [x, C_x] = UKF_FilterStep(x, C_x, newMeasurement, [scale.mean; [0 0]'], ...
            blkdiag(scale.variance, measurementNoise), @f_meas_pseudo_squared, nr_Fourier_coeff);
        
        % Plot
        shape = calcShape(phi_vec, x, nr_Fourier_coeff);
        
        h_measure = plot(newMeasurement(1), newMeasurement(2), '+');
        h_shape =  plot(shape(1, :), shape(2, :), 'g-', 'linewidth', 2);
        legend([h_object, h_measure, h_shape],'Target', 'Measurement', 'Estimated shape')
        drawnow;
        
        if j ~= numberOfMeasurement
            delete(h_shape)
        end

    🎉3 参考文献

    部分理论来源于网络,如有侵权请联系删除。

    [1]李永永,王莉.星凸形随机超曲面粒子扩展目标跟踪滤波器[J].舰船电子工程,2022,42(06):42-46+75.

    🌈4 Matlab代码实现

  • 相关阅读:
    【毕业设计】基于javaEE+原生Servlet+jsp的人力资源管理系统设计与实现(毕业论文+程序源码)——人力资源管理系统
    JavaEE-多线程-Volatile关键字
    Linux: 如何命令行安装R包
    HMM隐马尔可夫模型用于序列标注
    Elasticsearch:Dynamic templates
    基于单片机的智能小夜灯床头灯设计
    第二十九篇 动态组件 - component
    go入门学习笔记
    手机一键换ip地址,解锁网络自由
    使用 calc 计算保险实际收益率
  • 原文地址:https://blog.csdn.net/weixin_46039719/article/details/128044225