๐๐ปโโ๏ธ [๋ํ ์๋ด] ์ ์ ํํ ๋ถ์ ๋ชจ๋ธ ๊ฐ๋ฐ ํด์ปคํค
์ ์ ๊ฒ์ถ ์ ๋ณด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ ์๋ค์ ํํ ๋ณํ๋ฅผ ๊ณ๋์ ์งํ๋ก ์ฐ์ถ ๊ฐ๋ฅํ ๋ชจ๋ธ ๊ฐ๋ฐ
๐ง ๊ณต์ง์ฌํญ
- ๐๐ผ (8/8) ์ด๋ฒ ์
์ ํํ ๋ถ์ ๋ชจ๋ธ ๊ฐ๋ฐ ํด์ปคํค์ด 18:00๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ํ๊ฐ ์ข
๋ฃ๋์์ต๋๋ค! ๐๐ผ
์ฐธ์ฌํด์ฃผ์ ๋ชจ๋ ๋ถ๋ค ์๊ณ ๋ง์ผ์ จ์ผ๋ฉฐ, ๊ฐ ํ๊ป์๋ ๋ฆฌ๋๋ณด๋ ํญ์์ Total ์ค์ฝ์ด ๋ฐ public ์ค์ฝ์ด๋ฅผ ๊ฐ๊ฐ ํ์ธํ์ค ์ ์์ผ๋ ์ฐธ๊ณ ๋ถํ๋๋ฆฝ๋๋ค - (7/15) ๊ธฐ์กด์ ์ ๊ณต๋ ๋ฒ ์ด์ค๋ผ์ธ๊ณผ ๊ด๋ จํ ๋ฌธ์์ฌํญ์ด ์ ์๋์ด ์ด๋ฅผ ํด๊ฒฐํ๊ณ ์ 7/15 ๊ธฐ์ค์ผ๋ก ์ ์ฒด baseline์ด ํ ๋ฒ์ ์คํ๋ ์ ์๋๋ก ์์ ๋์์ต๋๋ค.
- (7/28) mmcw ๋ฒ์ ์ด ์ ๋ฐ์ดํธ๋ ๊ฒ์ ํ์ธํ์ฌ ๋ฒ ์ด์ค๋ผ์ธ ์์ ํ ์ ๋ฐ์ดํธ ์กฐ์นํ์์ต๋๋ค.
๐ ๋ํ ์ฃผ์
์ ์ฒด์์ ๋ ๋ค๋๋ ์ ์๋ฅผ ์ดฌ์ํ ํ์์ ๋ฐํ์ผ๋ก ๊ฐ ์ ์์ ๊ทธ ํ์์ ์ต๋ํ ์ ๊ฒ์ถํด๋ด๋ Instance Segmentation ๋ชจ๋ธ์ ๋ง๋๋ ๊ฒ์ด ์ด๋ฒ ๋ํ์ ๋ชฉํ์ ๋๋ค.
์ ์๋ค์ ํ์์ ๊ท ์ผํ์ง ์๊ณ ์ ์ฒด์์์ ์ดฌ์๋ ๊ฒฐ๊ณผ๋ฌผ์ธ ๋งํผ ํ๋ฉด์ผ๋ก๋ถํฐ์ ๊ฑฐ๋ฆฌ์ ๋ฐ๋ผ ์ ๋ช ๋ ๋ํ ์ฐจ์ด๊ฐ ์์ผ๋ฉฐ, ์๋ก ๊ฒน์ณ์ ธ ์๋ ๊ฒฝ์ฐ๋ ์กด์ฌํฉ๋๋ค.
์ด๋ฌํ ๋์ ์ ์ธ ์กฐ๊ฑด ์์์ ๊ฐ์ฒด์ ํ์์ ์ ์ก์๋ด๋ ๊ฒ์ด ์ด๋ฒ ๊ณผ์ ์ ํต์ฌ์ ๋๋ค!
๐ ์งํ ์ผ์
์ด๋ฒ ๋ํ์ ์ผ์ ์ ์๋์ ๊ฐ์ต๋๋ค :
- ์ฐธ๊ฐ์ ์ ์ (๋ํ ๊ธฐ๊ฐ ์ฐธ๊ฐ์ ์์ ๋ชจ์ง) : 6/27 (์) ~ 8/8 (์)
- ๋ํ ๊ธฐ๊ฐ : 7/7 (๋ชฉ) 8:00 ~ 8/8 (์) 18:00
- ๊ฒฐ๊ณผ๋ฌผ ๊ฒ์ฆ ๊ธฐ๊ฐ : 8/9 (ํ) ~ 8/18 (๋ชฉ) *๋ฆฌ๋๋ณด๋ ์์๋ฅผ ๊ธฐ์ค์ผ๋ก ์ ์ ํ๋ณดํ์ ํํ์ฌ ๊ฐ๋ณ ์ฐ๋ฝ ํ ์งํ๋ฉ๋๋ค
- ์ ์์ ๊ฒฐ๊ณผ ๋ฐํ : 8/19 (๊ธ) *๋ณ๋์ ์์์ ์์
์ํํ ๋ํ ์ด์์ ์ํ์ฌ ์๊ธฐ ์ผ์ ์ ๋ณ๋๋ ์ ์์ผ๋ฉฐ, ๋ณ๊ฒฝ ์ ๊ณต์ง์ฌํญ์ ํตํด ์๋ด๋๋ฆฝ๋๋ค
๐ฏ ํ๊ฐ ์งํ
๋ณธ ๋ํ์ ํ๊ฐ์๋ IoU๋ฅผ ๋ฐ์ํ ์ปค์คํ F1-Score๊ฐ ํ์ฉ๋ฉ๋๋ค. ์์์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๊ฐ ํญ๋ชฉ๋ณ ๊ฐ๋ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- TP: ์ ๋ต ์ค๋ธ์ ํธ ๊ฐ์ด๋ฐ ์์ธก ๊ฒฐ๊ณผ๊ฐ ์๋ ์ค๋ธ์ ํธ์ ์
- ๊ฐ ์ค๋ธ์ ํธ๋ง๋ค ์ต์ IoU(=0.1)๋ฅผ ๋์ ์์ธก ๊ฒฐ๊ณผ๋ค์ ํด๋น ์ค๋ธ์ ํธ์ ๋ํ ์์ธก์ผ๋ก ํ ๋นํฉ๋๋ค.
- ํ ๋น๋ ์์ธก ๊ฐ์ด๋ฐ ํด๋น ์ค๋ธ์ ํธ์์ IoU๊ฐ ๊ฐ์ฅ ํฐ ์์ธก ๊ฒฐ๊ณผ๋ฅผ ํด๋น ์ค๋ธ์ ํธ์ ๋ํ ์ต์ข ์์ธก์ผ๋ก ์ ํฉ๋๋ค.
- ์ต์ข ์์ธก๊ณผ ์ค๋ธ์ ํธ ์ฌ์ด์ IoU๊ฐ์ ํด๋น ์ค๋ธ์ ํธ์ ๋ํ ์์ธก IoU๊ฐ์ผ๋ก ์ฌ์ฉํฉ๋๋ค.
- IoU๊ฐ ์ต์(0.1)๋ฅผ ๋๋ ์์ธก ๊ฒฐ๊ณผ๊ฐ ์๋ ์ค๋ธ์ ํธ๋ TP์ ๊ฐ์ฐ๋์ง ์์ต๋๋ค. (FN)
- IOU_TP: TP์ธ ์ค๋ธ์ ํธ๋ค ๊ฐ๊ฐ๋ง๋ค IoU๊ฐ ์ต๋์ธ ์์ธก ๊ฒฐ๊ณผ 1๊ฐ์์ IoU ๊ฐ์ ๋๋ค.
- FP: ์์ธก ๊ฒฐ๊ณผ ๊ฐ์ด๋ฐ โํน์ ํ ์ค๋ธ์ ํธ์ IoU๊ฐ ์ต์ ๊ธฐ์ค(=0.1) ์ด์์ด์ง๋ง ํ ๋น๋์ง ์์โ ์์ธก ๊ฒฐ๊ณผ ์๋ฅผ ์๋ชป๋ ์์ธก์ผ๋ก FP์ ๊ฐ์ฐํฉ๋๋ค. ์๋ฅผ ๋ค์ด ํ๋์ ์ค๋ธ์ ํธ์ ๋ํ์ฌ ๋ ๊ฐ์ ์์ธก ๊ฒฐ๊ณผ๊ฐ ํ ๋น๋๋ ๊ฒฝ์ฐ, IoU๊ฐ ์ต๋์ธ ๊ฒฐ๊ณผ๋ TP๋ก ๋ค์ด๊ฐ์ง๋ง ๊ทธ๋ ์ง ์์ ๊ฒฐ๊ณผ๋ FP๋ก ๋ค์ด๊ฐ๋๋ค. FP๋ฅผ ์ค์ด๊ธฐ ์ํด์๋ Non-Max Suppression ํน์ ๊ทธ์ ์ ์ฌํ ํํฐ๋ง์ ํตํ์ฌ ๋ถํ์ํ ์ค๋ณต ์์ธก์ ์ค์ฌ์ผ ํฉ๋๋ค.
- FN: ์ค๋ธ์ ํธ ๊ฐ์ด๋ฐ ์ต์(0.1)๋ฅผ ๋๋ ์์ธก ๊ฒฐ๊ณผ๊ฐ ์๋ ์ค๋ธ์ ํธ๋ ์์ธก์ด ์ด๋ฃจ์ด์ง์ง ์์ ์ค๋ธ์ ํธ๋ก ๊ฐ์ฃผํ์ฌ FN์ผ๋ก ๋ถ๋ฅํฉ๋๋ค.
- โป ๋ชจ๋ ์์ธก ๊ฒฐ๊ณผ๋ IoU๊ฐ ๊ฐ์ฅ ํฐ ํ๋์ ์ค๋ธ์ ํธ์๋ง ํ ๋น๋ฉ๋๋ค. ๋ฐ๋ผ์ ํ๋์ ์ค๋ธ์ ํธ๊ฐ ์ฌ๋ฌ ์์ธก ๊ฒฐ๊ณผ๋ฅผ ํ ๋น๋ฐ์ ์๋ ์์ง๋ง ํ๋์ ์์ธก ๊ฒฐ๊ณผ๊ฐ ์ฌ๋ฌ ์ค๋ธ์ ํธ์ ํ ๋น๋๋ ์ผ์ ์์ต๋๋ค.
- โป ์๋ฌด ์ค๋ธ์ ํธ์๋ ํ ๋น๋์ง ์์(min IoU_obj < 0.1) ์์ธก ๊ฒฐ๊ณผ๋ ์ ์ ๊ณ์ฐ์ ํฌํจ๋์ง ์์ต๋๋ค.
์ค์ ์ฌ์ฉ๋๋ ์ปค์คํ
์ค์ฝ์ด ์ฝ๋๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ์ฐธ๊ณ ๋ฐ๋๋๋ค. (๋ค์ด๋ก๋)
import json
import numpy as np
import pycocotools.mask as mask
def f1_with_iou(gt, pr, th=0.01): # ์ค์ ์ฌ์ฉ์์๋ th=0.1 ์
๋ ฅ
tp_iou = []
tp = []
fp = []
fn = []
for img in gt['images']:
gt_img = [i for i in gt['annotations'] if i['image_id'] == img['id']]
pr_img = [i for i in pr['annotations'] if i['image_id'] == img['id']]
# ํด๋น GT์ ๋ํ ์์ธก์ด ์๋ ๊ฒฝ์ฐ
if len(pr_img) > 0:
ious = [mask.iou([i['segmentation']], [j['segmentation']], [0]) for i in gt_img for j in pr_img]
ioumat = np.array(ious).reshape(len(gt_img), -1) # gt_dim:0, pr_dim:1
# pr์ iou๊ฐ ์ต๋์ธ gt์ ํ ๋น
np.argmax(ioumat, axis=0)
ioumat = ioumat * (ioumat.max(axis=0, keepdims=True) == ioumat)
# TP_IoU / FP / FN
max_vals = np.amax(ioumat, axis=1)
tp_iou.extend([i for i in max_vals if i != 0])
tp.append(sum(max_vals != 0))
fp.extend([sum(i > th) -1 for i in ioumat if sum(i > th) >= 2])
fn.append(sum(max_vals == 0))
# ํด๋น GT์ ๋ํ ์์ธก์ด ์๋ ๊ฒฝ์ฐ ๋ชจ๋ object๋ฅผ FN์ ์ถ๊ฐ
else:
fn.append(len(gt_img))
tp_iou = np.sum(tp_iou)
tp = np.sum(tp)
fp = np.sum(fp)
fn = np.sum(fn)
precision = tp_iou / (tp + fp)
recall = tp_iou / (tp + fn)
f1_score = (2 * precision * recall) / (precision + recall)
return f1_score
โ๏ธ ๋ํ ๊ท์น ๋ฐ ๊ธฐํ
- ์ด๋ฒ ๋ํ๋ Public ์ค์ฝ์ด์ Private ์ค์ฝ์ด ํฉ์ฐ์ ์๋ก ์ต์ข
์์๊ฐ ๊ฒฐ์ ๋ฉ๋๋ค
- Public ๋ฐ private์ ๋น์จ์ 1:1
- ๋ํ๊ธฐ๊ฐ ์ค์๋ public ์ค์ฝ์ด๋ง ๋ฆฌ๋๋ณด๋ ์์ ํ์ถ
- ๋ํ ์ข ๋ฃ์์ ์ดํ public ๋ฐ private์ ํฉ์ฐ์ ์ ๋ฐ ๊ทธ์ ๋ฐ๋ฅธ ์ต์ข ์์ ๊ณต๊ฐ
- ์ ์ถ ๊ฒฐ๊ณผ๋ก๋ถํฐ ํ๊ฐ์ค์ฝ์ด๋ฅผ ์์ฑํ๋ ๋ฐ์๋ ์ฝ 2~3๋ถ ์ ๋๊ฐ ์์๋๋ฉฐ, ๋ง๊ฐ์ผ์ ์ ์ถ์ด ๋ชฐ๋ฆฌ๋ ๊ฒฝ์ฐ ๊ทธ๋ณด๋ค ๋ ์์๋ ์ ์์ต๋๋ค.
- ์ ์ถ ์ค์ฝ์ด๋ ๋ง๊ฐ ์๊ฐ ์ ์ ์ ์ถ์ด ์๋ฃ๋ ๊ฒฐ๊ณผ ์ค์ฝ์ด๊ฐ ์ธ์ ์ด ๋ฉ๋๋ค. (๋ง๊ฐ ์ดํ์ ํ๊ฐ ์ฐ์ฐ ๊ฒฐ๊ณผ๊ฐ ๋์ค๋๋ผ๋ ๋ง๊ฐ ์๊ฐ๊น์ง ์ ์ถํ ๊ฒฝ์ฐ ์ธ์ )
- ๊ทธ ์ธ ๊ท์น ์ ๋ฐ์ ๋ํ ์๋ด ํ์ด์ง์ ๊ธฐ์ฌ๋ ๊ท์ ๋ฐ ๊ท์น์ ๋ฐ๋ฆ ๋๋ค.