You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Текущую реализацию Dice/Jaccard я подрезал у bloodaxe и там есть один нюанс, на который раньше не обращал внимания. Они считаются per-batch, а не per-image. Такой подход лучше подходит для многоклассовой сегментации как на каком-нибудь coco. поскольку Dice/Jaccard не определен для случая пустого Ground Truth, если на картинке нет какого-то класса, то предсказание для всего этого класса нужно выкинуть из подсчета лосса (потому что там dice будет 0, если хотя бы один пиксель предсказан, что понятное дело не правильно. это правда можно пофиксить поднимая epsilon, так сейчас так и сделано, eps стоит 1, но его в теории можно поставить сильно выше. например 50. тогда per-image будет работать нормально). В случае если считать per-batch, то если класс есть хоть где-то в батче, то можно уже посчитать Dice, и не выкидывать пиксели, что гораздо лучше. Проблема в том, что такой подход отдаёт сильное преимущество большим объектам и даёт смещенную оценку для per-image IoU. сталкивался с этим еще весной когда локальный скор для OpenCities был значительно выше чем на паблике. только сейчас осознал с чем это связано.
Предлагается:
Посмотреть как dice реализован в других местах и возможно добавить флаг для подсчета per-image.
The text was updated successfully, but these errors were encountered:
Текущую реализацию Dice/Jaccard я подрезал у bloodaxe и там есть один нюанс, на который раньше не обращал внимания. Они считаются
per-batch
, а неper-image
. Такой подход лучше подходит для многоклассовой сегментации как на каком-нибудь coco. поскольку Dice/Jaccard не определен для случая пустого Ground Truth, если на картинке нет какого-то класса, то предсказание для всего этого класса нужно выкинуть из подсчета лосса (потому что там dice будет 0, если хотя бы один пиксель предсказан, что понятное дело не правильно. это правда можно пофиксить поднимая epsilon, так сейчас так и сделано, eps стоит 1, но его в теории можно поставить сильно выше. например 50. тогда per-image будет работать нормально). В случае если считать per-batch, то если класс есть хоть где-то в батче, то можно уже посчитать Dice, и не выкидывать пиксели, что гораздо лучше. Проблема в том, что такой подход отдаёт сильное преимущество большим объектам и даёт смещенную оценку для per-image IoU. сталкивался с этим еще весной когда локальный скор для OpenCities был значительно выше чем на паблике. только сейчас осознал с чем это связано.Предлагается:
Посмотреть как dice реализован в других местах и возможно добавить флаг для подсчета per-image.
The text was updated successfully, but these errors were encountered: