EchoNet-Dynamic consists of three key components:
EchoNet-Dynamic was trained on a dataset of 10,030 echocardiogram videos obtained from routine clinical practice at Stanford Medicine. The model’s performance was evaluated on an unseen test dataset, achieving a mean absolute error of 4.1%, root mean squared error of 5.3%, and R² of 0.81 compared to human annotations. These results demonstrate that EchoNet-Dynamic’s variance is comparable to or less than that of human experts.
In addition to its robust performance on the Stanford test dataset, EchoNet-Dynamic was tested on an external dataset from Cedars-Sinai Medical Center, achieving a mean absolute error of 6.0%, root mean squared error of 7.7%, and R² of 0.77. This cross-hospital reliability highlights the model’s potential for broader clinical application.
To promote further innovation, the authors have made publicly available a large dataset of 10,030 annotated echocardiogram videos. This dataset includes expert human tracings, volume estimates, and calculations of the left ventricular EF, providing a valuable resource for the medical machine learning community.
In this project, I reproduced the EF prediction model and the segmentation model from EchoNet-Dynamic. I finetuned the EF prediction model on our dataset. Due to data imbalance, I manually collected more rare data to improve model performance.
Without segmentation:
test (one clip) R2: 0.937 (0.889 - 0.962)
test (one clip) MAE: 2.66 (2.18 - 3.19)
test (one clip) RMSE: 3.38 (2.74 - 4.02)
test (all clips) R2: 0.927 (0.882 - 0.952)
test (all clips) MAE: 2.83 (2.28 - 3.39)
test (all clips) RMSE: 3.63 (3.01 - 4.21)
With segmentation:
(To reproduce, use the for_R
directory and run the R script.)
> summary(abs(dataNoAugmentation$V3 - dataNoAugmentation$EF))
Min. 1st Qu. Median Mean 3rd Qu. Max.
0.0546 0.9325 2.4867 2.8639 4.2843 10.2367
> rmse(dataNoAugmentation$V3,dataNoAugmentation$EF)
[1] 3.6722
> summary(modelNoAugmentation)$r.squared
[1] 0.9285011
summary(abs(dataNoAugmentation$V3 - dataNoAugmentation$EF))
# Mean of 4.216
rmse(dataNoAugmentation$V3,dataNoAugmentation$EF)
## 5.56
summary(modelNoAugmentation)$r.squared
# 0.79475
Our model outperforms the paper’s results for the A4C EF task without segmentation.
Without segmentation:
test (one clip) R2: 0.934 (0.908 - 0.958)
test (one clip) MAE: 2.75 (2.04 - 3.54)
test (one clip) RMSE: 3.73 (2.54 - 4.91)
test (all clips) R2: 0.931 (0.906 - 0.954)
test (all clips) MAE: 2.85 (2.14 - 3.67)
test (all clips) RMSE: 3.81 (2.71 - 4.89)
With segmentation:
> summary(abs(dataNoAugmentation$V3 - dataNoAugmentation$EF))
Min. 1st Qu. Median Mean 3rd Qu. Max.
0.0392 1.2950 2.4707 3.0739 4.4038 13.9361
> rmse(dataNoAugmentation$V3,dataNoAugmentation$EF)
[1] 4.074103
> summary(modelNoAugmentation)$r.squared
[1] 0.9306509
summary(abs(dataNoAugmentation$V3 - dataNoAugmentation$EF))
# Mean of 4.216
rmse(dataNoAugmentation$V3,dataNoAugmentation$EF)
## 5.56
summary(modelNoAugmentation)$r.squared
# 0.79475
Our model outperforms the paper’s results for the A2C EF task without segmentation.
I conducted 9-fold cross-validation, with R² variations within ±0.04. Hyperparameter tuning showed that unfreezing 3 layers performed best.
I focused on videos with a lower chamber view and used several data augmentation techniques. The best method was training from the last best point.
Three folders contain almost all data (excluding echonet videos):
Old videos are in EchoNet-A2C/crop_clear_old
and EchoNet-A4C/crop_clear_old
, while new EF videos and old videos are in EchoNet-A2C/crop_clear_all
and EchoNet-A4C/crop_clear_all
.
Echonet dataset: Echonet Dataset
Refer to this paper for fine-tuning models.
test (one clip) R2: 0.784 (0.354 - 0.923)
test (one clip) MAE: 7.88 (5.18 - 11.01)
test (one clip) RMSE: 10.24 (6.68 - 13.61)
test (all clips) R2: 0.785 (0.326 - 0.923)
test (all clips) MAE: 8.10 (5.51 - 10.96)
test (all clips) RMSE: 10.24 (6.86 - 13.51)
test (one clip) R2: 0.818 (0.632 - 0.901)
test (one clip) MAE: 6.27 (4.46 - 8.19)
test (one clip) RMSE: 8.34 (6.34 - 10.11)
test (all clips) R2: 0.710 (0.331 - 0.915)
test (all clips) MAE: 6.71 (4.29 - 9.74)
test (all clips) RMSE: 10.55 (5.74 - 15.24)