【发布时间】:2018-02-18 06:20:56
【问题描述】:
我正在尝试训练 SSD 移动网络检测器来检测显微图像中的细胞核。我在 Ubuntu 16.04 上使用 tensorflow 对象检测 API 和 tensorflow(版本 1.4)的 GPU 实现。我的输入图像是带有注释细胞核的 256x256 RGB jpg 瓷砖。
当我开始训练时,我发现 mAP 有很大的增加,并且在大约 6k 全局步长(批量大小 12)时,我可以检测到大多数细胞核,但对同一细胞核进行了多次检测。
奇怪的是,在这一点之后,mAP 开始下降,并且模型检测到的细胞核越来越少,尽管 TotalLoss 继续下降。在 100k 步时,几乎没有检测到原子核。
我使用 SSD 的标准配置文件,只是我降低了匹配/不匹配框的截止值。如果我不使用此修改,模型将难以检测到任何细胞核,因为它们是小物体并且与它们重叠的框太少。
matcher {
argmax_matcher {
matched_threshold: 0.3
unmatched_threshold: 0.3
ignore_thresholds: false
negatives_lower_than_unmatched: true
force_match_for_each_row: true
}
为什么尽管 TotalLoss 有所提高,但 mAP 和检测精度会随着时间的推移而降低?我对结果的直觉是,检测模型越来越准确(从来没有误报),但敏感度越来越低(很多误报)。
任何建议都非常感谢!
(这里有一些来自 tensorboard 的示例图片)
【问题讨论】:
标签: tensorflow object-detection