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 λΌμ΄νΈ λͺ¨λΈμ μλλ₯Ό λμ λλ€. μλ μ΄λ―Έμ§λ κ΄λ ¨ νλ‘μΈμ€μ μλ₯Ό 보μ¬μ€λλ€.
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 λ‘ λ³ννμ¬ λͺ¨λΈ νΈνμ± λ° λ°°ν¬ μ μ°μ±μ νμ₯ν μ μμ΅λλ€.
μ€μΉ
νμν ν¨ν€μ§λ₯Ό μ€μΉνλ €λ©΄ μ€νν©λλ€:
μ€μΉ κ³Όμ κ³Ό κ΄λ ¨λ μμΈν μ§μΉ¨κ³Ό λͺ¨λ² μ¬λ‘λ 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 λͺ¨λΈ λ°°ν¬μ λν μμΈν μ§μΉ¨μ λ€μ 리μμ€λ₯Ό μ°Έμ‘°νμΈμ:
-
μ½λ μ£μ§ TPU λΌμ¦λ² 리 νμ΄μμ Ultralytics YOLOv8: μ½λ μ£μ§ TPUλ₯Ό λΌμ¦λ² 리 νμ΄μ ν΅ν©νμ¬ λ¨Έμ λ¬λ κΈ°λ₯μ ν₯μμν€λ λ°©λ²μ μμ보μΈμ.
-
μ½λ μμ : μ€μ©μ μΈ TensorFlow Edge TPU λ°°ν¬ μμ μ μ‘μΈμ€νμ¬ νλ‘μ νΈλ₯Ό μμνμΈμ.
-
λ€μμ μ¬μ©νμ¬ μ£μ§μμ μΆλ‘ μ€ν TPU Python: μ€μ λ° μ¬μ© μ§μΉ¨μ ν¬ν¨νμ¬ Edge TPU μ ν리μΌμ΄μ μ© TensorFlow Lite Python APIλ₯Ό μ¬μ©νλ λ°©λ²μ μ΄ν΄λ³΄μΈμ.
μμ½
μ΄ κ°μ΄λμμλ Ultralytics YOLOv8 λͺ¨λΈμ TFLite Edge TPU νμμΌλ‘ λ΄λ³΄λ΄λ λ°©λ²μ λν΄ μμ보μμ΅λλ€. μμμ μ€λͺ ν λ¨κ³λ₯Ό λ°λ₯΄λ©΄ μ»΄ν¨ν° λΉμ μ ν리μΌμ΄μ μ μλμ μ±λ₯μ ν₯μμν¬ μ μμ΅λλ€.
μ¬μ©λ²μ λν μμΈν λ΄μ©μ Edge 곡μ μΉμ¬μ΄νΈ( TPU )μμ νμΈνμΈμ.
λν λ€λ₯Έ ν΅ν©μ λν μμΈν λ΄μ©μ Ultralytics YOLOv8 ν΅ν© κ°μ΄λ νμ΄μ§λ₯Ό μ°Έμ‘°νμΈμ. μ¬κΈ°μμ μ μ©ν 리μμ€μ μΈμ¬μ΄νΈλ₯Ό λ°κ²¬ν μ μμ΅λλ€.