μ½˜ν…μΈ λ‘œ κ±΄λ„ˆλ›°κΈ°

TFLite Edge TPU 포맷으둜 내보내기 ν•™μŠ΅ν•˜κΈ° YOLOv8 λͺ¨λΈμ—μ„œ

λͺ¨λ°”일 λ˜λŠ” μž„λ² λ””λ“œ μ‹œμŠ€ν…œκ³Ό 같이 μ—°μ‚° λŠ₯λ ₯이 μ œν•œλœ λ””λ°”μ΄μŠ€μ— 컴퓨터 λΉ„μ „ λͺ¨λΈμ„ λ°°ν¬ν•˜λŠ” 것은 κΉŒλ‹€λ‘œμšΈ 수 μžˆμŠ΅λ‹ˆλ‹€. λΉ λ₯Έ μ„±λŠ₯에 μ΅œμ ν™”λœ λͺ¨λΈ ν˜•μ‹μ„ μ‚¬μš©ν•˜λ©΄ ν”„λ‘œμ„ΈμŠ€κ°€ κ°„μ†Œν™”λ©λ‹ˆλ‹€. TensorFlow Lite Edge TPU λ˜λŠ” TFLite Edge TPU λͺ¨λΈ ν˜•μ‹μ€ 신경망에 λΉ λ₯Έ μ„±λŠ₯을 μ œκ³΅ν•˜λ©΄μ„œ μ΅œμ†Œν•œμ˜ μ „λ ₯을 μ‚¬μš©ν•˜λ„λ‘ μ„€κ³„λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

TFLite Edge TPU 포맷으둜 내보내기 κΈ°λŠ₯을 μ‚¬μš©ν•˜λ©΄ Ultralytics YOLOv8 λͺ¨λΈμ„ 고속 및 μ €μ „λ ₯ 좔둠에 μ΅œμ ν™”ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 이 κ°€μ΄λ“œμ—μ„œλŠ” λ‹€μ–‘ν•œ λͺ¨λ°”일 및 μž„λ² λ””λ“œ μž₯μΉ˜μ—μ„œ λͺ¨λΈμ΄ 더 μ‰½κ²Œ μž‘λ™ν•  수 μžˆλ„λ‘ λͺ¨λΈμ„ TFLite Edge TPU ν˜•μ‹μœΌλ‘œ λ³€ν™˜ν•˜λŠ” 방법을 μ•ˆλ‚΄ν•©λ‹ˆλ‹€.

TFLite Edge TPU 둜 내보내야 ν•˜λŠ” 이유 ?

TensorFlow Edge TPU 둜 λͺ¨λΈμ„ 내보내면 λ¨Έμ‹  λŸ¬λ‹ μž‘μ—…μ„ λΉ λ₯΄κ³  효율적으둜 μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 이 κΈ°μˆ μ€ μ „λ ₯, μ»΄ν“¨νŒ… λ¦¬μ†ŒμŠ€ 및 연결성이 μ œν•œλœ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ— μ ν•©ν•©λ‹ˆλ‹€. Edge TPU λŠ” Google의 ν•˜λ“œμ›¨μ–΄ κ°€μ†κΈ°μž…λ‹ˆλ‹€. 엣지 κΈ°κΈ°μ—μ„œ TensorFlow 라이트 λͺ¨λΈμ˜ 속도λ₯Ό λ†’μž…λ‹ˆλ‹€. μ•„λž˜ μ΄λ―Έμ§€λŠ” κ΄€λ ¨ ν”„λ‘œμ„ΈμŠ€μ˜ 예λ₯Ό λ³΄μ—¬μ€λ‹ˆλ‹€.

TFLite Edge TPU

Edge TPU λŠ” μ–‘μžν™”λœ λͺ¨λΈκ³Ό ν•¨κ»˜ μž‘λ™ν•©λ‹ˆλ‹€. μ •λŸ‰ν™”λŠ” 정확도λ₯Ό 크게 μžƒμ§€ μ•ŠμœΌλ©΄μ„œλ„ λͺ¨λΈμ„ 더 μž‘κ³  λΉ λ₯΄κ²Œ λ§Œλ“­λ‹ˆλ‹€. μ΄λŠ” 엣지 μ»΄ν“¨νŒ…μ˜ μ œν•œλœ λ¦¬μ†ŒμŠ€μ— 이상적이며, 지연 μ‹œκ°„μ„ 쀄여 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ λΉ λ₯΄κ²Œ μ‘λ‹΅ν•˜κ³  ν΄λΌμš°λ“œ 의쑴 없이 λ‘œμ»¬μ—μ„œ 데이터λ₯Ό λΉ λ₯΄κ²Œ μ²˜λ¦¬ν•  수 μžˆλ„λ‘ ν•΄μ€λ‹ˆλ‹€. λ˜ν•œ 둜컬 μ²˜λ¦¬λŠ” μ‚¬μš©μž 데이터λ₯Ό 원격 μ„œλ²„λ‘œ μ „μ†‘ν•˜μ§€ μ•ŠκΈ° λ•Œλ¬Έμ— λΉ„κ³΅κ°œλ‘œ μ•ˆμ „ν•˜κ²Œ μœ μ§€ν•©λ‹ˆλ‹€.

TFLite Edge의 μ£Όμš” κΈ°λŠ₯ TPU

λ‹€μŒμ€ TFLite Edge TPU λ₯Ό κ°œλ°œμžμ—κ²Œ ν›Œλ₯­ν•œ λͺ¨λΈ ν˜•μ‹ μ„ νƒμœΌλ‘œ λ§Œλ“œλŠ” μ£Όμš” κΈ°λŠ₯μž…λ‹ˆλ‹€:

  • 엣지 λ””λ°”μ΄μŠ€μ—μ„œ μ΅œμ ν™”λœ μ„±λŠ₯: TFLite Edge TPU λŠ” μ–‘μžν™”, λͺ¨λΈ μ΅œμ ν™”, ν•˜λ“œμ›¨μ–΄ 가속, 컴파일러 μ΅œμ ν™”λ₯Ό 톡해 고속 λ‰΄λŸ΄ λ„€νŠΈμ›Œν‚Ή μ„±λŠ₯을 λ‹¬μ„±ν•©λ‹ˆλ‹€. μ΅œμ†Œν•œμ˜ μ•„ν‚€ν…μ²˜λ‘œ 더 μž‘μ€ 크기와 λΉ„μš© νš¨μœ¨μ„±μ„ μ œκ³΅ν•©λ‹ˆλ‹€.

  • 높은 μ—°μ‚° μ²˜λ¦¬λŸ‰: TFLite Edge TPU λŠ” 특수 ν•˜λ“œμ›¨μ–΄ 가속과 효율적인 λŸ°νƒ€μž„ 싀행을 κ²°ν•©ν•˜μ—¬ 높은 μ»΄ν“¨νŒ… μ²˜λ¦¬λŸ‰μ„ λ‹¬μ„±ν•©λ‹ˆλ‹€. μ—„κ²©ν•œ μ„±λŠ₯ μš”κ±΄μ„ κ°–μΆ˜ λ¨Έμ‹  λŸ¬λ‹ λͺ¨λΈμ„ 엣지 λ””λ°”μ΄μŠ€μ— λ°°ν¬ν•˜λŠ” 데 μ ν•©ν•©λ‹ˆλ‹€.

  • 효율적인 ν–‰λ ¬ μ—°μ‚°: TensorFlow Edge TPU λŠ” 신경망 계산에 ν•„μˆ˜μ μΈ ν–‰λ ¬ 연산에 μ΅œμ ν™”λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€. μ΄λŸ¬ν•œ νš¨μœ¨μ„±μ€ λ¨Έμ‹ λŸ¬λ‹ λͺ¨λΈ, 특히 μˆ˜λ§Žμ€ λ³΅μž‘ν•œ ν–‰λ ¬ κ³±μ…ˆκ³Ό λ³€ν™˜μ΄ ν•„μš”ν•œ λͺ¨λΈμ—μ„œ 핡심적인 μš”μ†Œμž…λ‹ˆλ‹€.

TFLite Edgeλ₯Ό μ‚¬μš©ν•œ 배포 μ˜΅μ…˜ TPU

YOLOv8 λͺ¨λΈμ„ TFLite Edge TPU ν˜•μ‹μœΌλ‘œ λ‚΄λ³΄λ‚΄λŠ” 방법을 μ‚΄νŽ΄λ³΄κΈ° 전에 TFLite Edge TPU λͺ¨λΈμ΄ 일반적으둜 μ‚¬μš©λ˜λŠ” μœ„μΉ˜λ₯Ό 이해해 λ³΄κ² μŠ΅λ‹ˆλ‹€.

TFLite Edge( TPU )λŠ” λ‹€μŒκ³Ό 같은 λ¨Έμ‹  λŸ¬λ‹ λͺ¨λΈμ„ μœ„ν•œ λ‹€μ–‘ν•œ 배포 μ˜΅μ…˜μ„ μ œκ³΅ν•©λ‹ˆλ‹€:

  • μ˜¨λ””λ°”μ΄μŠ€ 배포: TensorFlow Edge TPU λͺ¨λΈμ€ λͺ¨λ°”일 및 μž„λ² λ””λ“œ λ””λ°”μ΄μŠ€μ— 직접 배포할 수 μžˆμŠ΅λ‹ˆλ‹€. μ˜¨λ””λ°”μ΄μŠ€ 배포λ₯Ό μ‚¬μš©ν•˜λ©΄ λͺ¨λΈμ„ ν•˜λ“œμ›¨μ–΄μ—μ„œ 직접 μ‹€ν–‰ν•  수 μžˆμœΌλ―€λ‘œ ν΄λΌμš°λ“œ 연결이 ν•„μš”ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

  • ν΄λΌμš°λ“œλ₯Ό μ‚¬μš©ν•œ 엣지 μ»΄ν“¨νŒ… TensorFlow TPU: 엣지 λ””λ°”μ΄μŠ€μ˜ 처리 λŠ₯λ ₯이 μ œν•œμ μΈ μ‹œλ‚˜λ¦¬μ˜€μ—μ„œ TensorFlow 엣지 TPUλŠ” μΆ”λ‘  μž‘μ—…μ„ TPUκ°€ μž₯착된 ν΄λΌμš°λ“œ μ„œλ²„λ‘œ μ˜€ν”„λ‘œλ“œν•  수 μžˆμŠ΅λ‹ˆλ‹€.

  • ν•˜μ΄λΈŒλ¦¬λ“œ 배포: ν•˜μ΄λΈŒλ¦¬λ“œ 배포: ν•˜μ΄λΈŒλ¦¬λ“œ μ ‘κ·Ό 방식은 μ˜¨λ””λ°”μ΄μŠ€ 배포와 ν΄λΌμš°λ“œ 배포λ₯Ό κ²°ν•©ν•˜μ—¬ λ¨Έμ‹  λŸ¬λ‹ λͺ¨λΈ 배포λ₯Ό μœ„ν•œ λ‹€μš©λ„ 및 ν™•μž₯ κ°€λŠ₯ν•œ μ†”λ£¨μ…˜μ„ μ œκ³΅ν•©λ‹ˆλ‹€. λΉ λ₯Έ 응닡을 μœ„ν•œ μ˜¨λ””λ°”μ΄μŠ€ μ²˜λ¦¬μ™€ 보닀 λ³΅μž‘ν•œ 계산을 μœ„ν•œ ν΄λΌμš°λ“œ μ»΄ν“¨νŒ…μ΄ μž₯μ μž…λ‹ˆλ‹€.

YOLOv8 λͺ¨λΈμ„ TFLite Edge둜 내보내기 TPU

YOLOv8 λͺ¨λΈμ„ TensorFlow Edge TPU 둜 λ³€ν™˜ν•˜μ—¬ λͺ¨λΈ ν˜Έν™˜μ„± 및 배포 μœ μ—°μ„±μ„ ν™•μž₯ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μ„€μΉ˜

ν•„μš”ν•œ νŒ¨ν‚€μ§€λ₯Ό μ„€μΉ˜ν•˜λ €λ©΄ μ‹€ν–‰ν•©λ‹ˆλ‹€:

μ„€μΉ˜

# Install the required package for YOLOv8
pip install ultralytics

μ„€μΉ˜ κ³Όμ •κ³Ό κ΄€λ ¨λœ μžμ„Έν•œ 지침과 λͺ¨λ²” μ‚¬λ‘€λŠ” Ultralytics μ„€μΉ˜ κ°€μ΄λ“œλ₯Ό μ°Έμ‘°ν•˜μ„Έμš”. YOLOv8 에 ν•„μš”ν•œ νŒ¨ν‚€μ§€λ₯Ό μ„€μΉ˜ν•˜λŠ” λ™μ•ˆ λ¬Έμ œκ°€ λ°œμƒν•˜λ©΄ 일반적인 문제 κ°€μ΄λ“œλ₯Ό μ°Έμ‘°ν•˜μ—¬ ν•΄κ²° 방법과 νŒμ„ ν™•μΈν•˜μ„Έμš”.

μ‚¬μš©λ²•

μ‚¬μš© 지침을 μ‚΄νŽ΄λ³΄κΈ° 전에 λͺ¨λ“  Ultralytics YOLOv8 λͺ¨λΈμ—μ„œ 내보내기λ₯Ό μ‚¬μš©ν•  수 μžˆμ§€λ§Œ, μ„ νƒν•œ λͺ¨λΈμ΄ 내보내기 κΈ°λŠ₯을 μ§€μ›ν•˜λŠ”μ§€ μ—¬κΈ°μ—μ„œ 확인할 수 μžˆλ‹€λŠ” 점에 μœ μ˜ν•˜μ„Έμš”.

μ‚¬μš©λ²•

from ultralytics import YOLO

# Load the YOLOv8 model
model = YOLO('yolov8n.pt')

# Export the model to TFLite Edge TPU format
model.export(format='edgetpu')  # creates 'yolov8n_full_integer_quant_edgetpu.tflite’

# Load the exported TFLite Edge TPU model
edgetpu_model = YOLO('yolov8n_full_integer_quant_edgetpu.tflite')

# Run inference
results = edgetpu_model('https://ultralytics.com/images/bus.jpg')
# Export a YOLOv8n PyTorch model to TFLite Edge TPU format
yolo export model=yolov8n.pt format=edgetpu  # creates 'yolov8n_full_integer_quant_edgetpu.tflite'

# Run inference with the exported model
yolo predict model=yolov8n_full_integer_quant_edgetpu.tflite source='https://ultralytics.com/images/bus.jpg'

μ§€μ›λ˜λŠ” 내보내기 μ˜΅μ…˜μ— λŒ€ν•œ μžμ„Έν•œ λ‚΄μš©μ€ 배포 μ˜΅μ…˜μ— λŒ€ν•œUltralytics λ¬Έμ„œ νŽ˜μ΄μ§€λ₯Ό μ°Έμ‘°ν•˜μ„Έμš”.

내보낸 YOLOv8 TFLite Edge TPU λͺ¨λΈ 배포

Ultralytics YOLOv8 λͺ¨λΈμ„ TFLite Edge TPU ν˜•μ‹μœΌλ‘œ μ„±κ³΅μ μœΌλ‘œ 내보낸 ν›„μ—λŠ” 이제 배포할 수 μžˆμŠ΅λ‹ˆλ‹€. TFLite Edge TPU λͺ¨λΈμ„ μ‹€ν–‰ν•˜κΈ° μœ„ν•œ 기본적이고 ꢌμž₯λ˜λŠ” 첫 번째 λ‹¨κ³„λŠ” 이전 μ‚¬μš© μ½”λ“œ μŠ€λ‹ˆνŽ«μ— μ„€λͺ…λœ λŒ€λ‘œ YOLO("model_edgetpu.tflite") λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.

ν•˜μ§€λ§Œ TFLite Edge TPU λͺ¨λΈ 배포에 λŒ€ν•œ μžμ„Έν•œ 지침은 λ‹€μŒ λ¦¬μ†ŒμŠ€λ₯Ό μ°Έμ‘°ν•˜μ„Έμš”:

μš”μ•½

이 κ°€μ΄λ“œμ—μ„œλŠ” Ultralytics YOLOv8 λͺ¨λΈμ„ TFLite Edge TPU ν˜•μ‹μœΌλ‘œ λ‚΄λ³΄λ‚΄λŠ” 방법에 λŒ€ν•΄ μ•Œμ•„λ³΄μ•˜μŠ΅λ‹ˆλ‹€. μœ„μ—μ„œ μ„€λͺ…ν•œ 단계λ₯Ό λ”°λ₯΄λ©΄ 컴퓨터 λΉ„μ „ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ 속도와 μ„±λŠ₯을 ν–₯μƒμ‹œν‚¬ 수 μžˆμŠ΅λ‹ˆλ‹€.

μ‚¬μš©λ²•μ— λŒ€ν•œ μžμ„Έν•œ λ‚΄μš©μ€ Edge 곡식 μ›Ήμ‚¬μ΄νŠΈ( TPU )μ—μ„œ ν™•μΈν•˜μ„Έμš”.

λ˜ν•œ λ‹€λ₯Έ 톡합에 λŒ€ν•œ μžμ„Έν•œ λ‚΄μš©μ€ Ultralytics YOLOv8 톡합 κ°€μ΄λ“œ νŽ˜μ΄μ§€λ₯Ό μ°Έμ‘°ν•˜μ„Έμš”. μ—¬κΈ°μ—μ„œ μœ μš©ν•œ λ¦¬μ†ŒμŠ€μ™€ μΈμ‚¬μ΄νŠΈλ₯Ό λ°œκ²¬ν•  수 μžˆμŠ΅λ‹ˆλ‹€.



생성 2024-03-13, μ—…λ°μ΄νŠΈ 2024-04-02
μž‘μ„±μž: Burhan-Q (1), abirami-vina (1)

λŒ“κΈ€