Regressing Heatmaps for Multiple Landmark Localization Using CNNs阅读笔记

最早在医学landmark detection里用heatmap的
代码:https://github.com/christianpayer/MedicalDataAugmentationTool-HeatmapRegression
这里的代码是他们之后medical image anaylsis的
tf的看着挺难受的

摘要

作者使用了heatmap来进行landmark detection
提出了SpatialConfiguration-Net(SCN),将局部heatmap和全局空间信息结合

引言

为了能解决假阳性问题,最新(2016)的做法是局部特征+全局landmark空间信息

Heatmap Regression Using CNNs

这里用高斯heatmap,每个landmark对应一个heatmap,最后通过取最大值得到landmark坐标
在这里插入图片描述

Downsampling-Net

交替使用卷积和下采样
缺点:得到的heatmap分辨率低,因此结果不准确

ConvOnly-Net

只使用卷积
但是这里不用步长>1的卷积,也不用池化,因此可能需要更大的卷积核才能达到前面Downsampling-Net的感受野

Unet

与原版Unet相比,将最大池化换成平均池化,将反卷积换成上采样

SCN

首先通过3层卷积,得到每个landmark L i L_i Li的局部的heatmap H i a p p \mathbf{H}_i^{app} Hiapp
尽管局部的heatmap非常准确,但是他们可能分不出来一些相似的点,例如指尖
(如下图,理想情况肯定是只有一个亮的地方)
在这里插入图片描述
作者想要通过结合其他的landmark,来消除这种相似

作用通过较大的卷积核 K i , j K_{i,j} Ki,j来学习 L i L_i Li的相对 L j L_j Lj的位置,将 H j a p p H_j^{app} Hjapp通过 K i , j K_{i,j} Ki,j变成 H i , j t r a n s H_{i,j}^{trans} Hi,jtrans,即
H i , j t r a n s = H j a p p ∗ K i , j H_{i,j}^{trans} = H_j^{app} *K_{i,j} Hi,jtrans=HjappKi,j
其中 ∗ * 表示卷积

之后将 H i , j t r a n s H_{i,j}^{trans} Hi,jtrans相加
H i a c c = ∑ j = 1 n H i , j t r a n s H_i^{acc} = \sum_{j=1}^{n}H_{i,j}^{trans} Hiacc=j=1nHi,jtrans
最后按元素乘,得到最终的heatmap:
H i = H i a p p ⊙ H i a c c H_i = H_i^{app} \odot H_i^{acc} Hi=HiappHiacc

在这里插入图片描述
spatial configuration block在一个较低的分辨率上进行,因为只需要相对位置信息,不需要太高的分辨率
最后在按元素乘之前会上采样,保证分辨率一样

实验

数据集

作者采用了一个2d的和一个3d的数据集
2d:895张平均尺寸 1563 × 2169 1563\times 2169 1563×2169的图,37个landmark,假设手腕 50 m m 50mm 50mm
3d:60张MR T1, 294 × 512 × 72 294 \times 512 \times 72 294×512×72,28个landmark, 0.45 × 0.45 × 0.9 m m 3 0.45 \times 0.45 \times 0.9 mm^3 0.45×0.45×0.9mm3

模型

ConvOnly-Net

6个卷积层,卷积核大小(2d: 11 × 11 11\times 11 11×11, 3d: 5 × 5 × 5 5 \times 5 \times 5 5×5×5)

Downsampling-Net

两次卷积+一次池化,最后一个模块后面又两个额外的卷积层
2d: 5 × 5 5\times 5 5×5卷积核,2个下采样模块
3d: 3 × 3 × 3 3\times 3 \times 3 3×3×3卷积核,层下采样

UNet

2d: 3 × 3 3\times 3 3×3卷积,4层下采样
3d: 3 × 3 × 3 3\times 3\times 3 3×3×3卷积,3层下采样

SCN

2d:前面3层卷积是 5 × 5 5\times 5 5×5的,后面是 15 × 15 15\times 15 15×15卷积以及8倍下采样(应该是spatial configuration block之前下采样)
3d:前面3层卷积是 3 × 3 × 3 3\times 3\times 3 3×3×3的,后面是9\times 9\times 5$卷积以及4倍下采样

实验结果

实验分两部分,一个是完整的数据集,
另一个是再2d数据集上,只使用10张数据

red表示reduce
可以看到再完整数据集上,他们的模型最轻,但是效果其实并不是最好的
再reduce上,他们效果比Unet好
在这里插入图片描述
3d数据集上,他们效果最好
在这里插入图片描述

CAPM, or the Capital Asset Pricing Model, is a widely used financial model that quantifies the relationship between an asset's expected return and its risk. It provides a framework for estimating the expected return on an investment by taking into account its beta, which measures the asset's sensitivity to market movements. In MATLAB, you can calculate the CAPM using the following steps: 1. Gather historical data for the asset's returns and a market index (such as S&P 500). 2. Calculate the returns for both the asset and the market index. 3. Estimate the asset's beta by regressing the asset's returns against the market index returns using the "regress" function in MATLAB. 4. Once you have the beta, estimate the asset's expected return using the CAPM formula: Expected Return = Risk-Free Rate + Beta * (Market Return - Risk-Free Rate). Here is some example code in MATLAB to calculate the CAPM: ```matlab % Step 1: Gather historical data assetReturns = [0.05, 0.03, -0.02, 0.04, 0.01]; % Example asset returns marketReturns = [0.06, 0.04, 0.01, 0.02, -0.03]; % Example market returns % Step 2: Calculate returns assetReturns = diff(assetReturns); marketReturns = diff(marketReturns); % Step 3: Estimate beta [beta, ~] = regress(assetReturns', [ones(size(marketReturns')), marketReturns']); % Step 4: Calculate expected return riskFreeRate = 0.02; % Example risk-free rate marketReturn = mean(marketReturns); expectedReturn = riskFreeRate + beta * (marketReturn - riskFreeRate); disp(['Estimated Beta: ', num2str(beta)]); disp(['Expected Return: ', num2str(expectedReturn)]); ``` Note that this is a simplified example, and you may need to adjust it depending on your specific requirements and data availability.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Nightmare004

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值