YOLOv8 λͺ¨λΈ νμμμ TF.js λͺ¨λΈ νμμΌλ‘ λ΄λ³΄λ΄κΈ°
λ¨Έμ λ¬λ λͺ¨λΈμ λΈλΌμ°μ λ Node.jsμ μ§μ λ°°ν¬νλ κ²μ κΉλ€λ‘μΈ μ μμ΅λλ€. λͺ¨λΈμ μ¬μ©νμ¬ μ¬μ©μ λλ°μ΄μ€μμ λ‘μ»¬λ‘ λνν μ ν리μΌμ΄μ μ μ€νν μ μλλ‘ λͺ¨λΈ νμμ΄ λΉ λ₯Έ μ±λ₯μ μ΅μ νλμ΄ μλμ§ νμΈν΄μΌ ν©λλ€. TensorFlow .js λλ TF.js λͺ¨λΈ νμμ μ΅μνμ μ λ ₯μ μ¬μ©νλ©΄μλ λΉ λ₯Έ μ±λ₯μ μ 곡νλλ‘ μ€κ³λμμ΅λλ€.
' TF.js λͺ¨λΈ νμμΌλ‘ λ΄λ³΄λ΄κΈ°' κΈ°λ₯μ μ¬μ©νλ©΄ λͺ¨λΈμ μ΅μ ννμ¬ Ultralytics YOLOv8 λͺ¨λΈμ κ³ μ λ° λ‘컬μμ μ€νλλ κ°μ²΄ κ°μ§ μΆλ‘ μ μ΅μ νν μ μμ΅λλ€. μ΄ κ°μ΄λμμλ λͺ¨λΈμ TF.js νμμΌλ‘ λ³ννλ λ°©λ²μ μλ΄νμ¬ λͺ¨λΈμ΄ λ€μν λ‘컬 λΈλΌμ°μ μ Node.js μ ν리μΌμ΄μ μμ λ μ½κ² μλν μ μλλ‘ ν©λλ€.
TF.jsλ‘ λ΄λ³΄λ΄μΌ νλ μ΄μ λ 무μμΈκ°μ?
κ΄λ²μν TensorFlow μμ½μμ€ν μ μΌλΆλ‘ TensorFlow νμμ κ°λ°ν TensorFlow.jsλ‘ λ¨Έμ λ¬λ λͺ¨λΈμ λ΄λ³΄λ΄λ©΄ λ¨Έμ λ¬λ μ ν리μΌμ΄μ μ λ°°ν¬ν λ λ§μ μ΄μ μ μ»μ μ μμ΅λλ€. λ―Όκ°ν λ°μ΄ν°λ₯Ό λλ°μ΄μ€μ 보κ΄νμ¬ μ¬μ©μ κ°μΈμ 보 λ³΄νΈ λ° λ³΄μμ κ°ννλ λ° λμμ΄ λ©λλ€. μλ μ΄λ―Έμ§λ TensorFlow.js μν€ν μ²μ μΉ λΈλΌμ°μ μ Node.jsμμ λ¨Έμ λ¬λ λͺ¨λΈμ΄ μ΄λ»κ² λ³νλκ³ λ°°ν¬λλμ§λ₯Ό 보μ¬μ€λλ€.
λν λ‘컬μμ λͺ¨λΈμ μ€ννλ©΄ μ§μ° μκ°μ΄ μ€μ΄λ€κ³ μλ΅μ±μ΄ λ°μ΄λ μ¬μ©μ κ²½νμ μ 곡ν μ μμ΅λλ€. TensorFlow.jsμλ μ€νλΌμΈ κΈ°λ₯λ μ 곡λλ―λ‘ μ¬μ©μκ° μΈν°λ·μ μ°κ²°λμ§ μμ μνμμλ μ ν리μΌμ΄μ μ μ¬μ©ν μ μμ΅λλ€. TF.jsλ GPU κ°μμ μ§μνλ νμ₯μ±μ μν΄ μ€κ³λμκΈ° λλ¬Έμ 리μμ€κ° μ νλ λλ°μ΄μ€μμ 볡μ‘ν λͺ¨λΈμ ν¨μ¨μ μΌλ‘ μ€νν μ μλλ‘ μ€κ³λμμ΅λλ€.
TF.jsμ μ£Όμ κΈ°λ₯
λ€μμ TF.jsλ₯Ό κ°λ°μλ₯Ό μν κ°λ ₯ν λκ΅¬λ‘ λ§λλ μ£Όμ κΈ°λ₯μ λλ€:
-
ν¬λ‘μ€ νλ«νΌ μ§μ: TensorFlow.jsλ λΈλΌμ°μ μ Node.js νκ²½ λͺ¨λμμ μ¬μ©ν μ μμΌλ―λ‘ λ€μν νλ«νΌμ μ μ°νκ² λ°°ν¬ν μ μμ΅λλ€. μ΄λ₯Ό ν΅ν΄ κ°λ°μλ μ ν리μΌμ΄μ μ λ μ½κ² λΉλνκ³ λ°°ν¬ν μ μμ΅λλ€.
-
μ¬λ¬ λ°±μλ μ§μ: TensorFlow.jsλ CPU, GPU κ°μμ μν WebGL, λ€μ΄ν°λΈμ κ°κΉμ΄ μ€ν μλλ₯Ό μν μΉμ΄μ λΈλ¦¬(WASM), κ³ κΈ λΈλΌμ°μ κΈ°λ° λ¨Έμ λ¬λ κΈ°λ₯μ μν WebGPU λ± λ€μν κ³μ°μ© λ°±μλλ₯Ό μ§μν©λλ€.
-
μ€νλΌμΈ κΈ°λ₯: TensorFlow .jsλ₯Ό μ¬μ©νλ©΄ μΈν°λ· μ°κ²° μμ΄λ λΈλΌμ°μ μμ λͺ¨λΈμ μ€νν μ μμΌλ―λ‘ μ€νλΌμΈμμ μλνλ μ ν리μΌμ΄μ μ κ°λ°ν μ μμ΅λλ€.
TensorFlow.jsλ₯Ό μ¬μ©ν λ°°ν¬ μ΅μ
YOLOv8 λͺ¨λΈμ TF.js νμμΌλ‘ λ΄λ³΄λ΄λ νλ‘μΈμ€λ₯Ό μ΄ν΄λ³΄κΈ° μ μ μ΄ νμμ΄ μ¬μ©λλ λͺ κ°μ§ μΌλ°μ μΈ λ°°ν¬ μλ리μ€λ₯Ό μ΄ν΄λ³΄κ² μ΅λλ€.
TF.jsλ λ¨Έμ λ¬λ λͺ¨λΈμ λ°°ν¬ν μ μλ λ€μν μ΅μ μ μ 곡ν©λλ€:
-
λΈλΌμ°μ λ΄ ML μ ν리μΌμ΄μ : λΈλΌμ°μ μμ μ§μ λ¨Έμ λ¬λ λͺ¨λΈμ μ€ννλ μΉ μ ν리μΌμ΄μ μ ꡬμΆν μ μμ΅λλ€. μλ² μΈ‘ κ³μ°μ΄ νμνμ§ μμΌλ―λ‘ μλ² λΆνκ° μ€μ΄λλλ€.
-
Node.js μ ν리μΌμ΄μ :: TensorFlow.jsλ μλ² μΈ‘ λ¨Έμ λ¬λ μ ν리μΌμ΄μ μ κ°λ°ν μ μλλ‘ Node.js νκ²½μμμ λ°°ν¬λ μ§μν©λλ€. μλ²μ μ²λ¦¬ λ₯λ ₯μ΄ νμνκ±°λ μλ² μΈ‘ λ°μ΄ν°μ μ‘μΈμ€ν΄μΌ νλ μ ν리μΌμ΄μ μ νΉν μ μ©ν©λλ€.
-
Chrome νμ₯ νλ‘κ·Έλ¨: ν₯λ―Έλ‘μ΄ λ°°ν¬ μλ리μ€λ TensorFlow.jsλ₯Ό μ¬μ©νμ¬ Chrome νμ₯ νλ‘κ·Έλ¨μ λ§λλ κ²μ λλ€. μλ₯Ό λ€μ΄, μ¬μ©μκ° μΉνμ΄μ§ λ΄μ μ΄λ―Έμ§λ₯Ό λ§μ°μ€ μ€λ₯Έμͺ½ λ²νΌμΌλ‘ ν΄λ¦νμ¬ μ¬μ νμ΅λ ML λͺ¨λΈμ μ¬μ©νμ¬ μ΄λ―Έμ§λ₯Ό λΆλ₯ν μ μλ νμ₯ νλ‘κ·Έλ¨μ κ°λ°ν μ μμ΅λλ€. TensorFlow.jsλ₯Ό μΌμμ μΈ μΉ λΈλΌμ°μ§ νκ²½μ ν΅ν©νμ¬ λ¨Έμ λ¬λμ κΈ°λ°ν μ¦κ°μ μΈ μΈμ¬μ΄νΈ λλ μ¦κ° κΈ°λ₯μ μ 곡ν μ μμ΅λλ€.
YOLOv8 λͺ¨λΈμ TensorFlow.jsλ‘ λ΄λ³΄λ΄κΈ°
YOLOv8 λͺ¨λΈμ TF.jsλ‘ λ³ννμ¬ λͺ¨λΈ νΈνμ± λ° λ°°ν¬ μ μ°μ±μ νμ₯ν μ μμ΅λλ€.
μ€μΉ
νμν ν¨ν€μ§λ₯Ό μ€μΉνλ €λ©΄ μ€νν©λλ€:
μ€μΉ κ³Όμ κ³Ό κ΄λ ¨λ μμΈν μ§μΉ¨κ³Ό λͺ¨λ² μ¬λ‘λ Ultralytics μ€μΉ κ°μ΄λλ₯Ό μ°Έμ‘°νμΈμ. YOLOv8 μ νμν ν¨ν€μ§λ₯Ό μ€μΉνλ λμ λ¬Έμ κ° λ°μνλ©΄ μΌλ°μ μΈ λ¬Έμ κ°μ΄λλ₯Ό μ°Έμ‘°νμ¬ ν΄κ²° λ°©λ²κ³Ό νμ νμΈνμΈμ.
μ¬μ©λ²
μ¬μ© μ§μΉ¨μ μ΄ν΄λ³΄κΈ° μ μ λͺ¨λ Ultralytics YOLOv8 λͺ¨λΈμμ λ΄λ³΄λ΄κΈ°λ₯Ό μ¬μ©ν μ μμ§λ§, μ νν λͺ¨λΈμ΄ λ΄λ³΄λ΄κΈ° κΈ°λ₯μ μ§μνλμ§ μ¬κΈ°μμ νμΈν μ μλ€λ μ μ μ μνμΈμ.
μ¬μ©λ²
from ultralytics import YOLO
# Load the YOLOv8 model
model = YOLO('yolov8n.pt')
# Export the model to TF.js format
model.export(format='tfjs') # creates '/yolov8n_web_model'
# Load the exported TF.js model
tfjs_model = YOLO('./yolov8n_web_model')
# Run inference
results = tfjs_model('https://ultralytics.com/images/bus.jpg')
μ§μλλ λ΄λ³΄λ΄κΈ° μ΅μ μ λν μμΈν λ΄μ©μ λ°°ν¬ μ΅μ μ λνUltralytics λ¬Έμ νμ΄μ§λ₯Ό μ°Έμ‘°νμΈμ.
λ΄λ³΄λΈ YOLOv8 TensorFlow .js λͺ¨λΈ λ°°ν¬νκΈ°
μ΄μ YOLOv8 λͺ¨λΈμ TF.js νμμΌλ‘ λ΄λ³΄λμΌλ―λ‘ λ€μ λ¨κ³λ λ°°ν¬νλ κ²μ λλ€. TF .jsλ₯Ό μ€ννκΈ° μν κΈ°λ³Έμ μ΄κ³ κΆμ₯λλ 첫 λ²μ§Έ λ¨κ³λ μμ μ¬μ© μ½λ μ€λν«μ νμλ κ²μ²λΌ YOLO("./yolov8n_web_model") λ©μλλ₯Ό μ¬μ©νλ κ²μ λλ€.
κ·Έλ¬λ TF.js λͺ¨λΈ λ°°ν¬μ λν μμΈν μ§μΉ¨μ λ€μ 리μμ€λ₯Ό μ°Έμ‘°νμΈμ:
-
ν¬λ‘¬ νμ₯ νλ‘κ·Έλ¨: λ€μμ TF.js λͺ¨λΈμ Chrome νμ₯ νλ‘κ·Έλ¨μ λ°°ν¬νλ λ°©λ²μ λν κ°λ°μ λ¬Έμμ λλ€.
-
Node.jsμμ TensorFlow.js μ€ν: TensorFlow .jsλ₯Ό Node.jsμμ μ§μ μ€ννλ λ°©λ²μ λν TensorFlow λΈλ‘κ·Έ κ²μλ¬Όμ λλ€.
-
TensorFlow.js λ°°ν¬ - ν΄λΌμ°λ νλ«νΌμ λ Έλ νλ‘μ νΈ: ν΄λΌμ°λ νλ«νΌμ TensorFlow.js λͺ¨λΈ λ°°ν¬μ λν TensorFlow λΈλ‘κ·Έ κ²μλ¬Όμ λλ€.
μμ½
μ΄ κ°μ΄λμμλ Ultralytics YOLOv8 λͺ¨λΈμ TensorFlow.js νμμΌλ‘ λ΄λ³΄λ΄λ λ°©λ²μ λν΄ μμ보μμ΅λλ€. TF .jsλ‘ λ΄λ³΄λ΄λ©΄ λ€μν νλ«νΌμμ YOLOv8 λͺ¨λΈμ μ΅μ ν, λ°°ν¬ λ° νμ₯ν μ μλ μ μ°μ±μ ν보ν μ μμ΅λλ€.
μ¬μ©λ²μ λν μμΈν λ΄μ©μ TensorFlow.js 곡μ λ¬Έμλ₯Ό μ°Έμ‘°νμΈμ.
Ultralytics YOLOv8 μ λ€λ₯Έ νλ«νΌ λ° νλ μμν¬μ ν΅ν©νλ λ°©λ²μ λν μμΈν λ΄μ©μ ν΅ν© κ°μ΄λ νμ΄μ§λ₯Ό μ°Έμ‘°νμΈμ. νλ‘μ νΈμμ YOLOv8 μ μ΅λν νμ©νλ λ° λμμ΄ λλ μ μ©ν 리μμ€κ° κ°λν©λλ€.