我正在尝试训练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
}
Run Code Online (Sandbox Code Playgroud)
即使TotalLoss有所改善,为什么mAP和检测精度会随时间降低?我对结果的直觉是,检测模型变得越来越准确(绝不会出现假阳性),但变得越来越不敏感(很多假阴性)。
任何建议,不胜感激!
(这是张量板的一些示例图像)