๐Ÿง  YOLOv7: ์‹ค์‹œ๊ฐ„ ๊ฐ์ฒด ํƒ์ง€ํ•˜๋Š” ๋”ฅ๋Ÿฌ๋‹ ๋ชจ๋ธ

๐Ÿ“Œ ๊ฐœ์š”

YOLO(You Only Look Once) ์‹œ๋ฆฌ์ฆˆ๋Š” ์ปดํ“จํ„ฐ ๋น„์ „์—์„œ ๊ฐ์ฒด ํƒ์ง€(Object Detection)๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ˆ˜ํ–‰ํ•˜๋Š” ๋Œ€ํ‘œ์ ์ธ ๋”ฅ๋Ÿฌ๋‹ ๋ชจ๋ธ์ž…๋‹ˆ๋‹ค.
๊ทธ์ค‘์—์„œ๋„ YOLOv7์€ 2022๋…„ 7์›”, WongKinYiu ํŒ€์ด ๋ฐœํ‘œํ•œ ๊ฐ€์žฅ ๊ฐ•๋ ฅํ•˜๊ณ  ๋น ๋ฅธ ๋ชจ๋ธ ์ค‘ ํ•˜๋‚˜๋กœ,
์†๋„์™€ ์ •ํ™•๋„ ์–‘์ชฝ ๋ชจ๋‘์—์„œ SOTA(State of the Art) ๋ฅผ ๋‹ฌ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ† โ€œYOLOv7์€ YOLO ๊ณ„์—ด ์ค‘ ๊ฐ€์žฅ ์ •ํ™•ํ•˜๊ณ , ๊ฐ€์žฅ ๋น ๋ฅธ ๊ฐ์ฒด ํƒ์ง€ ๋ชจ๋ธโ€
โ€“ ๋…ผ๋ฌธ โ€œYOLOv7: Trainable Bag-of-Freebies Sets New State-of-the-Art for Real-Time Object Detectorsโ€


๐Ÿ” YOLOv7์˜ ํ•ต์‹ฌ ํŠน์ง•

ํŠน์ง•์„ค๋ช…
๐Ÿ“ฆ ๋‹จ์ผ ๋ชจ๋ธ ๊ตฌ์กฐAnchor-free + anchor-based ๋ชจ๋‘ ํ†ตํ•ฉ๋œ ๋ชจ๋ธ
๐Ÿง  ์Šค์Šค๋กœ ๊ตฌ์กฐ ํƒ์ƒ‰Trainable bag-of-freebies ์ „๋žต
๐Ÿ’ก Auxiliary Head๋ณด์กฐ ํ•™์Šต ํ—ค๋“œ๋กœ ์ •ํ™•๋„ ํ–ฅ์ƒ
โšก ์†๋„TensorRT/ONNX ์ตœ์ ํ™” ์‹œ ์‹ค์‹œ๊ฐ„ ๋Œ€์‘
๐Ÿ“ ํŒŒ๋ผ๋ฏธํ„ฐ ํšจ์œจ์„ฑYOLOv5 ๋Œ€๋น„ ๋น„์Šทํ•œ ํฌ๊ธฐ์— ๋” ๋†’์€ ์ •ํ™•๋„

๐Ÿงฑ YOLOv7 ๊ธฐ์ˆ  ๊ตฌ์กฐ

1. E-ELAN (Extended Efficient Layer Aggregation Network)

  • ResNet ์Šคํƒ€์ผ์˜ skip connection์„ ๋” ํšจ๊ณผ์ ์œผ๋กœ ๋ฐฐ์น˜
  • ๋” ๊นŠ์€ ๋„คํŠธ์›Œํฌ๋ฅผ ํ›ˆ๋ จ ์•ˆ์ •์„ฑ ์œ ์ง€ํ•˜๋ฉฐ ํ™•์žฅ ๊ฐ€๋Šฅ

2. Model Re-parameterization

  • ํ›ˆ๋ จ ์‹œ์—๋Š” ๋ณต์žกํ•œ ๋ถ„๊ธฐ ๊ตฌ์กฐ๋ฅผ ์œ ์ง€
  • ์ถ”๋ก  ์‹œ์—๋Š” ๋‹จ์ผ ๊ฒฝ๋กœ๋กœ ์žฌ๊ตฌ์„ฑํ•˜์—ฌ ์†๋„ ํ–ฅ์ƒ

์ฆ‰, ํ•™์Šต ์‹œ์—๋Š” ๋ณต์žกํ•˜๊ฒŒ, ์ถ”๋ก  ์‹œ์—๋Š” ๋‹จ์ˆœํ•˜๊ฒŒ โ€“ ์„ฑ๋Šฅ๊ณผ ์†๋„ ๋ชจ๋‘ ํ™•๋ณด

3. Auxiliary Head ์ ์šฉ

  • ๋ณด์กฐ ์ถœ๋ ฅ์œผ๋กœ ์ค‘๊ฐ„ ํ”ผ์ฒ˜ ํ•™์Šต ์ง€์›
  • ์ •๊ทœํ™” ํšจ๊ณผ์™€ ์ผ๋ฐ˜ํ™” ํ–ฅ์ƒ

4. Coarse-to-Fine Lead Head

  • ํฐ ๊ฐ์ฒด๋ถ€ํ„ฐ ์ž‘์€ ๊ฐ์ฒด๊นŒ์ง€ ๋‹จ๊ณ„์ ์œผ๋กœ ํ•™์Šต
  • ๋ฌผ์ฒด ํฌ๊ธฐ ๋ณ€ํ™”์— ๊ฐ•์ธํ•จ

๐Ÿ“Š ์„ฑ๋Šฅ ๋น„๊ต (COCO ๊ธฐ์ค€)

๋ชจ๋ธAP (์ •ํ™•๋„)FPS (์†๋„)ํŒŒ๋ผ๋ฏธํ„ฐ
YOLOv5-L49.09546M
YOLOv651.18043M
YOLOv751.4160+37M
YOLOX50.06054M

๐Ÿ“Œ YOLOv7์€ ๋” ์ž‘์€ ํŒŒ๋ผ๋ฏธํ„ฐ ์ˆ˜๋กœ ๋” ๋†’์€ ์ •ํ™•๋„์™€ ์†๋„๋ฅผ ๋‹ฌ์„ฑํ•จ


๐Ÿงช ์‹ค์ œ ๊ตฌํ˜„ ์˜ˆ

YOLOv7์€ GitHub์—์„œ PyTorch ๊ธฐ๋ฐ˜์œผ๋กœ ์˜คํ”ˆ์†Œ์Šค๊ฐ€ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

bash

git clone https://github.com/WongKinYiu/yolov7
cd yolov7
python detect.py --weights yolov7.pt --source test.jpg

์ž…๋ ฅ

  • ์ด๋ฏธ์ง€, ์˜์ƒ, ์›น์บ  ๊ฐ€๋Šฅ
  • ๋‹ค์–‘ํ•œ ํ•ด์ƒ๋„ ์ง€์›

์ถœ๋ ฅ

  • ๋ฐ”์šด๋”ฉ ๋ฐ•์Šค, ํด๋ž˜์Šค, confidence score ์‹œ๊ฐํ™” ๊ฐ€๋Šฅ
  • detect.py โ†’ ์‹ค์‹œ๊ฐ„ ํƒ์ง€ ํ…Œ์ŠคํŠธ์— ์ ํ•ฉ

๐Ÿš€ ํ™œ์šฉ ์‚ฌ๋ก€

๋ถ„์•ผํ™œ์šฉ ์˜ˆ์‹œ
์Šค๋งˆํŠธ ํŒฉํ† ๋ฆฌ์‚ฌ๋žŒ ๋ฐ ์žฅ๋น„ ์œ„ํ—˜ ํƒ์ง€, ๊ณต์ • ์ด์ƒ ํƒ์ง€
์ž์œจ์ฃผํ–‰๋ณดํ–‰์ž/์ฐจ๋Ÿ‰ ์ธ์‹, ๋„๋กœ ํ‘œ์ง€ ํƒ์ง€
๋ณด์•ˆ/๊ฐ์‹œ์นจ์ž… ํƒ์ง€, ์‹ค์‹œ๊ฐ„ ์ด๋ฒคํŠธ ์•Œ๋ฆผ
๋ฆฌํ…Œ์ผ ๋ถ„์„์‚ฌ๋žŒ ์ˆ˜ ์นด์šดํŠธ, ๋™์„  ๋ถ„์„
๋†์—…/ํ™˜๊ฒฝ์ž‘๋ฌผ ์ƒํƒœ ํ™•์ธ, ๋™๋ฌผ ์‹๋ณ„, ์“ฐ๋ ˆ๊ธฐ ๋ถ„๋ฅ˜

๐Ÿ’ก YOLOv7๊ณผ YOLO ๊ณ„์—ด ๋น„๊ต

ํ•ญ๋ชฉYOLOv4YOLOv5YOLOv6YOLOv7
์ถœ์ฒ˜Alexey BochkovskiyUltralyticsMeituanWongKinYiu
์–ธ์–ดDarknetPyTorchPyTorchPyTorch
๊ณต๊ฐœ ์‹œ์ 2020202020222022
์„ฑ๋Šฅโ˜…โ˜…โ˜…โ˜…โ˜…โ˜…โ˜…โ˜…โ˜…โ˜…โ˜…โ˜†โ˜…โ˜…โ˜…โ˜…โ˜…

โš ๏ธ ํ•œ๊ณ„ ๋ฐ ์œ ์˜์ 

  • ์ตœ์‹  Transformer ๊ธฐ๋ฐ˜ ํƒ์ง€ ๋ชจ๋ธ(DETR ๋“ฑ)์—๋Š” ์ผ๋ถ€ ์ž‘์—…์—์„œ ๋ฐ€๋ฆด ์ˆ˜ ์žˆ์Œ
  • ์ถ”๋ก  ์†๋„๋Š” ํ•˜๋“œ์›จ์–ด(GPU, CPU) ์ตœ์ ํ™”์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง
  • ๋ณต์žกํ•œ ์˜ค๋ธŒ์ ํŠธ๊ฐ€ ๋งŽ์€ ์žฅ๋ฉด์—์„  false detection ๋ฐœ์ƒ ๊ฐ€๋Šฅ์„ฑ ์กด์žฌ

โœ… ๊ฒฐ๋ก 

YOLOv7์€ 2024๋…„ ํ˜„์žฌ์—๋„ โ€˜์‹ค์‹œ๊ฐ„ ํƒ์ง€โ€™ ๊ธฐ์ค€์—์„œ ๊ฐ€์žฅ ํšจ์œจ์ ์ธ ๋ชจ๋ธ ์ค‘ ํ•˜๋‚˜๋กœ ํ‰๊ฐ€๋ฐ›์Šต๋‹ˆ๋‹ค.

  • ์ •ํ™•๋„, ์†๋„, ๊ตฌํ˜„ ํŽธ์˜์„ฑ ๋ชจ๋‘ ๊ฐ–์ถ˜ ์‹ค๋ฌด ์ตœ์ ํ™” ๋ชจ๋ธ
  • PyTorch ๊ธฐ๋ฐ˜์œผ๋กœ ์ปค์Šคํ„ฐ๋งˆ์ด์ง•๊ณผ ํ™•์žฅ์„ฑ ์šฐ์ˆ˜
  • Edge AI, IoT, ์‚ฐ์—… AI ํ˜„์žฅ์—์„œ๋„ ์ ๊ทน ํ™œ์šฉ ๊ฐ€๋Šฅ

๐ŸŽฏ โ€œ๋น ๋ฅด๊ณ  ์ •ํ™•ํ•œ ๊ฐ์ฒด ํƒ์ง€๋ฅผ ์›ํ•œ๋‹ค๋ฉด, YOLOv7์ด ๊ฐ€์žฅ ํ•ฉ๋ฆฌ์ ์ธ ์„ ํƒ์ด๋‹ค.โ€


๐Ÿ”ง YOLOv7 ํ†ตํ•ฉ ํŒŒ์ดํ”„๋ผ์ธ: ํ•™์Šต + ์ตœ์ ํ™” + CCTV ์—ฐ๋™ + ์ž๋™ํ™” ์‹œ์Šคํ…œ

1๏ธโƒฃ YOLOv7 ํ•™์Šต ํŒŒ์ดํ”„๋ผ์ธ ์„ค๋ช…์„œ (Custom Dataset)

[๊ธฐ์กด ํ•™์Šต ํŒŒ์ดํ”„๋ผ์ธ ๋‚ด์šฉ ์œ ์ง€โ€ฆ]


7๏ธโƒฃ ์ด๋ฉ”์ผ ์•Œ๋ฆผ ์—ฐ๋™ (SMTP ๊ธฐ๋ฐ˜)

๐Ÿ“ง ๊ธฐ๋ณธ ์„ค์ •

  • Gmail SMTP ์„œ๋ฒ„ ์‚ฌ์šฉ
  • smtplib, email.message ๋ชจ๋“ˆ ํ•„์š”

importsmtplib

fromemail.messageimportEmailMessage

defsend_email_alert(subject,body,to_email):

msg=EmailMessage()

msg.set_content(body)

msg[โ€˜Subjectโ€™]=subject

msg[โ€˜Fromโ€™]=โ€™your_email@gmail.comโ€™

msg[โ€˜Toโ€™]=to_email

withsmtplib.SMTP_SSL(โ€˜smtp.gmail.comโ€™,465)assmtp:

smtp.login(โ€˜your_email@gmail.comโ€™,โ€™your_app_passwordโ€™)

smtp.send_message(msg)

โ†’ ์‚ฌ์šฉ ์˜ˆ: send_email_alert("[YOLOv7] ์‚ฌ๋žŒ ๊ฐ์ง€", "CCTV์— ์‚ฌ๋žŒ ๋ฐœ๊ฒฌ๋จ", "admin@domain.com")

๐Ÿ“Œ ์ฃผ์˜์‚ฌํ•ญ

  • Google ๊ณ„์ • โ†’ ์•ฑ ๋น„๋ฐ€๋ฒˆํ˜ธ ์ƒ์„ฑ ํ•„์š” (๋ณด์•ˆ์„ฑ ๊ฐ•ํ™”)

8๏ธโƒฃ ์นด์นด์˜ค ์•Œ๋ฆผ ์—ฐ๋™ (์นด์นด์˜คํ†ก ๋ฉ”์‹œ์ง€ API)

๐Ÿ“ฑ ์ค€๋น„

  • Kakao Developers ์—์„œ ์•ฑ ๋“ฑ๋ก
  • ์‚ฌ์šฉ์ž ๋™์˜ ํ† ํฐ ๋ฐœ๊ธ‰

๐Ÿงพ ๋ฉ”์‹œ์ง€ ์ „์†ก ์˜ˆ์‹œ

importrequests

defsend_kakao_alert(msg):

url=โ€™https://kapi.kakao.com/v2/api/talk/memo/default/sendโ€™

headers={โ€œAuthorizationโ€: โ€œBearer YOUR_ACCESS_TOKENโ€}

data={

โ€œtemplate_objectโ€: json.dumps({

โ€œobject_typeโ€: โ€œtextโ€,

โ€œtextโ€: msg,

โ€œlinkโ€: {โ€œweb_urlโ€: โ€œhttp://your-cctv.comโ€,โ€mobile_web_urlโ€: โ€œhttp://your-cctv.comโ€}

})

}

requests.post(url,headers=headers,data=data)

โ†’ ์‚ฌ์šฉ ์˜ˆ: send_kakao_alert("[๊ฒฝ๊ณ ] CCTV์— ์‚ฌ๋žŒ ๊ฐ์ง€!")


9๏ธโƒฃ Google Sheets ์‹œ๊ฐํ™” ๋Œ€์‹œ๋ณด๋“œ

๐Ÿ“Š Google Looker Studio ์—ฐ๋™

  1. Google Sheets๋ฅผ ๋ฐ์ดํ„ฐ ์†Œ์Šค๋กœ ์ถ”๊ฐ€
  2. ์‹œ๊ฐ„๋Œ€๋ณ„ ํƒ์ง€ ํšŸ์ˆ˜, ํด๋ž˜์Šค๋ณ„ ๋ถ„ํฌ, ์•Œ๋ฆผ ํŠธ๋ Œ๋“œ ๊ตฌ์„ฑ
  3. ํ•„ํ„ฐ ์ถ”๊ฐ€ (์‹œ๊ฐ„, ํด๋ž˜์Šค, ์นด๋ฉ”๋ผ ์œ„์น˜ ๋“ฑ)

๐Ÿ“‹ ์ถ”์ฒœ ์‹œ๊ฐํ™” ํ•ญ๋ชฉ

ํ•ญ๋ชฉ์‹œ๊ฐํ™” ํ˜•ํƒœ
๊ฐ์ง€ ํšŸ์ˆ˜ ์‹œ๊ฐ„๋Œ€๋ณ„ ๋ณ€ํ™”์„  ๊ทธ๋ž˜ํ”„
ํด๋ž˜์Šค๋ณ„ ๊ฐ์ง€ ๋น„์œจ์›ํ˜• ์ฐจํŠธ
์•Œ๋ฆผ ํŠธ๋ฆฌ๊ฑฐ ํšŸ์ˆ˜๋ง‰๋Œ€๊ทธ๋ž˜ํ”„
์‹ค์‹œ๊ฐ„ ๋กœ๊ทธ ๋ณด๊ธฐํ‘œ (์ž๋™ ๊ฐฑ์‹ )

โœ… ํ†ตํ•ฉ ์ž๋™ํ™” ์‹œ๋‚˜๋ฆฌ์˜ค ์š”์•ฝ

์กฐ๊ฑด: ์‚ฌ๋žŒ์ด ๊ฐ์ง€๋˜๋ฉด โ†’

  1. CCTV ํ”„๋ ˆ์ž„์— ๋ฐ”์šด๋”ฉ๋ฐ•์Šค ํ‘œ์‹œ
  2. Slack, Line, Kakao, Email ์•Œ๋ฆผ ๋ฐœ์†ก
  3. Google Sheets์— ๋กœ๊ทธ ๊ธฐ๋ก
  4. ์›น ๋Œ€์‹œ๋ณด๋“œ ์ž๋™ ๋ฐ˜์˜

โœ… ์ถ”๊ฐ€๋œ ๊ธฐ๋Šฅ ์š”์•ฝ

  1. ์ด๋ฉ”์ผ ์•Œ๋ฆผ (SMTP ๊ธฐ๋ฐ˜)
    • ์‚ฌ๋žŒ ๊ฐ์ง€ ์‹œ ์ฆ‰์‹œ ๊ด€๋ฆฌ์ž ์ด๋ฉ”์ผ ๋ฐœ์†ก
  2. ์นด์นด์˜ค ์•Œ๋ฆผํ†ก ์—ฐ๋™
    • Kakao Developers API๋ฅผ ํ†ตํ•ด ๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€ ์ „์†ก
  3. Google Sheets โ†’ Looker Studio ์‹œ๊ฐํ™”
    • ํƒ์ง€ ๋กœ๊ทธ๋ฅผ ์ž๋™ ์ฐจํŠธํ™”ํ•˜์—ฌ ์›น ๋Œ€์‹œ๋ณด๋“œ๋กœ ์‹œ๊ฐํ™”

์ด๋กœ์จ ํƒ์ง€ โ†’ ์‹ค์‹œ๊ฐ„ ์•Œ๋ฆผ โ†’ ๊ธฐ๋ก โ†’ ์‹œ๊ฐํ™” ๋Œ€์‹œ๋ณด๋“œ๊นŒ์ง€ ์™„์ „ํžˆ ์ž๋™ํ™”๋œ AI ๋ชจ๋‹ˆํ„ฐ๋ง ํŒŒ์ดํ”„๋ผ์ธ์ด ๊ตฌ์ถ•๋ฉ๋‹ˆ๋‹ค.