Skip to content

Latest commit

ย 

History

30 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๋”ฅ์†Œ๊ฐ ์–ผ๊ตด๊ฐ€๋“œ

์‚ฌ์šฉ์ž๊ฐ€ ๋“ฑ๋กํ•œ ์–ผ๊ตด์„ ๊ธฐ์ค€์œผ๋กœ ๊ณต๊ฐœ ์›น ํ›„๋ณด์—์„œ ๊ฐ™์€ ์‚ฌ๋žŒ์„ ๊ณจ๋ผ๋‚ด๊ณ , ํ›„๋ณด ์˜์ƒ์˜ ๋”ฅํŽ˜์ดํฌ ์œ„ํ—˜์„ ์ˆ˜์น˜์™€ ๊ทผ๊ฑฐ๋กœ ๋ณด์—ฌ์ฃผ๊ธฐ ์œ„ํ•œ ๋ชจ๋ธ๋งยทAPI ํ”„๋กœ์ ํŠธ๋‹ค.

ํ˜„์žฌ ๋ฐ”๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฒ”์œ„๋Š” ArcFace ์–ผ๊ตด ๋™์ผ์ธ ๋น„๊ต, Google Vision ๋˜๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ „๋‹ฌํ•œ ํ›„๋ณด URL์˜ ์•ˆ์ „์„ฑ ๊ฒ€์‚ฌ, ํ›„๋ณด ์ด๋ฏธ์ง€ ArcFace ์„ ๋ณ„, EfficientNet-B4 ONNX ์ด๋ฏธ์ง€ ๋ถ„์„, ์งง์€ ์˜์ƒ 16ํ”„๋ ˆ์ž„ ๋ถ„์„ API, scan_id๋กœ ์ง„ํ–‰๋ฅ ์„ ์กฐํšŒํ•˜๋Š” ๋น„๋™๊ธฐ ์ด๋ฏธ์ง€ ํ›„๋ณด API๋‹ค. Google Vision Web Detection ํ˜ธ์ถœ์€ ๋”ฅ์†Œ๊ฐ ์„œ๋ฒ„ Draft PR #55์— ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์œผ๋ฉฐ ์‹ค์ œ ํ‚ค E2E ๊ฒ€์ฆ๊ณผ ๊ฒ€์ƒ‰ ํ›„๋ณด ์˜์ƒ์˜ ์ž๋™ ๋‹ค์šด๋กœ๋“œ๋Š” ๋‚จ์•„ ์žˆ๋‹ค. ํ˜„์žฌ ๋ชจ๋ธ์€ ์šด์˜ยท๋ณธ์ธ์ธ์ฆยท์ž๋™ ์ฐจ๋‹จ ์šฉ๋„๋กœ ์Šน์ธ๋˜์ง€ ์•Š์•˜๋‹ค.

30์ดˆ ์š”์•ฝ

๋”ฅ์†Œ๊ฐ์ด ์ตœ์ข…์ ์œผ๋กœ ๋งŒ๋“ค๋ ค๋Š” ํ๋ฆ„์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

๋ณธ์ธ ์–ผ๊ตด 3์žฅ ๋“ฑ๋ก
        โ†“
Google Cloud Vision์œผ๋กœ ๊ณต๊ฐœ ์ด๋ฏธ์ง€ยท๋ฐœ๊ฒฌ ํŽ˜์ด์ง€ ํ›„๋ณด ์ˆ˜์ง‘
        โ†“
ArcFace: ์ •๋ง ๋ณธ์ธ ์–ผ๊ตด๊ณผ ๋น„์Šทํ•œ ํ›„๋ณด์ธ์ง€ ์„ ๋ณ„
        โ†“
EfficientNet-B4: ํ›„๋ณด ์˜์ƒ์ด ๋”ฅํŽ˜์ดํฌ์ธ์ง€ ๋ถ„์„
        โ†“
์–ผ๊ตด ์œ ์‚ฌ๋„ + ๋”ฅํŽ˜์ดํฌ ์œ„ํ—˜๋„ + ๋ฐœ๊ฒฌ ์œ„์น˜๋ฅผ ํ™”๋ฉด์— ํ‘œ์‹œ
        โ†“
์‚ฌ์šฉ์ž๊ฐ€ ์ฆ๊ฑฐ๋ฅผ ํ™•์ธํ•˜๊ณ  ์‹ ๊ณ ยท์ œ์™ธ ์—ฌ๋ถ€ ๊ฒฐ์ •

๋ชจ๋ธ์˜ ์ˆ˜์น˜๋Š” ํŒ๋‹จ์„ ๋•๋Š” ๊ทผ๊ฑฐ๋‹ค. ์–ผ๊ตด ์œ ์‚ฌ๋„๋งŒ์œผ๋กœ ๋”ฅํŽ˜์ดํฌ๋ผ๊ณ  ๊ฒฐ๋ก  ๋‚ด๋ฆฌ๊ฑฐ๋‚˜, ๋ชจ๋ธ ๊ฒฐ๊ณผ๋งŒ์œผ๋กœ ๊ฒŒ์‹œ๋ฌผ์„ ์ž๋™ ์‚ญ์ œํ•˜์ง€ ์•Š๋Š”๋‹ค.

์™œ ๋งŒ๋“ค์—ˆ๊ณ , ๋ฌด์—‡์„ ํ•ด๊ฒฐํ–ˆ๋‚˜์š”?

์งˆ๋ฌธ ๋‹ต
์™œ ํ–ˆ๋‚˜? ์›น ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ์—๋Š” ๋ณธ์ธ์ด ์•„๋‹Œ ์–ผ๊ตด๊ณผ ์‹ค์ œยท์กฐ์ž‘ ์—ฌ๋ถ€๋ฅผ ๋ชจ๋ฅด๋Š” ์ด๋ฏธ์ง€๊ฐ€ ํ•จ๊ป˜ ์„ž์ด๋ฏ€๋กœ, ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๋ฅผ ๊ทธ๋Œ€๋กœ ํ”ผํ•ด ํ›„๋ณด๋กœ ๋ณด์—ฌ์ค„ ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
์–ด๋–ป๊ฒŒ ํ–ˆ๋‚˜? Google Cloud Vision์€ ๊ณต๊ฐœ ํ›„๋ณด URL๊ณผ ๋ฐœ๊ฒฌ ํŽ˜์ด์ง€๋ฅผ ๋ชจ์œผ๊ณ , ArcFace๊ฐ€ ๋“ฑ๋ก ์–ผ๊ตด๊ณผ ๊ฐ™์€ ์‚ฌ๋žŒ ํ›„๋ณด๋ฅผ ์„ ๋ณ„ํ•œ ๋’ค, EfficientNet-B4 ONNX๊ฐ€ ์ด๋ฏธ์ง€ยท์˜์ƒ์˜ ๋”ฅํŽ˜์ดํฌ ์˜์‹ฌ ์›์ ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค.
๋ฌด์—‡์„ ํ•ด๊ฒฐํ–ˆ๋‚˜? ๊ฒ€์ƒ‰ยท๋™์ผ์ธ ์„ ๋ณ„ยท๋”ฅํŽ˜์ดํฌ ๋ถ„์„์„ scan_id ์ž‘์—… ํ•˜๋‚˜๋กœ ์—ฐ๊ฒฐํ•˜๊ณ , ํด๋ผ์ด์–ธํŠธ๊ฐ€ ํ™•๋ฅ ๋กœ ์˜คํ•ดํ•˜์ง€ ์•Š๋Š” ํ™”๋ฉด์šฉ API ์‘๋‹ต์„ ๋งŒ๋“ค์—ˆ๋‹ค.
์–ด๋–ป๊ฒŒ ํ™œ์šฉํ•˜๋‚˜? ๋”ฅ์†Œ๊ฐ ์„œ๋ฒ„๊ฐ€ ๋ชจ๋ธ API๋ฅผ ๋‚ด๋ถ€ ํ˜ธ์ถœํ•˜๊ณ , ์•ฑ์—๋Š” ์ถœ์ฒ˜ยท์–ผ๊ตด ์ผ์น˜ ๋‹จ๊ณ„ยท๋”ฅํŽ˜์ดํฌ ์˜์‹ฌ ์‹ ํ˜ธยท๊ถŒ์žฅ ํ–‰๋™๋งŒ ์ „๋‹ฌํ•œ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ์›๋ฌธ์„ ๊ฒ€ํ† ํ•˜๊ณ  ์‹ ๊ณ ์ž๋ฃŒ๋ฅผ ๋งŒ๋“œ๋Š” ๊ทผ๊ฑฐ๋กœ ์“ด๋‹ค.

์•„์ง ํ•ด๊ฒฐํ•˜์ง€ ์•Š์€ ๋ฒ”์œ„๋„ ๋ถ„๋ช…ํžˆ ๊ตฌ๋ถ„ํ•œ๋‹ค. Google Vision ์‹ค์ œ ํ‚ค ๊ธฐ๋ฐ˜ E2E์™€ ๊ฒ€์ƒ‰๋œ ์˜์ƒ URL ์ž๋™ ๋‹ค์šด๋กœ๋“œ, ์‹ค์ œ ์›นยท๋ชจ๋ฐ”์ผ ์™ธ๋ถ€ ๋ฐ์ดํ„ฐ์˜ ์šด์˜ Gate๋Š” ๋‚จ์•„ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ํ˜„์žฌ ์‘๋‹ต์€ ์ž๋™ ์ฐจ๋‹จยท์ž๋™ ์‹ ๊ณ  ๋ช…๋ น์ด ์•„๋‹ˆ๋‹ค.

์ง€๊ธˆ ์–ด๋””๊นŒ์ง€ ๋๋‚˜์š”?

๊ธฐ๋Šฅ ํ•˜๋Š” ์ผ ํ˜„์žฌ ์ƒํƒœ
๊ณต๊ฐœ ํ›„๋ณด ๊ฒ€์ƒ‰ ๊ณต๊ฐœ ์›น์—์„œ ์ด๋ฏธ์ง€ URL๊ณผ ๋ฐœ๊ฒฌ ํŽ˜์ด์ง€ ์ˆ˜์ง‘ Google Vision ์–ด๋Œ‘ํ„ฐ๊ฐ€ ๋”ฅ์†Œ๊ฐ Draft PR #55์— ์—ฐ๊ฒฐ๋จ, ์‹ค์ œ ํ‚ค Recall@10 ๊ฒ€์ฆ ์ „ (#13)
์–ผ๊ตด ํ›„๋ณด ์„ ๋ณ„ ๋“ฑ๋ก ์–ผ๊ตด๊ณผ ํ›„๋ณด ์–ผ๊ตด์˜ ๋™์ผ์ธ ๊ฐ€๋Šฅ์„ฑ ๋น„๊ต ๊ฒ€์ƒ‰ ์ด๋ฏธ์ง€ ๋‹ค์šด๋กœ๋“œยทArcFace ๋ฐฐ์น˜ ์—ฐ๊ฒฐ ์™„๋ฃŒ, ๋‹ค์ค‘ ์–ผ๊ตดยท์˜์ƒ ํŠธ๋ž™ ๋ฏธ์—ฐ๊ฒฐ (#14)
๋”ฅํŽ˜์ดํฌ ํŒ๋ณ„ ํ›„๋ณด ์–ผ๊ตด ํ”„๋ ˆ์ž„์ด ์‹ค์ œ์ธ์ง€ ์กฐ์ž‘์ธ์ง€ ๋ถ„์„ ONNX ์ด๋ฏธ์ง€ยท์˜์ƒ 16ํ”„๋ ˆ์ž„ ํ‰๊ท  API ๊ตฌํ˜„, ์šด์˜ Gate ๋ฏธํ†ต๊ณผ (#25)
๋”ฅํŽ˜์ดํฌ ๋ชจ๋ธ ๊ณ ๋„ํ™” ์‹ค์ œ ์˜์ƒ ์˜ค๊ฒฝ๊ณ ์™€ ์›น ์ดฌ์˜ ์—ดํ™” ์•ฝ์  ๊ฐœ์„  JPEG ์กฐ๊ฑด๋ถ€ ๊ฒฐํ•ฉ Validation ํ›„๋ณด ์„ ํƒ, ์™ธ๋ถ€ ๊ฒ€์ฆ ์ „์ด๋ผ API ๋ฏธ์ ์šฉ; SBIยทHard NegativeยทFTCN ์‹คํ–‰ ์ „ (#35)
ํ™”๋ฉด์šฉ ์‹ ๋ขฐ๋„ ์–ผ๊ตด ์œ ์‚ฌ๋„์™€ ๋”ฅํŽ˜์ดํฌ ์ ์ˆ˜๋ฅผ ์‚ฌ์šฉ์ž์šฉ ์ˆ˜์น˜๋กœ ๋ณด์ • K-FACE 400๋ช… ์–ผ๊ตด ๊ฒ€์ฆยท๋”ฅํŽ˜์ดํฌ ๋ณด์ • ์‹คํ—˜ ์™„๋ฃŒ, ๋‘ Gate ๋ชจ๋‘ ๋ฏธํ†ต๊ณผ๋กœ ํ™•๋ฅ  ํ‘œ์‹œ ๋ณด๋ฅ˜ (#16)
ํ†ตํ•ฉ ๋น„๋™๊ธฐ API ๊ฒ€์ƒ‰ โ†’ ์–ผ๊ตด ์„ ๋ณ„ โ†’ ๋”ฅํŽ˜์ดํฌ ํŒ๋ณ„์„ ํ•˜๋‚˜์˜ ์ž‘์—…์œผ๋กœ ์—ฐ๊ฒฐ ์ž„์‹œ ๋“ฑ๋กยทscan_idยท์ง„ํ–‰ ์กฐํšŒยท์ด๋ฏธ์ง€ ํ›„๋ณด ๊ฒฐ๊ณผ ์™„๋ฃŒ, ์˜์ƒ URLยท์˜๊ตฌ ํ๋Š” ๋ฏธ์—ฐ๊ฒฐ (#17)

์™ธ๋ถ€ ์„œ๋ฒ„ ๋ฐฐํฌ๋Š” ํ˜„์žฌ ํ•„์ˆ˜ ๋ฒ”์œ„๊ฐ€ ์•„๋‹ˆ๋‹ค. ๋ฐ๋ชจ๋Š” ๋กœ์ปฌ Docker API์™€ Swagger ํ™”๋ฉด์œผ๋กœ ์‹คํ–‰ํ•œ๋‹ค.

์‚ฌ์šฉํ•œ AI ๋ชจ๋ธ

์ด ํ”„๋กœ์ ํŠธ์—๋Š” ๋ชฉ์ ์ด ๋‹ค๋ฅธ ๋‘ ๋ชจ๋ธ์ด ์žˆ๋‹ค.

๋ชจ๋ธ ์งˆ๋ฌธ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•
ArcFace buffalo_l โ€œ๋‘ ์–ผ๊ตด์ด ๊ฐ™์€ ์‚ฌ๋žŒ์ธ๊ฐ€?โ€ ์–ผ๊ตด์„ 512๊ฐœ ์ˆซ์ž ํŠน์ง•์œผ๋กœ ๋ฐ”๊พธ๊ณ  ์ฝ”์‚ฌ์ธ ์œ ์‚ฌ๋„๋ฅผ ๊ณ„์‚ฐ
EfficientNet-B4 โ€œ์ด ์–ผ๊ตด ํ”„๋ ˆ์ž„์ด ์‹ค์ œ์ธ๊ฐ€, ๋”ฅํŽ˜์ดํฌ์ธ๊ฐ€?โ€ Celeb-DF-v2 ์–ผ๊ตด ํ”„๋ ˆ์ž„์œผ๋กœ ์‹ค์ œยท๊ฐ€์งœ ์ด์ง„ ๋ถ„๋ฅ˜ ํ•™์Šต

์–ผ๊ตด์„ ์ฐพ๊ณ  ์ •๋ ฌํ•˜๋Š” ์ „์ฒ˜๋ฆฌ์—๋Š” InsightFace์˜ SCRFD ๊ณ„์—ด ๊ฒ€์ถœ๊ธฐ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ArcFace๋Š” ์ฒ˜์Œ๋ถ€ํ„ฐ ๋‹ค์‹œ ํ•™์Šตํ•˜์ง€ ์•Š์•˜๊ณ , ์‚ฌ์ „ํ•™์Šต ๋ชจ๋ธ์— ๋”ฅ์†Œ๊ฐ์˜ ๋“ฑ๋ก ๋ฐฉ์‹ยท๋ฐ์ดํ„ฐ ๋ถ„๋ฆฌยทํŒ์ • ๊ธฐ์ค€ยทAPI๋ฅผ ์„ค๊ณ„ํ•ด ๊ฒ€์ฆํ–ˆ๋‹ค. EfficientNet-B4๋Š” ImageNet ์‚ฌ์ „ํ•™์Šต ๊ฐ€์ค‘์น˜์—์„œ ์‹œ์ž‘ํ•ด Celeb-DF-v2๋กœ ํ•™์Šตํ–ˆ๋‹ค.

1. ์–ผ๊ตด ๋™์ผ์ธ ๋น„๊ต ๊ฒฐ๊ณผ

์Šน์ธ๋ฐ›์€ Celeb-DF-v2์˜ ์‹ค์ œ ์–ผ๊ตด ์˜์ƒ Celeb-real๋กœ ๋“ฑ๋ก ์‚ฌ์ง„ ์ˆ˜์™€ ํŒ์ • ๊ธฐ์ค€์„ ๊ฒ€์ฆํ–ˆ๋‹ค.

  • ์ „์ฒด ์˜์ƒ: 590๊ฐœ, 59๋ช…
  • ์ •์ƒ ์ฒ˜๋ฆฌ: 589๊ฐœ, 99.83%
  • ์ตœ์ข… ํ‰๊ฐ€ ๊ฐ€๋Šฅ ์ธ๋ฌผ: 56๋ช…
  • Validation/Test ์ธ๋ฌผ: 17๋ช…/39๋ช…
  • ์ฑ„ํƒ ์„ค์ •: ์˜์ƒ๋‹น 5ํ”„๋ ˆ์ž„, ๋“ฑ๋ก ์˜์ƒ 3๊ฐœ ํ‰๊ท 
  • ๋ฐ˜๋ณต ๊ฒ€์ฆ: ํ”„๋ ˆ์ž„ ์ˆ˜ 3์ข… ร— ๋“ฑ๋ก ์ˆ˜ 3์ข… ร— seed 5๊ฐœ = 45์กฐ๊ฑด
  • ๋ˆ„์ˆ˜ ๊ฒ€์‚ฌ: Validation/Test ์ธ๋ฌผ ๊ต์ง‘ํ•ฉ 0๊ฑด, ๋“ฑ๋ก/ํ™•์ธ ์˜์ƒ ๊ต์ง‘ํ•ฉ 0๊ฑด
Test ์ง€ํ‘œ ๊ฒฐ๊ณผ ์‰ฌ์šด ๋œป
ROC-AUC 1.000000 ๊ฐ™์€ ์‚ฌ๋žŒ๊ณผ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ์ ์ˆ˜ ์ˆœ์„œ๋ฅผ ์ž˜ ๊ตฌ๋ถ„
EER 0.000000 ์ด ๋ฐ์ดํ„ฐ ๋‚ด๋ถ€์—์„œ ๋‘ ์˜ค๋ฅ˜์œจ์ด ๋งŒ๋‚˜๋Š” ์ง€์ 
TAR 1.000000 ๊ฐ™์€ ์‚ฌ๋žŒ์„ ํ†ต๊ณผ์‹œํ‚จ ๋น„์œจ
๊ด€์ธก FAR 0.001380 ๋‹ค๋ฅธ ์‚ฌ๋žŒ์„ ๊ฐ™์€ ์‚ฌ๋žŒ์œผ๋กœ ์ž˜๋ชป ํ†ต๊ณผ์‹œํ‚จ ๋น„์œจ

์—ฐ๊ตฌ ๋ชฉํ‘œ FAR์€ 0.001, ์ฆ‰ ๋‹ค๋ฅธ ์‚ฌ๋žŒ 10,000๋ฒˆ ๋น„๊ต ์ค‘ ์ตœ๋Œ€ 10๋ฒˆ์˜ ์˜คํ†ต๊ณผ์˜€๋‹ค. ๊ด€์ธก๊ฐ’์€ ์•ฝ 13.8๋ฒˆ ์ˆ˜์ค€์ด๋ฏ€๋กœ Celeb-real ๋‚ด๋ถ€ ๊ฒฐ๊ณผ๊ฐ€ ์ข‹์•„๋„ ์šด์˜ ๋ณธ์ธ์ธ์ฆ ๊ธฐ์ค€์€ ํ†ต๊ณผํ•˜์ง€ ๋ชปํ–ˆ๋‹ค. ์—ฐ๊ตฌ ํŒ์ • ๊ธฐ์ค€๊ฐ’์€ 0.2823836207389832์ด๋ฉฐ API ์‘๋‹ต์—๋„ research_only_unapproved๋กœ ํ‘œ์‹œํ•œ๋‹ค.

์ „์ฒด 45์กฐ๊ฑด๊ณผ ์‹ ๋ขฐ๊ตฌ๊ฐ„์€ reports/celebdf_baseline_audit/2026-08-06, ์ดฌ์˜ ์—ดํ™” 6์กฐ๊ฑด ๊ฒฐ๊ณผ๋Š” reports/celebdf_robustness/2026-08-06์— ์žˆ๋‹ค.

K-FACE 400๋ช… ํ•œ๊ตญ์ธ ์ €ยท์ค‘ํ™”์งˆ ๊ฒ€์ฆ

AI-Hub ์Šน์ธ K-FACE 400๋ช…์—์„œ ์ธ๋ฌผ๋‹น ์ €ํ™”์งˆ 15์žฅยท์ค‘ํ™”์งˆ 15์žฅ, ์ด 12,000์žฅ์„ ์ฒ˜๋ฆฌํ–ˆ๋‹ค. ์ค‘ํ™”์งˆ ๋“ฑ๋ก 3์žฅยท5์žฅ์„ ๋น„๊ตํ•˜๊ณ , 400๋ช…์„ validation 200๋ช…๊ณผ test 200๋ช…์œผ๋กœ ์™„์ „ํžˆ ๋‚˜๋ˆ  ๊ธฐ์ค€๊ฐ’ ๋ˆ„์ˆ˜๋ฅผ ๋ง‰์•˜๋‹ค.

Test ์กฐ๊ฑด TAR FAR ํŒ์ •
3์žฅ ๋“ฑ๋กยท์ €ํ™”์งˆ ์งˆ์˜ 84.44% 0.1109% Gate ๋ฏธํ†ต๊ณผ
3์žฅ ๋“ฑ๋กยท์ค‘ํ™”์งˆ ์งˆ์˜ 92.15% 0.1090% Gate ๋ฏธํ†ต๊ณผ
5์žฅ ๋“ฑ๋กยท์ €ํ™”์งˆ ์งˆ์˜ 87.74% 0.1201% Gate ๋ฏธํ†ต๊ณผ
5์žฅ ๋“ฑ๋กยท์ค‘ํ™”์งˆ ์งˆ์˜ 95.58% 0.1132% Gate ๋ฏธํ†ต๊ณผ

5์žฅ ๋“ฑ๋ก์€ 3์žฅ๋ณด๋‹ค ๋ณธ์ธ ํ†ต๊ณผ์œจ์„ ๋†’์˜€์œผ๋ฏ€๋กœ ์‹œ์—ฐ์—์„œ ๊ถŒ์žฅํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์—ฐ๊ตฌ Gate์ธ TAR โ‰ฅ 90%, FAR โ‰ค 0.1%๋ฅผ ๋ชจ๋“  ํ™”์งˆ์—์„œ ๋™์‹œ์— ๋งŒ์กฑํ•˜์ง€ ๋ชปํ–ˆ๋‹ค. K-FACE ๊ธฐ์ค€๊ฐ’์€ API ์šด์˜๊ฐ’์œผ๋กœ ๊ต์ฒดํ•˜์ง€ ์•Š๊ณ  research_only_unapproved๋ฅผ ์œ ์ง€ํ•œ๋‹ค. ์ „์ฒด ํ”„๋กœํ† ์ฝœยท์ ์ˆ˜ ๋ถ„ํฌยทํ•œ๊ณ„๋Š” reports/kface_v3_400_evaluation/2026-08-15์— ์žˆ๋‹ค.

K-FACE v3.1 ์ ์‘ํ˜• ๊ฒ€์ถœยทํ’ˆ์งˆ Gate

Mac์—์„œ ๊ธฐ์กด ์‹คํŒจ ์ด๋ฏธ์ง€๋งŒ SCRFD ์ž…๋ ฅ ํฌ๊ธฐ 960 โ†’ 1280์œผ๋กœ ๋‹ค์‹œ ์ฒ˜๋ฆฌํ•ด ๊ฒ€์ถœ ์„ฑ๊ณต๋ฅ ์„ ์ €ํ™”์งˆ 78.87% โ†’ 86.65%, ์ค‘ํ™”์งˆ 88.45% โ†’ 92.08%๋กœ ๋†’์˜€๋‹ค. ๋ณต๊ตฌ ์ž…๋ ฅ์„ ๋ชจ๋‘ ์ž๋™ ํŒ์ •์— ์„ž์ง€ ์•Š๊ณ , ๊ฒ€์ถœ์ ์ˆ˜ 0.60 ์ด์ƒ๊ณผ ์ค‘ํ™”์งˆ ๋“ฑ๋ก ํ”„๋ ˆ์ž„ 9์žฅ, validation FAR 0.09% ์•ˆ์ „ ์—ฌ์œ ๋ฅผ ์ ์šฉํ–ˆ๋‹ค.

v3.1 Test ์กฐ๊ฑด TAR FAR ์—ฐ๊ตฌ Gate
9์žฅ ๋“ฑ๋กยท์ €ํ™”์งˆ ์งˆ์˜ 91.95% 0.0828% ํ†ต๊ณผ
9์žฅ ๋“ฑ๋กยท์ค‘ํ™”์งˆ ์งˆ์˜ 92.91% 0.0975% ํ†ต๊ณผ

์ด๋Š” subject-disjoint test์—์„œ TAR โ‰ฅ 90%, FAR โ‰ค 0.1%๋ฅผ ์ฒ˜์Œ ๋™์‹œ์— ๋งŒ์กฑํ•œ ์—ฐ๊ตฌ ํ›„๋ณด๋‹ค. ์‚ฌ์šฉ์ž์—๊ฒŒ ํŒŒ์ผ 9์žฅ์„ ์š”๊ตฌํ•˜๊ธฐ๋ณด๋‹ค ์งง์€ ์ดฌ์˜์—์„œ ์ข‹์€ ํ”„๋ ˆ์ž„ 9์žฅ์„ ์ž๋™ ์„ ํƒํ•˜๋Š” ํ›„์† UX๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ์‹ค์ œ ์›นยทSNS ์™ธ๋ถ€ ๊ฒ€์ฆ ์ „์—๋Š” ํ˜„์žฌ API์˜ ์ตœ๋Œ€ ๋“ฑ๋ก ์ˆ˜์™€ ๊ธฐ์ค€๊ฐ’์„ ๋ฐ”๊พธ์ง€ ์•Š๋Š”๋‹ค. ์ „์ฒด ์žฌํ˜„ ๋ฐฉ๋ฒ•ยท๋น„๊ตยทํ•œ๊ณ„๋Š” reports/kface_adaptive_quality_gate/2026-08-16์— ์žˆ๋‹ค.

K-FACE v3.2 ์ „์ฒด 864๋งŒ ์žฅ ๋ฐ˜๋ณต ๊ฒ€์ฆ

12,000์žฅ ํ‘œ๋ณธ์—์„œ ์ฐพ์€ v3.1 ์„ค์ •์„ K-FACE ์ €ยท์ค‘ํ™”์งˆ 864๋งŒ ์žฅ ์ „์ฒด์™€ 5๊ฐœ์˜ ์ธ๋ฌผ ๋ถ„ํ• ์— ๋‹ค์‹œ ์ ์šฉํ–ˆ๋‹ค. ๋“ฑ๋ก ์ˆ˜๋ฅผ 3์žฅยท5์žฅยท9์žฅ์œผ๋กœ ๋Š˜๋ฆด์ˆ˜๋ก ๋ณธ์ธ ํ†ต๊ณผ์œจ์€ ์ข‹์•„์กŒ์ง€๋งŒ ์ „์ฒด ์ €ํ™”์งˆ ์กฐ๊ฑด์—์„œ๋Š” ์—ฐ๊ตฌ Gate๋ฅผ ํ†ต๊ณผํ•˜์ง€ ๋ชปํ–ˆ๋‹ค.

์ „์ฒด ๋ฐ˜๋ณต Test ์ €ํ™”์งˆ ์ตœ์•… TAR ์ค‘ํ™”์งˆ ์ตœ์•… TAR ์ตœ์•… FAR ํŒ์ •
3์žฅ ๋“ฑ๋ก 69.65% 88.88% 0.1021% ๋ฏธํ†ต๊ณผ
5์žฅ ๋“ฑ๋ก 76.35% 93.35% 0.1073% ๋ฏธํ†ต๊ณผ
9์žฅ ๋“ฑ๋ก 80.36% 95.22% 0.1207% ๋ฏธํ†ต๊ณผ

ํ‘œ๋ณธ Gate ํ†ต๊ณผ๋Š” ๋ฐฉํ–ฅ ํƒ์ƒ‰ ๊ฒฐ๊ณผ์ด๊ณ , ์ „์ฒดยท๋ฐ˜๋ณต ๊ฒ€์ฆ์€ ๋” ๋ณด์ˆ˜์ ์ธ ์šด์˜ ํŒ๋‹จ ๊ทผ๊ฑฐ๋‹ค. 9์žฅ ์—ฐ๊ตฌ ํ›„๋ณด ๊ธฐ์ค€๊ฐ’ 0.3862๋Š” ํ˜„์žฌ API์— ์ ์šฉํ•˜์ง€ ์•Š์œผ๋ฉฐ threshold_status=research_only_unapproved๋ฅผ ์œ ์ง€ํ•œ๋‹ค. ์ „์ฒด ๋ฐฉ๋ฒ•ยท๊ฒฐ๊ณผยทAPI ํŒ๋‹จ์€ reports/kface_full_verification/2026-08-17์— ์žˆ๋‹ค.

K-FACE v3.3 ์‹ค์ œ ์–ผ๊ตด ํ”ฝ์…€ ํฌ๊ธฐยท๋ฐ๊ธฐ Gate ํƒ์ƒ‰

์ „์ฒด 864๋งŒ ์žฅ ํŠน์ง•๊ฐ’์—์„œ ๊ฒ€์ถœ์ ์ˆ˜, ์‹ค์ œ ์–ผ๊ตด ํ”ฝ์…€ ํฌ๊ธฐ์™€ ๋ฐ๊ธฐ๋ฅผ ์กฐํ•ฉํ•œ 11๊ฐœ ํ’ˆ์งˆ Gate๋ฅผ 5๊ฐœ ์ธ๋ฌผ ๋ถ„ํ• ๋กœ ๋น„๊ตํ–ˆ๋‹ค. ๊ฐ€์žฅ ๊ท ํ˜•์ด ์ข‹์€ ๊ฒ€์ถœ 0.70 + ์–ผ๊ตด 42px + ๋ฐ๊ธฐ 35 ์กฐ๊ฑด์€ ์ตœ์•… TAR 94.17%๋ฅผ ๋‹ฌ์„ฑํ–ˆ์ง€๋งŒ FAR์ด 0.1074%๋กœ ๋ชฉํ‘œ๋ฅผ ๋„˜์—ˆ๊ณ , ์ž๋™ ์ฒ˜๋ฆฌ coverage๋„ ์ตœ์†Œ 30.62%์— ๊ทธ์ณค๋‹ค.

๋”ฐ๋ผ์„œ ํ’ˆ์งˆ ๊ฑฐ์ ˆ๋งŒ ๊ฐ•์ œํ•˜๋Š” API ๋ณ€๊ฒฝ์€ ํ•˜์ง€ ์•Š๋Š”๋‹ค. ๋‹ค์Œ์—๋Š” ํ’ˆ์งˆ ๊ฐ€์ค‘ ๋“ฑ๋กยท๋‹ค์ค‘ ๋“ฑ๋ก ์ค‘์‹ฌยท๋” ์—„๊ฒฉํ•œ validation ์•ˆ์ „ ์—ฌ์œ ๋ฅผ ๋น„๊ตํ•œ๋‹ค. ์ „์ฒด ๊ฒฐ๊ณผ๋Š” reports/kface_quality_gate_analysis/2026-08-17์— ์žˆ๋‹ค.

K-FACE v3.4 ๋“ฑ๋ก 5์žฅ ํ’ˆ์งˆ ๊ฐ€์ค‘ยท๋‹ค์ค‘ ์ค‘์‹ฌ ๋น„๊ต

ํ™•์ธ ์‚ฌ์ง„์„ ์ถ”๊ฐ€๋กœ ๊ฑฐ์ ˆํ•˜์ง€ ์•Š๊ณ  coverage 100% ์กฐ๊ฑด์—์„œ ๋‹จ์ˆœ ํ‰๊ท , ํ’ˆ์งˆ ๊ฐ€์ค‘ ํ‰๊ท , ๋“ฑ๋ก ์ค‘์‹ฌ 2๊ฐœ๋ฅผ ๋น„๊ตํ–ˆ๋‹ค. ํ’ˆ์งˆ ๊ฐ€์ค‘ ํ‰๊ท ์€ validation FAR 0.09% ๊ธฐ์ค€ ์ €ํ™”์งˆ TAR์„ 76.35% โ†’ 76.62%๋กœ ์•ฝ +0.28%p ๋†’์˜€์ง€๋งŒ ๋ชฉํ‘œ ๊ฐœ์„ ํญ์— ๋ถ€์กฑํ–ˆ๋‹ค.

validation FAR ์•ˆ์ „ ์—ฌ์œ ๋ฅผ 0.08%๋กœ ๋†’์ด๋ฉด test FAR์€ 0.0963%๋กœ ๋ชฉํ‘œ๋ฅผ ํ†ต๊ณผํ–ˆ์ง€๋งŒ ์ €ํ™”์งˆ TAR์€ 75.80%์˜€๋‹ค. ๋“ฑ๋ก ์ค‘์‹ฌ 2๊ฐœ๋Š” ์ €ํ™”์งˆ TAR์„ ์•ฝ 72%๋กœ ๋‚ฎ์ถฐ ํ›„๋ณด์—์„œ ์ œ์™ธํ–ˆ๋‹ค. ๋“ฑ๋ก ์ „๋žต๋งŒ์œผ๋กœ๋Š” ์ €ํ•ด์ƒ๋„ ์ •๋ณด ์†์‹ค์„ ํ•ด๊ฒฐํ•˜์ง€ ๋ชปํ–ˆ์œผ๋ฏ€๋กœ API๋Š” ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๋Š”๋‹ค. ์ „์ฒด ๊ฒฐ๊ณผ๋Š” reports/kface_enrollment_strategy_benchmark/2026-08-17์— ์žˆ๋‹ค.

K-FACE v3.5 ์ €ํ™”์งˆ ์ž„๋ฒ ๋”ฉ ๋ณด์ • ๋ชจ๋ธ

400๋ช…์„ Train 240๋ช…ยทValidation 80๋ช…ยท์ž ๊ธด Test 80๋ช…์œผ๋กœ ์ธ๋ฌผ ๋‹จ์œ„ ๋ถ„๋ฆฌํ•˜๊ณ , ์ €ํ™”์งˆ ArcFace ํŠน์ง•์„ ์ค‘ํ™”์งˆ ํŠน์ง•์— ๊ฐ€๊น๊ฒŒ ๋ฐ”๊พธ๋Š” 512โ†’128โ†’512 residual MLP๋ฅผ ํ•™์Šตํ–ˆ๋‹ค. Validation์—์„œ ์„ ํƒ๋œ ๋Œ€์กฐ ํ•™์Šต ํ›„๋ณด๋ฅผ ์ž ๊ธด Test์—์„œ ํ•œ ๋ฒˆ ํ‰๊ฐ€ํ–ˆ์ง€๋งŒ ์ €ํ™”์งˆ TAR์€ 79.01% โ†’ 78.05%, ์ค‘ํ™”์งˆ TAR์€ 94.61% โ†’ 92.34%๋กœ ๋‚ฎ์•„์กŒ๊ณ  ์ตœ์•… FAR์€ 0.1065% โ†’ 0.1250%๋กœ ๋†’์•„์กŒ๋‹ค.

๋‹ค๋ฅธ ์‚ฌ๋žŒ ํ‰๊ท  ์œ ์‚ฌ๋„๊ฐ€ ๊ฐ™์€ ์‚ฌ๋žŒ๋ณด๋‹ค ๋” ํฌ๊ฒŒ ์˜ฌ๋ผ ์ธ๋ฌผ ๊ตฌ๋ถ„๋ ฅ์ด ๋‚˜๋น ์ง„ ๊ฒƒ์ด ์›์ธ์ด๋‹ค. ์‚ฌ์ „ ๊ฐœ์„  Gate๋ฅผ ํ†ต๊ณผํ•˜์ง€ ๋ชปํ•ด ONNX๋ฅผ ๋งŒ๋“ค์ง€ ์•Š์•˜๊ณ  API๋„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š์•˜๋‹ค. ์ „์ฒด ๊ฒฐ๊ณผ๋Š” reports/kface_lowres_embedding_adapter/2026-08-17์— ์žˆ๋‹ค.

2. ๋”ฅํŽ˜์ดํฌ ์˜์ƒ ํŒ๋ณ„ ๊ฒฐ๊ณผ

์ „์ฒด Celeb-DF-v2๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค.

๋ฐ์ดํ„ฐ ์˜์ƒ ์ˆ˜
Celeb-real 590
YouTube-real 300
Celeb-synthesis 5,639
์ „์ฒด 6,529
์ œ์ž‘์ž๊ฐ€ ๊ณ ์ •ํ•œ ๊ณต์‹ Test 518

ํ”„๋ ˆ์ž„์„ ๋ฝ‘๊ธฐ ์ „์— ์˜์ƒ์„ Train/Validation/Test๋กœ ๋‚˜๋ˆด๋‹ค. ๊ฐ™์€ ์˜์ƒ ์žฅ๋ฉด์ด ํ•™์Šต๊ณผ ํ‰๊ฐ€ ์–‘์ชฝ์— ์„ž์ด๋Š” ๊ฒƒ์„ ๋ง‰๊ธฐ ์œ„ํ•ด์„œ๋‹ค. ์ „์ฒด ์ „์ฒ˜๋ฆฌ์—์„œ๋Š” 6,529๊ฐœ ์˜์ƒ ์ค‘ 6,528๊ฐœ๋ฅผ ์ฒ˜๋ฆฌํ•ด ์–ผ๊ตด crop 208,893๊ฐœ๋ฅผ ๋งŒ๋“ค์—ˆ๊ณ , 1๊ฐœ ์˜์ƒ์€ ์œ ํšจ ์–ผ๊ตด ํ”„๋ ˆ์ž„ ๋ถ€์กฑ์œผ๋กœ ์ œ์™ธํ–ˆ๋‹ค.

Kaggle 4์ฐจ ์‹คํ–‰์—์„œ ํ•™์Šตยท๊ณต์‹ TestยทONNX ๋ณ€ํ™˜ยทCPU ์ถ”๋ก  ์‹œํ—˜์„ ๋ชจ๋‘ ์™„๋ฃŒํ–ˆ๋‹ค. ์•„๋ž˜ ๊ฐ’์€ ๊ณต์‹ ๋น„์‹๋ณ„ ๊ฒฐ๊ณผ ํŒŒ์ผ์—์„œ ํ™•์ธํ•œ ์ตœ์ข… ์—ฐ๊ตฌ ๊ธฐ์ค€์„ ์ด๋‹ค.

๊ณต์‹ Test ์ง€ํ‘œ ๊ฒฐ๊ณผ ํŒ๋‹จ
์„ ํƒ ํ”„๋ ˆ์ž„ ์ˆ˜ 16 ์˜์ƒ๋งˆ๋‹ค ์ตœ๋Œ€ 16๊ฐœ ์–ผ๊ตด ์ ์ˆ˜ ์‚ฌ์šฉ
์ ์ˆ˜ ํ†ตํ•ฉ ํ‰๊ท  ํ”„๋ ˆ์ž„๋ณ„ ์ ์ˆ˜๋ฅผ ํ‰๊ท ํ•ด ์˜์ƒ ์ ์ˆ˜ ์ƒ์„ฑ
ํŒ์ • ๊ธฐ์ค€๊ฐ’ 0.751988 ์ด ๊ฐ’ ์ด์ƒ์„ ๋”ฅํŽ˜์ดํฌ ํ›„๋ณด๋กœ ํŒ๋‹จ
Video ROC-AUC 0.999802 ์‹ค์ œ์™€ ๊ฐ€์งœ์˜ ์ „๋ฐ˜์ ์ธ ์ˆœ์œ„ ๊ตฌ๋ถ„์€ ๋†’์Œ
Recall 1.000000 ๊ณต์‹ Test ๋”ฅํŽ˜์ดํฌ๋ฅผ ๋ชจ๋‘ ํƒ์ง€
FPR 0.016854 ์‹ค์ œ ์˜์ƒ์„ ๊ฐ€์งœ๋กœ ์ž˜๋ชป ๊ฒฝ๊ณ ํ•œ ๋น„์œจ ์•ฝ 1.69%
์–ผ๊ตด ์ฒ˜๋ฆฌ coverage 1.000000 ๊ณต์‹ Test ํ‰๊ฐ€ ๋Œ€์ƒ ์ฒ˜๋ฆฌ ์™„๋ฃŒ

์ดˆ๊ธฐ ์—ฐ๊ตฌ Gate๋Š” ROC-AUC โ‰ฅ 0.90, FPR โ‰ค 0.01์ด๋‹ค. AUC๋Š” ํ†ต๊ณผํ–ˆ์ง€๋งŒ FPR์ด ๋ชฉํ‘œ 1%๋ณด๋‹ค ๋†’์•„ ์ฆ‰์‹œ ๊ฒฝ๋ณดยท์ž๋™ ์ฐจ๋‹จ์šฉ ๋ชจ๋ธ๋กœ ์Šน์ธํ•˜์ง€ ์•Š๋Š”๋‹ค. ONNX๋Š” ์ •์ƒ ์ƒ์„ฑ๋๊ณ  CPU ์ถ”๋ก  smoke๋„ ์•ฝ 171ms๋กœ ํ†ต๊ณผํ–ˆ์ง€๋งŒ, ์ด๋Š” ์—ฐ๊ฒฐ ์‹œํ—˜์ผ ๋ฟ API ์‘๋‹ต์‹œ๊ฐ„ SLA๊ฐ€ ์•„๋‹ˆ๋‹ค.

์—ดํ™” ํ‰๊ฐ€์—์„œ๋Š” ํ•ด์ƒ๋„ 25% ์ถ•์†Œ์™€ ํ๋ฆผ์—์„œ FPR์ด ๊ฐ๊ฐ ์•ฝ 12.92%, 11.80%๋กœ ์ฆ๊ฐ€ํ–ˆ๊ณ  ์ €์กฐ๋„์—์„œ๋Š” Recall์ด ์•ฝ 78.24%๋กœ ๊ฐ์†Œํ–ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์‹ค์ œ ์›น์—์„œ ์žฌ์••์ถ•ยท์ถ•์†Œ๋œ ์˜์ƒ์— ๋ฐ”๋กœ ์ ์šฉํ•˜๋ฉด ์•ˆ ๋œ๋‹ค. ์ƒ์„ธ ์ˆ˜์น˜ยท๋ฌด๊ฒฐ์„ฑ hashยท๊ทธ๋ž˜ํ”„๋Š” ์ตœ์ข… ๊ฒฐ๊ณผ ๋ณด๊ณ ์„œ์— ์žˆ๋‹ค.

์žฌํ˜„ ๋ฐฉ๋ฒ•์€ docs/experiments/deepfake-kaggle.md, ๋ฐ์ดํ„ฐ ๋ถ„ํ• ๊ณผ ์‚ฌ์ „๊ฒ€์‚ฌยทํ˜„์žฌ ๊ฒฐ๊ณผ๋Š” reports/celebdf_deepfake_baseline/2026-08-07์— ์žˆ๋‹ค.

JPEG ์••์ถ• ์กฐ๊ฑด๋ถ€ ๋‘ ๋ชจ๋ธ ๊ฒฐํ•ฉ

Xception์ด JPEG q30์—์„œ๋งŒ ๋ณด์ธ ์žฅ์ ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด, ํ‰์†Œ์—๋Š” EfficientNet-B4๋งŒ ์‹คํ–‰ํ•˜๊ณ  ๊ฐ•ํ•œ JPEG ์••์ถ•์—์„œ๋งŒ ๋‘ ๋ชจ๋ธ ์ ์ˆ˜๋ฅผ ๊ฒฐํ•ฉํ•˜๋Š” ์ •์ฑ…์„ Validation์—์„œ ๋น„๊ตํ–ˆ๋‹ค. 836๊ฐœ ์˜์ƒยท66,880๊ฐœ ์ง์ง€์€ ํ”„๋ ˆ์ž„์„ ์‚ฌ์šฉํ–ˆ๊ณ  ๊ณต์‹ Test๋Š” ์—ด์ง€ ์•Š์•˜๋‹ค.

JPEG q30 Validation EfficientNet-B4 ๋‹จ๋… ์กฐ๊ฑด๋ถ€ ๊ฒฐํ•ฉ
ROC-AUC 0.999122 0.999606
clean ๊ธฐ์ค€๊ฐ’ ๊ณ ์ • Recall 74.31% 78.85%
p95 ์ถ”๋ก ์‹œ๊ฐ„ 41.30ms 92.24ms

EfficientNet-B4 25%ยทXception 75% logit ๊ฒฐํ•ฉ ํ›„๋ณด๊ฐ€ ์„ ํƒ๋์ง€๋งŒ, ๊ฐœ์„ ๋Ÿ‰์ด ์ž‘๊ณ  ์ฒ˜๋ฆฌ์‹œ๊ฐ„์ด ์•ฝ 2.23๋ฐฐ๋กœ ๋Š˜์—ˆ๋‹ค. ์‹ค์ œ ์›น JPEG ํ’ˆ์งˆ Gate์™€ ์™ธ๋ถ€ ์˜์ƒ ๊ฒ€์ฆ์ด ์—†์œผ๋ฏ€๋กœ ํ˜„์žฌ ONNX API๋Š” EfficientNet-B4 ๋‹จ๋…์„ ์œ ์ง€ํ•œ๋‹ค. ์ž์„ธํ•œ ์„ ํƒ ๊ทœ์น™ยท์ˆ˜์น˜ยท๊ฐœ์ธ์ •๋ณด ๊ฒ€์‚ฌ๋Š” ์กฐ๊ฑด๋ถ€ ๊ฒฐํ•ฉ ๊ฒฐ๊ณผ ๋ณด๊ณ ์„œ์— ์žˆ๋‹ค.

3. ํ™”๋ฉด์šฉ ๋”ฅํŽ˜์ดํฌ ์ ์ˆ˜ ๋ณด์ • ๊ฒฐ๊ณผ

Kaggle GPU์—์„œ Validation 836๊ฐœ์™€ ๊ณต์‹ Test 518๊ฐœ ์˜์ƒ์˜ clean 16ํ”„๋ ˆ์ž„ ํ‰๊ท  ์ ์ˆ˜๋ฅผ ๋‹ค์‹œ ๊ณ„์‚ฐํ•˜๊ณ  Temperature, Platt, Isotonic ๋ณด์ •์„ ๋น„๊ตํ–ˆ๋‹ค. ๋ฐฉ๋ฒ• ์„ ํƒ์—๋Š” Validation๋งŒ ์‚ฌ์šฉํ–ˆ์œผ๋ฉฐ ๊ณต์‹ Test๋กœ ๋ณด์ •๊ฐ’์„ ๊ณ ๋ฅธ ๊ฒฝ์šฐ๋Š” 0๊ฑด์ด๋‹ค.

๊ณต์‹ Test ์ง€ํ‘œ ๋ณด์ • ์ „ ๋ณด์ • ํ›„ ํŒ๋‹จ
ECE 0.029784 0.003861 0.05 ์ดํ•˜ ํ†ต๊ณผ
Brier Score 0.013203 0.003861 ๊ฐœ์„ 
์‹ค์ œ์˜์ƒ FPR 0.016854 ํŒ์ • ๊ธฐ์ค€ ๋™์ผ 0.01 ์ดํ•˜ Gate ์‹คํŒจ

Isotonic ๋ณด์ •์˜ ์ˆซ์ž ์ •ํ•ฉ์„ฑ์€ ์ข‹์•„์กŒ์ง€๋งŒ ์‹ค์ œ ์˜์ƒ 178๊ฐœ ์ค‘ 3๊ฐœ๋ฅผ ๊ฐ€์งœ๋กœ ์ž˜๋ชป ๊ฒฝ๊ณ ํ–ˆ๋‹ค. ๋”ฐ๋ผ์„œ API๋Š” calibration_status=research_only_unapproved, calibrated_probability=null์„ ๋ฐ˜ํ™˜ํ•˜๋ฉฐ ํ™”๋ฉด์—์„œ 84% ํ™•๋ฅ ์ฒ˜๋Ÿผ ํ‘œ์‹œํ•˜์ง€ ์•Š๋Š”๋‹ค. ์ƒ์„ธ ๊ฒฐ๊ณผ์™€ reliability diagram์€ reports/deepfake_score_calibration/2026-08-08์— ์žˆ๋‹ค.

์–ผ๊ตด๊ฐ€๋“œ API ์‹คํ–‰

ํ˜„์žฌ HTTP API๋Š” ์–ผ๊ตด ๋™์ผ์ธ ํ›„๋ณด ์„ ๋ณ„, Google Visionยท์‚ฌ์šฉ์ž ํ›„๋ณด URL ์ •๊ทœํ™”, ๋‹จ์ผ ์–ผ๊ตด ๋”ฅํŽ˜์ดํฌ ONNX ๋ถ„์„, ์งง์€ ์˜์ƒ 16ํ”„๋ ˆ์ž„ ํ‰๊ท  ๋ถ„์„, ํ›„๋ณด ์ด๋ฏธ์ง€ โ†’ ArcFace โ†’ ONNX ๋น„๋™๊ธฐ ๊ฒฝ๋กœ, scan_id ๊ธฐ๋ฐ˜ ์ง„ํ–‰ ์กฐํšŒ๋ฅผ ์ œ๊ณตํ•œ๋‹ค. Google Vision ํ˜ธ์ถœ ์ž์ฒด๋Š” ๋”ฅ์†Œ๊ฐ ์„œ๋ฒ„๊ฐ€ ๋‹ด๋‹นํ•˜๋ฉฐ, ๊ฒ€์ƒ‰ ํ›„๋ณด ์˜์ƒ URL์„ ์ง์ ‘ ๋ถ„์„ํ•˜๋Š” ๋น„๋™๊ธฐ ๊ฒฝ๋กœ๋Š” ์•„์ง ๊ตฌํ˜„ ์ „์ด๋‹ค.

Docker ๊ถŒ์žฅ ์‹คํ–‰

git clone https://github.com/Chunbae-A/face-image.git
cd face-image
cp .env.example .env

InsightFace ์ œ๊ณต ๊ฐ€์ค‘์น˜์˜ ๋น„์ƒ์—… ์—ฐ๊ตฌ ์กฐ๊ฑด์„ ์ง์ ‘ ํ™•์ธํ•œ ๊ฒฝ์šฐ์—๋งŒ .env์—์„œ ๋‹ค์Œ ๊ฐ’์„ ๋ณ€๊ฒฝํ•œ๋‹ค.

FACEGUARD_ACCEPT_NONCOMMERCIAL_MODEL_LICENSE=true

๋”ฅํŽ˜์ดํฌ API๊นŒ์ง€ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๊ถŒํ•œ์ด ์žˆ๋Š” ํŒ€์›์ด ๋น„๊ณต๊ฐœ ๋ชจ๋ธ ZIP์˜ efficientnet_b4.onnx๋ฅผ .models/deepfake/efficientnet_b4.onnx์— ๋‘”๋‹ค. GitHub์—๋Š” ๋ชจ๋ธ์„ ์˜ฌ๋ฆฌ์ง€ ์•Š์œผ๋ฉฐ, ์‹คํ–‰ ์‹œ SHA-256 c32a8532...a6f1 ์ „์ฒด ๊ฐ’์ด ์ž๋™ ๊ฒ€์ฆ๋œ๋‹ค. ๋ชจ๋ธ์ด ์—†๋”๋ผ๋„ ์–ผ๊ตด ๋น„๊ตยท๊ฒ€์ƒ‰ API๋Š” ์‹คํ–‰๋˜์ง€๋งŒ ๋”ฅํŽ˜์ดํฌ ๋ถ„์„์€ MODEL_UNAVAILABLE์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

์ ์ˆ˜ ๋ณด์ • ์‹คํ—˜์„ ๋งˆ์นœ ๋’ค์—๋Š” ๋น„์‹๋ณ„ deepfake_video_calibration.json๋„ ๊ฐ™์€ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ๋‘”๋‹ค. ํŒŒ์ผ์ด ์—†๊ฑฐ๋‚˜ ์—ฐ๊ตฌ Gate๋ฅผ ํ†ต๊ณผํ•˜์ง€ ๋ชปํ•˜๋ฉด API์˜ calibrated_probability๋Š” ์ž๋™์œผ๋กœ null์ด ๋œ๋‹ค.

์„œ๋ฒ„๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.

docker compose up --build --detach
curl http://127.0.0.1:8000/health

๋ธŒ๋ผ์šฐ์ €์—์„œ http://127.0.0.1:8000/docs๋ฅผ ์—ด๊ณ  POST /v1/faceguard/verify, POST /v1/deepfake/analyze ๋˜๋Š” POST /v1/deepfake/analyze-video๋ฅผ ์‹œํ—˜ํ•œ๋‹ค.

  • reference_images: ๋ณธ์ธ ๋“ฑ๋ก ์–ผ๊ตด 1~5์žฅ, 3์žฅ ๊ถŒ์žฅ
  • query_image: ํ™•์ธํ•  ํ›„๋ณด ์–ผ๊ตด 1์žฅ
  • ์ง€์› ํ˜•์‹: JPEG, PNG, WEBP

์˜์ƒ ๋ถ„์„์€ MP4ยทMOV, ์ตœ๋Œ€ 50MBยท120์ดˆ๋ฅผ ์ง€์›ํ•œ๋‹ค. ์˜์ƒ ์ „์ฒด์—์„œ ์ตœ๋Œ€ 16๊ฐœ ๋Œ€ํ‘œ ํ”„๋ ˆ์ž„์„ ๋ฝ‘๊ณ  ํ”„๋ ˆ์ž„๋ณ„ ์–ผ๊ตด ์ ์ˆ˜์˜ ํ‰๊ท ๊ณผ ๋Œ€๋žต์ ์ธ ์˜์‹ฌ ์‹œ๊ฐ„ ๊ตฌ๊ฐ„์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ๋“ฑ๋ก ์‚ฌ์ง„์„ ํ•จ๊ป˜ ๋ณด๋‚ด๋ฉด ์—ฌ๋Ÿฌ ์–ผ๊ตด ์ค‘ ๋“ฑ๋ก ์–ผ๊ตด๊ณผ ๊ฐ€์žฅ ๋น„์Šทํ•œ ์–ผ๊ตด์„ ์šฐ์„  ๋ถ„์„ํ•œ๋‹ค. ์›๋ณธ ์˜์ƒ๊ณผ ์–ผ๊ตด crop์€ ์˜๊ตฌ ์ €์žฅํ•˜์ง€ ์•Š๋Š”๋‹ค.

์‘๋‹ต์˜ ํ•ต์‹ฌ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

ํ•„๋“œ ์˜๋ฏธ
is_same_person ์—ฐ๊ตฌ ๊ธฐ์ค€๊ฐ’์„ ๋„˜์—ˆ๋Š”์ง€ ์—ฌ๋ถ€
similarity ๋‘ ์–ผ๊ตด์˜ ์ฝ”์‚ฌ์ธ ์œ ์‚ฌ๋„
raw_score ๋ชจ๋ธ์ด ์ง์ ‘ ๋‚ธ ์›์ ์ˆ˜. ํ™•๋ฅ ์ด๋‚˜ ํผ์„ผํŠธ๊ฐ€ ์•„๋‹˜
calibrated_probability ๋ณด์ •๊ณผ Gate๋ฅผ ๋ชจ๋‘ ํ†ต๊ณผํ•  ๋•Œ๋งŒ ์ œ๊ณตํ•˜๋Š” ํ™•๋ฅ , ๊ทธ ์™ธ null
calibration_status not_available, research_only_unapproved, validated ๋“ฑ ๋ณด์ • ์ƒํƒœ
risk_level ์˜์ƒ ๋ณด์ • ํŒŒ์ผ์ด ์žˆ์„ ๋•Œ low, review, high ์ค‘ ๊ฒ€ํ†  ๊ตฌ๊ฐ„
threshold ํ˜„์žฌ ์—ฐ๊ตฌ ํŒ์ • ๊ธฐ์ค€๊ฐ’
reference_quality, query_quality ์–ผ๊ตด ํฌ๊ธฐยท์„ ๋ช…๋„ยท๋ฐ๊ธฐ ๋“ฑ ์ž…๋ ฅ ํ’ˆ์งˆ
processing_ms ์„œ๋ฒ„ ๋‚ด๋ถ€ ์ฒ˜๋ฆฌ์‹œ๊ฐ„

is_same_person=true๋Š” โ€œ๊ฐ™์€ ์‚ฌ๋žŒ ํ›„๋ณดโ€๋ผ๋Š” ๋œป์ด์ง€ ๋”ฅํŽ˜์ดํฌ๋ผ๋Š” ๋œป์ด ์•„๋‹ˆ๋‹ค. ์ž์„ธํ•œ ์‹คํ–‰๊ณผ ์˜ค๋ฅ˜ ์ฝ”๋“œ๋Š” API ๋น ๋ฅธ ์‹คํ–‰๊ณผ API ์šด์˜ ๊ฐ€์ด๋“œ์— ์žˆ๋‹ค.

๊ณต๊ฐœ ํ›„๋ณด ๊ฒฝ๋กœ๋Š” ๊ฐ™์€ Swagger ํ™”๋ฉด์˜ POST /v1/search/candidates์—์„œ ์‹œํ—˜ํ•œ๋‹ค.

privacy_strict ๋ชจ๋“œ์—์„œ Google Vision ๋˜๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ๋ฏธ๋ฆฌ ์ˆ˜์ง‘ํ•œ ๊ณต๊ฐœ URL์„ ๋„ฃ๋Š”๋‹ค. ๋ชจ๋ธ API๋Š” ๋กœ์ปฌยท๋‚ด๋ถ€๋ง ์ฃผ์†Œ๋ฅผ ์ฐจ๋‹จํ•˜๊ณ  ์ถ”์  ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ œ๊ฑฐํ•œ ๋’ค ์ค‘๋ณต์„ ํ•ฉ์นœ๋‹ค. ์ธํ„ฐ๋„ท ํ›„๋ณด ๋ฐœ๊ฒฌ์€ ๋”ฅ์†Œ๊ฐ ์„œ๋ฒ„์˜ Google Vision ์–ด๋Œ‘ํ„ฐ๊ฐ€ ๋‹ด๋‹นํ•˜๊ณ , ์ด ์ €์žฅ์†Œ์˜ ๋ชจ๋ธ API๋Š” ์ „๋‹ฌ๋ฐ›์€ ํ›„๋ณด๋ฅผ ArcFace์™€ ONNX๋กœ ๋ถ„์„ํ•œ๋‹ค.

๋น„๋™๊ธฐ ๋…ธ์ถœ ์Šค์บ” ๋ฐ๋ชจ

๊ธด ๊ฒ€์ƒ‰ ์ž‘์—… ๋™์•ˆ ํ™”๋ฉด์ด ๋ฉˆ์ถ”์ง€ ์•Š๊ฒŒ ํ•˜๋ ค๋ฉด ๋‹ค์Œ API๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ์‚ฌ์šฉํ•œ๋‹ค.

  1. POST /v1/faceguard/enrollments: ๋ณธ์ธ ์‚ฌ์ง„ 3์žฅ์„ ์ž„์‹œ ๋“ฑ๋กํ•˜๊ณ  enrollment_id๋ฅผ ๋ฐ›๋Š”๋‹ค.
  2. POST /v1/exposure-scans: Google Vision ๋˜๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ˆ˜์ง‘ํ•œ ๊ณต๊ฐœ ํ›„๋ณด URL๋กœ ์ž‘์—…์„ ๋งŒ๋“ค๊ณ  ์ฆ‰์‹œ scan_id๋ฅผ ๋ฐ›๋Š”๋‹ค.
  3. GET /v1/exposure-scans/{scan_id}: searching โ†’ identity_filtering โ†’ deepfake_analyzing โ†’ completed ์ง„ํ–‰ ๋‹จ๊ณ„์™€ ๊ฐœ์ˆ˜๋ฅผ ํ™•์ธํ•œ๋‹ค.
  4. GET /v1/exposure-scans/{scan_id}/client-candidates: ๋”ฅ์†Œ๊ฐ ํ™”๋ฉด์šฉ ํ›„๋ณด์™€ ๊ฒ€ํ†  ํ–‰๋™๊ฐ’์„ ํ™•์ธํ•œ๋‹ค.
  5. GET /v1/exposure-scans/{scan_id}/candidates: ๋ชจ๋ธ ๊ฐœ๋ฐœ์ž๊ฐ€ ํ›„๋ณด๋ณ„ ์ƒ์„ธ ํŒ์ • ๊ทผ๊ฑฐ๋ฅผ ํ™•์ธํ•œ๋‹ค.

๋“ฑ๋ก ์š”์ฒญ์—์„œ ์›๋ณธ ์‚ฌ์ง„์„ ์ฒ˜๋ฆฌํ•œ ๋’ค์—๋Š” ํ’€๋งํ•œ ์ž„๋ฒ ๋”ฉ๊ณผ ํ’ˆ์งˆ ์ •๋ณด๋งŒ ๊ธฐ๋ณธ 30๋ถ„ ๋™์•ˆ ๋ฉ”๋ชจ๋ฆฌ์— ๋‚จ๋Š”๋‹ค. ์Šค์บ” ๊ฒฐ๊ณผ๋Š” ๊ธฐ๋ณธ 60๋ถ„ ๋™์•ˆ ๋‚จ์œผ๋ฉฐ ์„œ๋ฒ„๋ฅผ ์žฌ์‹œ์ž‘ํ•˜๋ฉด ๋ชจ๋‘ ์‚ฌ๋ผ์ง„๋‹ค. ์žฌ์‹œ๋„ ์‹œ ์ค‘๋ณต ์ž‘์—…์„ ๋ง‰์œผ๋ ค๋ฉด Idempotency-Key ํ—ค๋”๋ฅผ ๊ฐ™๊ฒŒ ๋ณด๋‚ธ๋‹ค. ์ดˆ๋ณด์ž์šฉ Swagger ์‹คํ–‰ ์ˆœ์„œ์™€ JSON ์˜ˆ์‹œ๋Š” ๋น„๋™๊ธฐ ๋…ธ์ถœ ์Šค์บ” ์•ˆ๋‚ด์— ์žˆ๋‹ค. ํ”„๋ก ํŠธยท๋ฐฑ์—”๋“œ ์—ฐ๊ฒฐ ๊ณ„์•ฝ์€ ํด๋ผ์ด์–ธํŠธ์šฉ ๊ณต๊ฐœ ๋…ธ์ถœ ๋ชจ๋‹ˆํ„ฐ๋ง API์— ์ •๋ฆฌํ–ˆ๋‹ค.

๋ฐ๋ชจ์—์„œ ๋ณด์—ฌ์ค„ ๋‚ด์šฉ

ํ˜„์žฌ ์•ˆ์ „ํ•˜๊ฒŒ ์‹œ์—ฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ๋ชจ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  1. ๋™์˜๋ฐ›์€ ์‚ฌ๋žŒ์˜ ๋“ฑ๋ก ์‚ฌ์ง„ 3์žฅ์„ ๋„ฃ๋Š”๋‹ค.
  2. ๊ฐ™์€ ์‚ฌ๋žŒ์˜ ๋‹ค๋ฅธ ์‚ฌ์ง„์„ ๋„ฃ์–ด ์œ ์‚ฌ๋„์™€ ํ’ˆ์งˆ ์ˆ˜์น˜๋ฅผ ํ™•์ธํ•œ๋‹ค.
  3. ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ์‚ฌ์ง„์„ ๋„ฃ์–ด ๋ถˆ์ผ์น˜ ๊ฒฐ๊ณผ๋ฅผ ํ™•์ธํ•œ๋‹ค.
  4. Celeb-DF ์ „์ฒด ๋”ฅํŽ˜์ดํฌ ์‹คํ—˜ ๊ฒฐ๊ณผ์—์„œ AUC์™€ FPR์„ ํ•จ๊ป˜ ๋ณด์—ฌ์ค€๋‹ค.
  5. โ€œAUC๋Š” ๋†’์ง€๋งŒ FPR Gate๋ฅผ ํ†ต๊ณผํ•˜์ง€ ๋ชปํ•ด ์šด์˜ ์Šน์ธํ•˜์ง€ ์•Š์•˜๋‹คโ€๊ณ  ์„ค๋ช…ํ•œ๋‹ค.

๊ฒ€์ƒ‰ โ†’ ์–ผ๊ตด ์„ ๋ณ„ โ†’ ๋‹จ์ผ ์ด๋ฏธ์ง€ ๋”ฅํŽ˜์ดํฌ ํŒ๋ณ„์€ scan_id๋ฅผ ์‚ฌ์šฉํ•ด ๋น„๋™๊ธฐ๋กœ ์‹œ์—ฐํ•  ์ˆ˜ ์žˆ๊ณ , ์งง์€ ์˜์ƒ 16ํ”„๋ ˆ์ž„ ๋ถ„์„์€ ๋ณ„๋„ API๋กœ ์‹œ์—ฐํ•  ์ˆ˜ ์žˆ๋‹ค. ๋‹ค๋งŒ deepfake_score, video_score, raw_score๋Š” ํ™•๋ฅ ์ด๋‚˜ ํ™•์ • ์‹ ๋ขฐ๋„๊ฐ€ ์•„๋‹ˆ๋‹ค. ํ™”๋ฉด์€ calibrated_probability๊ฐ€ null์ด๋ฉด ํผ์„ผํŠธ๋ฅผ ์ˆจ๊ธฐ๊ณ  ์›์ ์ˆ˜ยท๊ฒ€ํ†  ํ•„์š”๋กœ ํ‘œ์‹œํ•ด์•ผ ํ•œ๋‹ค. ๊ฒ€์ƒ‰ ํ›„๋ณด ์˜์ƒ์„ ์ž๋™์œผ๋กœ ๋‚ด๋ ค๋ฐ›๋Š” ๋ถ€๋ถ„๊ณผ ํ”„๋กœ์„ธ์Šค ์žฌ์‹œ์ž‘์—๋„ ๋ณต๊ตฌ๋˜๋Š” ์˜๊ตฌ ํ๋Š” Issue #17์˜ ๋‚จ์€ ๋ฒ”์œ„๋‹ค. ํ™”๋ฉด ํ๋ฆ„๊ณผ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ๋Š” ๋ฐ๋ชจ ํŒŒ์ดํ”„๋ผ์ธ์— ์žˆ๋‹ค.

์ €์žฅ์†Œ ์•ˆ๋‚ด

๊ฒฝ๋กœ ๋‚ด์šฉ
faceguard_api FastAPI ๊ธฐ๋ฐ˜ ์–ผ๊ตด ๋™์ผ์ธ ๋น„๊ต API
notebooks ColabยทKaggle ์žฌํ˜„ ๋…ธํŠธ๋ถ
scripts ๋ฐ์ดํ„ฐ ์ ๊ฒ€ยท์ „์ฒ˜๋ฆฌยทํ•™์Šตยทํ‰๊ฐ€ ๋„๊ตฌ
configs/faceguard ๋ถ„ํ• ยทํ‰๊ฐ€ ํ”„๋กœํ† ์ฝœ ์„ค์ •
configs/deepfake ๋”ฅํŽ˜์ดํฌ ๊ธฐ์ค€์„ ยทํ›„๋ณด ๋น„๊ต์˜ ๊ณ ์ • ์‹คํ—˜ ์„ค์ •
reports ๊ฐœ์ธ์ •๋ณด๋ฅผ ์ œ์™ธํ•œ ์ง‘๊ณ„ ๊ฒฐ๊ณผ์™€ ๊ทธ๋ž˜ํ”„
tests ๋ˆ„์ˆ˜ยท์ง€ํ‘œยทAPIยท๋…ธํŠธ๋ถ ์žฌํ˜„ ํ…Œ์ŠคํŠธ
docs ๋ชฉ์ ๋ณ„ ์‚ฌ์šฉ ๊ฐ€์ด๋“œยท๋ฐ๋ชจยท์‹คํ—˜ ๋ฌธ์„œ์™€ ์ฝ๋Š” ์ˆœ์„œ
CONTRIBUTING.md ๋ธŒ๋žœ์น˜ยท์ปค๋ฐ‹ยทPRยท๊ธˆ์ง€ ์‚ฐ์ถœ๋ฌผ ๊ทœ์น™

๋กœ์ปฌ ํ…Œ์ŠคํŠธ

python3.11 -m venv .venv
source .venv/bin/activate
python -m pip install -r requirements-api-test.txt
python -m unittest discover -s tests
python scripts/check_repository_hygiene.py

๋ฐ์ดํ„ฐยท๊ฐœ์ธ์ •๋ณดยท๋ผ์ด์„ ์Šค

  • ์–ผ๊ตด ์˜์ƒยท์ด๋ฏธ์ง€, ์–ผ๊ตด crop, ์ž„๋ฒ ๋”ฉ, ์˜์ƒ๋ณ„ ์ ์ˆ˜, checkpoint์™€ ONNX๋Š” GitHub์— ์˜ฌ๋ฆฌ์ง€ ์•Š๋Š”๋‹ค.
  • ๊ณต๊ฐœ ์›น ๊ฒ€์ƒ‰์€ ์ ‘๊ทผ์ด ํ—ˆ์šฉ๋œ ๊ณต๊ฐœ ์˜์—ญ๋งŒ ๋Œ€์ƒ์œผ๋กœ ํ•˜๊ณ  ๋น„๊ณต๊ฐœ ๊ณ„์ •์ด๋‚˜ ์ ‘๊ทผ ์ œํ•œ ์˜์—ญ์„ ์ž๋™ ํƒ์ƒ‰ํ•˜์ง€ ์•Š๋Š”๋‹ค.
  • ์›๋ณธ ์‚ฌ์ง„๊ณผ ์–ผ๊ตด ํŠน์ง•์€ API ์š”์ฒญ ์ฒ˜๋ฆฌ ํ›„ ์˜๊ตฌ ์ €์žฅํ•˜์ง€ ์•Š๋Š”๋‹ค.
  • InsightFace ์ฝ”๋“œ์™€ ์ œ๊ณต ์‚ฌ์ „ํ•™์Šต ๊ฐ€์ค‘์น˜์˜ ์‚ฌ์šฉ ์กฐ๊ฑด์€ ๋‹ค๋ฅด๋‹ค.
  • ํ˜„์žฌ buffalo_l์™€ ์–ผ๊ตด ๊ฒ€์ถœ ๊ฐ€์ค‘์น˜๋Š” ๋น„์ƒ์—… ์—ฐ๊ตฌ ๋ฒ”์œ„๋กœ๋งŒ ์‚ฌ์šฉํ•œ๋‹ค.
  • ํ˜„์žฌ ์–ผ๊ตด ๊ธฐ์ค€๊ฐ’๊ณผ ๋”ฅํŽ˜์ดํฌ ๊ธฐ์ค€๊ฐ’์€ ๋ชจ๋‘ ์—ฐ๊ตฌ์šฉ์ด๋‹ค. K-FACE๋กœ ํ•œ๊ตญ์ธ ์ €ยท์ค‘ํ™”์งˆ ํ†ต์ œ ์กฐ๊ฑด์€ ๊ฒ€์ฆํ–ˆ์ง€๋งŒ, ์‹ค์ œ ์›น ์žฌ์••์ถ•ยท์ตœ์‹  ์ƒ์„ฑ ๋ฐฉ์‹์˜ ์šด์˜ ์„ฑ๋Šฅ์„ ๋ณด์žฅํ•˜์ง€ ์•Š๋Š”๋‹ค.

๋‹ค์Œ ์ž‘์—… ์ˆœ์„œ

๋ชจ๋ธ๋ง์€ ์•„๋ž˜ ์ˆœ์„œ๋กœ ์ง„ํ–‰ํ•œ๋‹ค. ์ƒˆ ๋ชจ๋ธ์˜ ์„ฑ๋Šฅ ์ˆ˜์น˜๋Š” ์‹ค์ œ ์‹คํ–‰ ํ›„์—๋งŒ ๊ธฐ๋กํ•˜๊ณ , ๊ฐ ๋‹จ๊ณ„๋Š” ๊ฐ™์€ ๋ถ„ํ• ๊ณผ ๊ฐ™์€ ์ง€ํ‘œ๋กœ ๋น„๊ตํ•œ๋‹ค.

  1. K-FACE ์ €ํ™”์งˆโ†’์ค‘ํ™”์งˆ ์ž„๋ฒ ๋”ฉ ๋ณด์ • ์–ด๋Œ‘ํ„ฐ ๋น„๊ต ์™„๋ฃŒยท๋ฏธ์ฑ„ํƒ (#44)
  2. ์ €ํ•ด์ƒ๋„ ์–ผ๊ตด crop ๊ธฐ๋ฐ˜ ์ธ์‹ ๋ฏธ์„ธ ์กฐ์ •๊ณผ ์ƒˆ๋กœ์šด ์™ธ๋ถ€ ์ž ๊ธด Test ์„ค๊ณ„ (#47)
  3. EfficientNet-B4/Xception ๊ณต์ • ๋น„๊ต ์™„๋ฃŒยทEfficientNet-B4 ์œ ์ง€ (#29)
  4. JPEG ์กฐ๊ฑด๋ถ€ ๊ฒฐํ•ฉ Validation ํ›„๋ณด ์„ ํƒ ์™„๋ฃŒ, ์‹ค์ œ ์›น JPEG ํ’ˆ์งˆ Gateยท์™ธ๋ถ€ ๊ฒ€์ฆ ์ง„ํ–‰ (#35)
  5. SBI๋กœ ๋ณด์ง€ ๋ชปํ•œ ์กฐ์ž‘ ๋ฐฉ์‹์˜ ์ผ๋ฐ˜ํ™” ์„ฑ๋Šฅ ๊ฒ€์ฆ (#30)
  6. ์‹ค์ œ ์˜์ƒ hard negative์™€ ์™ธ๋ถ€ ๊ฒ€์ฆ subset ๊ตฌ์ถ• (#31)
  7. ๊ฒฐ์Šน ํ›„๋ณด์— FTCN ์‹œ๊ฐ„ ์ •๋ณด์™€ ์•™์ƒ๋ธ” ์ถ”๊ฐ€ ํšจ๊ณผ ๊ฒ€์ฆ (#32)

์ œํ’ˆ ํŒŒ์ดํ”„๋ผ์ธ์€ ๋ชจ๋ธ๋ง๊ณผ ๋ณ‘ํ–‰ํ•ด ๋‹ค์Œ ์ˆœ์„œ๋กœ ์ด์–ด๊ฐ„๋‹ค.

  1. ๊ฒ€์ƒ‰ ์ด๋ฏธ์ง€ ๋‹ค์ค‘ ์–ผ๊ตด ์ฒ˜๋ฆฌ์™€ ์˜์ƒ ์–ผ๊ตด ํŠธ๋ž™ ๋น„๊ต ๊ตฌํ˜„ (#14)
  2. ๋น„๋™๊ธฐ ์Šค์บ”์— ํ›„๋ณด ์˜์ƒ URL ๋‹ค์šด๋กœ๋“œ์™€ ์žฌ์‹œ์ž‘ ๋ณต๊ตฌ์šฉ ์˜๊ตฌ ํ ์—ฐ๊ฒฐ (#17)
  3. ๊ฒ€์ƒ‰ยท์„ ๋ณ„ยท์ด๋ฏธ์ง€ยท์˜์ƒ ONNX ์—ฐ๊ฒฐ ๊ฒฐ๊ณผ๋ฅผ ์‹ค์ œ ๋™์˜ ๋ฐ์ดํ„ฐ๋กœ ์ˆ˜์น˜ ๊ฒ€์ฆ (#18)

๋ฐœํ‘œ์šฉ ํ•œ ๋ฌธ์žฅ

๋”ฅ์†Œ๊ฐ ์–ผ๊ตด๊ฐ€๋“œ๋Š” ๋“ฑ๋ก ์–ผ๊ตด๊ณผ ๊ณต๊ฐœ ํ›„๋ณด์˜ ๋™์ผ์ธ ๊ฐ€๋Šฅ์„ฑ์„ ArcFace๋กœ ์„ ๋ณ„ํ•˜๊ณ , Celeb-DF-v2 ์ „์ฒด๋กœ ํ•™์Šตํ•œ ๋ณ„๋„ ๋ชจ๋ธ์ด ํ›„๋ณด ์˜์ƒ์˜ ๋”ฅํŽ˜์ดํฌ ์œ„ํ—˜์„ ๋ถ„์„ํ•˜๋„๋ก ์„ค๊ณ„ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ ์–ผ๊ตด ๋น„๊ต API์™€ ๋”ฅํŽ˜์ดํฌ ํ•™์Šตยทํ‰๊ฐ€๋Š” ์™„๋ฃŒํ–ˆ์ง€๋งŒ ์˜ค๊ฒฝ๊ณ ์œจ์ด ๋ชฉํ‘œ๋ฅผ ๋„˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์—ฐ๊ตฌ ๊ฒฐ๊ณผ๋กœ ๊ณต๊ฐœํ•˜๊ณ  ์šด์˜ ์ ์šฉ์€ ๋ณด๋ฅ˜ํ–ˆ์Šต๋‹ˆ๋‹ค.

About

No description, website, or topics provided.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages