[ํ•œ๊ตญ์–ด] X-Ray Object Detection and Saliency

Running saliency explanation with Yolo

X-Ray Object Detection and XAI

Object Detection ์—ฐ๊ตฌ ๊ฐœ์š”

OD ์—ฐ๊ตฌ๋Š” ๋ฌผ์ฒด ์˜ˆ์ธก์„ ํ•˜๋Š” 2012๋…„ CNN์ดํ›„ Object Detection Task์—์„œ ๋ฌผ์ฒด ํƒ์ง€๋ฅผ ์œ„ํ•œ ์—ฐ๊ตฌ๋กœ ์ง„ํ–‰๋˜์—ˆ๋‹ค. ์‹ ๊ฒฝ๋ง์„ ํ™œ์šฉํ•œ ๋ฐฉ์‹์€ ํฌ๊ฒŒ candidate sampling ์˜ ์—ฌ๋ถ€๋กœ one-stage ์™€ two-stage ๋กœ ๋‚˜๋‰œ๋‹ค. ๋‘ ๊ฐ€์ง€ ๋ฐฉ์‹ ์ค‘ ์˜จ๋ผ์ธ์—์„œ ๋”์šฑ ๋น ๋ฅด๊ฒŒ ์˜ˆ์ธกํ•˜๋ฉฐ ์‹ ๊ฒฝ๋ง ์˜์‚ฌ๊ฒฐ์ •์„ ์„ค๋ช…ํ•˜๊ธฐ์— ์ ํ•ฉํ•œ ๋ฐฉ์‹์€ one-stage ์ด๋‹ค. ๋Œ€ํ‘œ์ ์ธ one-stage์ธ YOLO๋Š” 2014๋…„ YOLOv1 ์„ ์‹œ์ž‘์œผ๋กœ 2023๋…„ YOLOv8๊นŒ์ง€ ๋ชจ๋ธ์ด ๋‚˜์™”๋‹ค.

YOLO Architecture๋Š” ์ „์ฒด์ ์ธ ํ”„๋ ˆ์ž„์›Œํฌ ๋ณ€ํ™”๋Š” ์ ์œผ๋‚˜ ๊ฐ ๋ชจ๋ธ๋ณ„๋กœ output ์˜ ํ˜•ํƒœ๊ฐ€ ์ผ์น˜ํ•˜์ง€ ์•Š๋Š”๋‹ค. ์ด๋Ÿฌํ•œ output-ํ˜•ํƒœ์˜ ๋น„์ •ํ˜•ํ™”๋Š” ์„ค๋ช… ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์„ค๊ณ„ํ•˜๋Š”๋ฐ ๊ณ ๋ ค๋˜์–ด์•ผ ํ•œ๋‹ค. ์™œ๋ƒํ•˜๋ฉด, ์˜์‚ฌ๊ฒฐ์ •์„ ์„ค๋ช…ํ•˜๋Š” ์ธ๊ณต์ง€๋Šฅ์ด ๋ฌด์—‡์„ ์˜์‚ฌ๊ฒฐ์ •์œผ๋กœ ์นญํ•˜๋Š”์ง€์— ๋”ฐ๋ผ์„œ ์„ค๋ช…์ด ๋‹ฌ๋ผ์ง€๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. YOLOv3์™€ YOLOv8์˜ ๊ฒฝ์šฐ ๋ชจ๋ธ์˜ ์•„์›ƒํ’‹์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ˜•ํƒœ๋กœ ๋˜์–ด์žˆ๋‹ค.

๋ชจ๋ธ ์•„์›ƒํ’‹ ํ˜•ํƒœ Anchor Box
YOLOv5 [batch_size, number_of_anchors, 4 + 1 + number_of_classes] Anchor Box
YOLOv8 [batch_size, number_of_anchors, 4 + number_of_classes] Anchor Box Free

์ถœ๋ ฅ๊ฐ’์˜ ํ˜•ํƒœ๊ฐ€ ๋‹ค๋ฅผ์ง€๋ผ๋„, XAI๊ธฐ์ˆ  ์ค‘ ์ผ๋ถ€๋Š” ๋ชจ๋ธ์˜ ์˜์‚ฌ๊ฒฐ์ •์„ ์„ค๋ช…ํ•˜๋Š”๋ฐ ์ ์šฉ๋  ์ˆ˜ ์žˆ๋‹ค. ์ธ๊ณต์ง€๋Šฅ ์„ค๋ช… ๊ธฐ์ˆ  XAI๋Š” ๋ชจ๋ธ์˜ ํƒ€์ž…์— ํฌ๊ฒŒ ๋ณ€ํ™”ํ•˜์ง€ ์•Š๋Š” model-agnostic ํ•œ saliency map ํ˜น์€ CAM๊ธฐ๋ฐ˜์ด ์ ํ•ฉํ•˜๋‹ค. ์ด๋Š” ์•ž์œผ๋กœ๋„ OD ๊ด€๋ จ ๋ชจ๋ธ์ด ๊ฐœ์„ ๋˜๋„ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•œ XAI๊ธฐ์ˆ ์˜ ์ ์šฉ์ด ์žฅ๋ ค๋˜๊ธฐ ๋–„๋ฌธ์ด๋‹ค. ์ตœ๊ทผ์—๋Š” ViT๋ชจ๋ธ์„ ํ™œ์šฉํ•œ OD ์—ฐ๊ตฌ๋„ ์ง„ํ–‰๋˜์—ˆ๋Š”๋ฐ, ์ด ๋ชจ๋ธ์— ๋Œ€ํ•ด์„œ Saliency Map๊ณผ CAM์€ ์ ํ•ฉํ•˜์ง€ ์•Š์œผ๋ฉฐ, Transformer์— ํŠนํ™”๋œ XAI๊ธฐ์ˆ  (attention, Transformer LRP)์™€ ๊ฐ™์€ ๊ธฐ์ˆ ์— ๋Œ€ํ•œ ์„ค๋ช… ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์—ฐ๊ตฌ๊ฐ€ ํ•„์š”ํ•˜๋‹ค.

X-ray + OD ํŠน์ง•

X-ray์—์„œ ์„ค๋ช…์ด ํ•„์š”ํ•œ ์ด์œ ๋Š” ๋Œ€๋ถ€๋ถ„์˜ ๊ฐ์ฒด๊ฐ€ overlapping๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. object detection ๋ชจ๋ธ์€ ๋Œ€๋ถ€๋ถ„ ๋ฌผ์ฒด์— ๋Œ€ํ•œ bounding-box์™€ ๋ ˆ์ด๋ธ”์„ ์ œ๊ณตํ•ด์ฃผ๋ฉฐ, ๊ฐ์ฒด๊ฐ€ ๊ฒน์ณ์žˆ์„ ๊ฒฝ์šฐ ๋ฌผ์ฒด์˜ ์ธ์‹์€ ๋‹ค์ค‘ ๊ฐ์ฒด์ด๋‹ค. ์ด์— ๋Œ€ํ•œ ๋Œ€์ฑ…์œผ๋กœ XAI๊ธฐ์ˆ ์€ ์˜์‚ฌ๊ฒฐ์ •์— ๋Œ€ํ•ด์„œ attribution map์„ ์ œ๊ณตํ•˜์—ฌ ์˜์‚ฌ๊ฒฐ์ •์„ ๋ณด์กฐํ•˜๋Š” ์—ญํ• ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ•œ๊ณ„๋ฅผ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋‹ค์ค‘ ์‹œ์ ์— ๋Œ€ํ•œ ๋ฌผ์ฒดํƒ์ง€๊ฐ€ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ์ด ๊ฒฝ์šฐ๋„ ์„ค๋ช…์„ ์ œ๊ณตํ•˜๋ฉด ๊ฐ์‹œ์ž ์ž…์žฅ์—์„œ ๋ฌผ์ฒด ํƒ์ง€์— ๋Œ€ํ•œ ๊ฒฝํ—˜์„ ๋ฐ”ํƒ•์œผ๋กœ ์˜์‚ฌ๊ฒฐ์ •์„ ๋ณด์ขŒํ•  ์ˆ˜ ์žˆ๋‹ค.

๋ฐ์ดํ„ฐ

ํ•™์Šต๋ฐ์ดํ„ฐ๋Š” Robotflow์—์„œ ์ œ๊ณตํ•˜๋Š” ์„ธ ์ข…๋ฅ˜์˜ ์œ„ํ—˜๋ฌผ X-Ray๋ฐ์ดํ„ฐ SIXRay, Threat, Prohibited๋ฅผ ์‚ฌ์šฉํ•˜ ์˜€๋‹ค. ์•„๋ž˜ ํ‘œ๋Š” ์„ธ ์ข…๋ฅ˜์˜ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ํ•™์Šต, ํ‰๊ฐ€, ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ์˜ ์ˆ˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

Data train valid test
SIXRay 5819 1662 831
Threat 2518 298 152
Prohibited 8685 1660 797

ํ•™์Šต ๊ฒฐ๊ณผ

YOLO ๋ชจ๋ธ์˜ ํ•™์Šต์€ 50 Epoch์„ ์ง„ํ–‰ํ•˜์˜€๋‹ค. YOLO ๋ชจ๋ธ์˜ ์„ธ๊ฐ€์ง€ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์„ฑ๋Šฅ์€ ์•„๋ž˜ ํ‘œ์™€ ๊ฐ™๋‹ค. ์„ฑ๋Šฅ์ง€ํ‘œ๋Š” mAP50 (mean Average Precision), mAP50-95(0.5๋ถ€ํ„ฐ 0.95๊นŒ์ง€)์ธก์ •์„ ์‚ฌ์šฉํ•˜์˜€๋‹ค.

Data YOLOv5 mAP50 YOLOv8 mAP50 YOLOv5 mAP50-95 YOLOv8 mAP50-95
SIXRay 88.07 88.84 61.22 62.37
Threat 96.98 96.91 85.91 85.27
Prohibited 88.57 90.07 63.38 65.27

XAI ๊ฒฐ๊ณผ

์•„๋ž˜ ๊ทธ๋ฆผ์€ SIXRay ๋ฐ์ดํ„ฐ์™€ Threat ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ saliency map ์˜ˆ์‹œ๋ฅผ ๋ณด์—ฌ์ค€๋‹ค.

XAI ํšจ๊ณผ

(XAI๊ฐ€ ๊ฐ์ฒด ํƒ์ง€์˜ ์ค‘์š”๋ถ€์œ„๋ฅผ ๋ณด์—ฌ์ค€๋‹ค.)

  • ์˜ˆ์ธก ๊ฒฐ๊ณผ: ๋ Œ์น˜
  • XAI ๊ฒฐ๊ณผ: ๋ Œ์น˜์˜ ๋, ์ค‘๊ฐ„ ๋ถ€๋ถ„, ์นผ์˜ ์†์žก์ด

์œ„ํ—˜๋ฌผ์˜ ์–ด๋–ค ๋ถ€๋ถ„์ด ์˜ˆ์ธก์— ์ž‘์šฉํ•˜์˜€๋Š”์ง€ ๋ณด์—ฌ์ค€๋‹ค. XAI ๊ธฐ์ˆ ์ด ๋ Œ์น˜์˜ ๋จธ๋ฆฌ ๋ถ€๋ถ„์„ ๊ฐ•์กฐํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ๊ด€์ฐฐ์ž๋Š” ํ•ด๋‹น ๋ถ€๋ถ„์„ ๊ณ ๋ คํ•  ์ˆ˜ ์žˆ๋‹ค.

(XAI๊ฐ€ ๊ฐ์ฒด ํƒ์ง€์˜ ์ค‘์š”๋ถ€์œ„๋ฅผ ๋ณด์—ฌ์ค€๋‹ค.)

  • ์˜ˆ์ธก ๊ฒฐ๊ณผ: ์—†์Œ
  • XAI ๊ฒฐ๊ณผ: ์•„๋ž˜ ํ•˜๋‹จ ๋ฌผ์ฒด

๊ฐ์ฒด ํƒ์ง€๋Š” ์ด๋ฃจ์–ด์ง€์ง€ ์•Š์•˜๋‹ค. ๋ฌผ์ฒด์˜ ํ™•์‹ ์ด ๋‚ฎ์•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. XAI๊ฒฐ๊ณผ ์•„๋ž˜์ชฝ ๋ฌผ์ฒด์˜ ๊ธฐ์—ฌ๊ฐ€ ์กด์žฌํ–ˆ๊ธฐ์— ๊ด€์ฐฐ์ž๋Š” ํ•ด๋‹น ๋ฌผ์ฒด๋ฅผ ์žฌ๊ณ ๋ คํ•  ์ˆ˜ ์žˆ๋‹ค.

(XAI๊ฐ€ ๊ฐ์ฒด ํƒ์ง€์˜ ์ค‘์š”๋ถ€์œ„๋ฅผ ๋ณด์—ฌ์ค€๋‹ค.)

  • ์˜ˆ์ธก ๊ฒฐ๊ณผ: ์นผ
  • XAI ๊ฒฐ๊ณผ: ์นผ๋‚ ๊ณผ ์†์žก์ด ์ค‘๊ฐ„ ๋ถ€๋ถ„

์นผ๋กœ ์˜ˆ์ธกํ•œ ๊ทผ๊ฑฐ๋Š” ์นผ๋‚ ๊ณผ ์†์žก์ด ์ค‘๊ฐ„ ๋ถ€๋ถ„์ด ๋‹ค๋ฅด๊ธฐ ๋–„๋ฌธ์ด๋‹ค. XAI ์ •๋ณด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๊ด€์ฐฐ์ž๋Š” ํ•ด๋‹น ๋ถ€๋ถ„์„ ์ง‘์ค‘์ ์œผ๋กœ ๊ณ ๋ คํ•  ์ˆ˜ ์žˆ๋‹ค. (์†์žก์ด ๋ถ€๋ถ„์˜ ๊ธฐ์—ฌ๋„๋Š” ์ˆ˜๋ฆฌ๊ฒ€์˜ ๋๋ถ€๋ถ„์œผ๋กœ ๋ฐœ์ƒํ•œ ๊ฒƒ์ด๋‹ค.)

(์ˆ˜๋ฆฌ๊ฒ€์˜ bounding box ๊ธฐ์—ฌ)

  • ์˜ˆ์ธก ๊ฒฐ๊ณผ: ํ‘œ์ฐฝ (95% ์‹ ๋ขฐ๋„)
  • XAI ๊ฒฐ๊ณผ: ํ‘œ์ฐฝ์˜ ๋ ๋ถ€๋ถ„

๋ชจ๋ธ์˜ ๋ฌผ์ฒด์˜ bounding box๋ฅผ ์ถ”์ •ํ•˜๋„๋ก ํ•™์Šต๋˜์—ˆ๋‹ค. ํ‘œ์ฐฝ์˜ ๋๋ถ€๋ถ„์€ ๋ฌผ์ฒด๋ฅผ ํƒ์ง€ํ•˜๋Š” ๊ฒƒ๊ณผ ๋ฌผ์ฒด์˜ bounding box๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ์—ญํ• ์„ ํ•˜์˜€๋‹ค.

์ถ”ํ›„ ์—ฐ๊ตฌ ๋ฐฉํ–ฅ

์—ฐ๊ตฌ๊ฒฐ๊ณผ ๊ฐ์ฒด ํƒ์ง€์— ๋Œ€ํ•ด์„œ ์ธ๊ณต์ง€๋Šฅ ์„ค๋ช… ๊ธฐ์ˆ ์ด ๋ชจ๋ธ์˜ ์˜์‚ฌ๊ฒฐ์ •์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜์—ฌ, ๊ด€์ฐฐ์ž๊ฐ€ ์ž…๋ ฅ ์ด๋ฏธ์ง€, ์˜์‚ฌ๊ฒฐ์ •, ์˜์‚ฌ๊ฒฐ์ • ํ•ด์„์œผ๋กœ ๋” ์ข‹์€ ์˜์‚ฌ๊ฒฐ์ •์„ ๋ณด์ผ ๊ฐ€๋Šฅ์„ฑ์„ ๋ณด์˜€๋‹ค. ํ˜„์žฌ ํ•œ๊ณ„๋Š” ์„ค๋ช…๊ธฐ์ˆ ์˜ ์ •ํ™•๋„๊ฐ€ ๋ถˆ์™„์ „ํ•˜๋ฉฐ, ๊ณ ๋„ํ™”๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ, ์ž˜๋ชป๋œ ์˜์‚ฌ๊ฒฐ์ • ์„ค๋ช…์„ ์ค„ ์ˆ˜ ์žˆ๋‹ค.

ํ˜„์žฌ ์ˆ˜์ค€๋ณด๋‹ค ํ•ด์„ ์ˆ˜์ค€์„ ๋†’์ด๊ธฐ ์œ„ํ•ด์„œ๋Š” 1) ๊ณ ๋„ํ™”๋œ XAI๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•˜์—ฌ ์œ„ํ—˜๋ฌผ์ฒด ํƒ์ง€์— ์ ํ•ฉํ•œ ์„ค๋ช…์„ ์ œ๊ณตํ•˜๊ณ , 2) ๋‹ค์ค‘๋ฌผ์ฒดํƒ์ง€์— ์ ํ•ฉํ•œ XAI ๊ธฐ์ˆ ์„ ๊ฐœ๋ฐœํ•ด์•ผ ํ•œ๋‹ค. ์„ค๋ช… ๊ธฐ์ˆ ์˜ ์ •์„ฑ์  ํ‰๊ฐ€ ๋ฐ object detection์— ๋Œ€ํ•ด์„œ ์ ํ•ฉํ•œ ์„ค๋ช… ๊ธฐ์ˆ ์ด ํ•„์š”ํ•˜๋‹ค.