Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dice / Jaccard implementation #96

Open
bonlime opened this issue Sep 28, 2020 · 0 comments
Open

Dice / Jaccard implementation #96

bonlime opened this issue Sep 28, 2020 · 0 comments

Comments

@bonlime
Copy link
Owner

bonlime commented Sep 28, 2020

Текущую реализацию 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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant