【图像分割和识别】活动形状模型 (ASM) 和活动外观模型 (AAM)(Matlab代码实现)

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

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

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

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

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码实现


💥1 概述

提出了一种主动形状模型分割方案,该方案由最优局部特征引导,与原始公式中的归一阶导数轮廓相反[Cootes and Taylor, 1995, 1999, and 2001]。使用非线性 kNN 分类器代替线性马氏距离来查找地标的最佳位移。对于描述形状的每个地标,在分割优化过程中考虑的每个分辨率级别上,将确定一组不同的最佳特征。特征的选择是自动的,使用训练图像和顺序特征向前和向后选择。新方法在合成数据和四个医学分割任务中进行了测试:在包含230张胸片的数据库中分割左右肺野,并在MRI脑图像的90个切片数据库中分割小脑和胼胝体。在所有情况下,新方法在重叠误差测量(使用配对 T 检验时为 p<0.001)方面产生的结果明显优于原始活动形状模型方案。 

这是Cootes和Taylor引入的基本活动形状模型(ASM)和活动外观模型(AAM)的一个例子,具有多分辨率方法,彩色图像支持和改进的边缘查找方法的2D和3D。对于生物医学对象的自动分割和识别非常有用。
.

基本思想 ASM:
ASM 模型是根据训练图像中手动绘制的轮廓(3D 表面)训练的。ASM 模型使用主成分分析 (PCA) 查找训练数据中的主要变化,这使模型能够自动识别轮廓是否为可能/良好的对象轮廓。此外,ASM模式还包含描述垂直于控制点的线纹理的矩阵,这些矩阵用于校正搜索步骤中的位置。

创建 ASM 模型后,通过查找控制点的最佳纹理匹配来变形初始轮廓。这是一个迭代过程,其中控制点的移动受到 ASM 模型从训练数据中识别为“正常”对象轮廓的限制。
.

基本思想AAM:
PCA用于查找训练数据的平均形状和平均形状的主要变化。找到形状模型后,所有训练数据对象都变形为主形状,并将像素转换为矢量。然后使用 PCA 来查找训练集中的平均外观(强度)和外观方差。
形状和外观模型都与 PCA 合并为一个 AAM 模型。
通过用已知量替换训练集中的参数,可以创建一个模型,该模型针对模型强度和正常图像强度的一定差异提供最佳参数更新。此模型用于搜索阶段。

参考文献:

- Ginneken B. et al. “Active Shape Model Segmentation with Optimal Features”, IEEE Transactions on Medical Imaging 2002.
- T.F. Cootes, G.J Edwards, and C,J. Taylor“Active Appearance Models”, Proc. European Conference on Computer Vision 1998
- T.F. Cootes, G.J Edwards, and C,J. Taylor “Active Appearance Models”, IEEE Transactions on Pattern Analysis and Machine Intelligence 2001

📚2 运行结果

 

 

 

 部分代码:

%Add functions path to matlab search path
functionname='AAM_2D_example.m'; functiondir=which(functionname);
functiondir=functiondir(1:end-length(functionname));
addpath([functiondir 'AAM Functions'])
addpath([functiondir 'Functions'])
addpath([functiondir 'PieceWiseLinearWarp_version2'])
addpath([functiondir 'PieceWiseLinearWarp_version2/functions'])


% Try to compile c-files
cd([functiondir 'PieceWiseLinearWarp_version2/functions'])
try
    mex('warp_triangle_double.c','image_interpolation.c');
catch ME
    disp('compile c-files failed: example will be slow');
end
cd(functiondir);

%% Set options
% Number of contour points interpolated between the major landmarks.
options.ni=20;
% Set normal appearance/contour, limit to +- m*sqrt( eigenvalue )
options.m=3;
% Size of appearance texture as amount of orignal image
options.texturesize=1;
% If verbose is true all debug images will be shown.
options.verbose=true;
% Number of image scales
options.nscales=4;
% Number of search itterations
options.nsearch=15;

%% Load training data
% First Load the Hand Training DataSets (Contour and Image)
% The LoadDataSetNiceContour, not only reads the contour points, but
% also resamples them to get a nice uniform spacing, between the important
% landmark contour points.
TrainingData=struct;
for i=1:10
    is=num2str(i); number = '000'; number(end-length(is)+1:end)=is;
    filename=['Fotos/train' number '.mat'];
    [TrainingData(i).Vertices, TrainingData(i).Lines]=LoadDataSetNiceContour(filename,options.ni,options.verbose);
    filename=['Fotos/train' number '.jpg'];
    
    I=im2double(imread(filename));
    
    if(options.verbose)
        Vertices=TrainingData(i).Vertices;
        Lines=TrainingData(i).Lines;
        t=mod(i-1,4); if(t==0), figure; end
        subplot(2,2,t+1), imshow(I); hold on;
        P1=Vertices(Lines(:,1),:); P2=Vertices(Lines(:,2),:);
        plot([P1(:,2) P2(:,2)]',[P1(:,1) P2(:,1)]','b');
        drawnow;
    end

🎉3 参考文献

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

- Ginneken B. et al. “Active Shape Model Segmentation with Optimal Features”, IEEE Transactions on Medical Imaging 2002.
- T.F. Cootes, G.J Edwards, and C,J. Taylor“Active Appearance Models”, Proc. European Conference on Computer Vision 1998
- T.F. Cootes, G.J Edwards, and C,J. Taylor “Active Appearance Models”, IEEE Transactions on Pattern Analysis and Machine Intelligence 2001

🌈4 Matlab代码实现

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值