๐Ÿ“ [๋ฌธ์ œ ๋ฐ ๋ฐ์ดํ„ฐ] ์ž…์ž ํ˜•ํƒœ ๋ถ„์„ ๋ชจ๋ธ ๊ฐœ๋ฐœ ํ•ด์ปคํ†ค
2022.07.06 - 2023.08.08
0
0
๊ณต์œ 
0
๊ณต์œ 

๐Ÿ’๐Ÿปโ€โ™‚๏ธ [๋Œ€ํšŒ ์•ˆ๋‚ด] ์ž…์ž ํ˜•ํƒœ ๋ถ„์„ ๋ชจ๋ธ ๊ฐœ๋ฐœ ํ•ด์ปคํ†ค

์ž…์ž ๊ฒ€์ถœ ์ •๋ณด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ž…์ž๋“ค์˜ ํ˜•ํƒœ ๋ณ€ํ™”๋ฅผ ๊ณ„๋Ÿ‰์  ์ง€ํ‘œ๋กœ ์‚ฐ์ถœ ๊ฐ€๋Šฅํ•œ ๋ชจ๋ธ ๊ฐœ๋ฐœ

 

๐ŸŸง ๊ณต์ง€์‚ฌํ•ญ

  • ๐Ÿ™Œ๐Ÿผ (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๋ถ„ ์ •๋„๊ฐ€ ์†Œ์š”๋˜๋ฉฐ, ๋งˆ๊ฐ์ผ์— ์ œ์ถœ์ด ๋ชฐ๋ฆฌ๋Š” ๊ฒฝ์šฐ ๊ทธ๋ณด๋‹ค ๋” ์†Œ์š”๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ œ์ถœ ์Šค์ฝ”์–ด๋Š” ๋งˆ๊ฐ ์‹œ๊ฐ„ ์ „์— ์ œ์ถœ์ด ์™„๋ฃŒ๋œ ๊ฒฐ๊ณผ ์Šค์ฝ”์–ด๊ฐ€ ์ธ์ •์ด ๋ฉ๋‹ˆ๋‹ค. (๋งˆ๊ฐ ์ดํ›„์— ํ‰๊ฐ€ ์—ฐ์‚ฐ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ค๋”๋ผ๋„ ๋งˆ๊ฐ ์‹œ๊ฐ„๊นŒ์ง€ ์ œ์ถœํ•œ ๊ฒฝ์šฐ ์ธ์ •)
  • ๊ทธ ์™ธ ๊ทœ์น™ ์ „๋ฐ˜์€ ๋Œ€ํšŒ ์•ˆ๋‚ด ํŽ˜์ด์ง€์— ๊ธฐ์žฌ๋œ ๊ทœ์ • ๋ฐ ๊ทœ์น™์„ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.