─░├žeri─če ge├ž

H─▒zl─▒ Ba┼člang─▒├ž K─▒lavuzu: Raspberry Pi ile Ultralytics YOLOv8

Bu kapsaml─▒ k─▒lavuz, Raspberry Pi cihazlar─▒na Ultralytics YOLOv8 adresini da─č─▒tmak i├žin ayr─▒nt─▒l─▒ bir yol g├Âstermektedir. Ayr─▒ca, bu k├╝├ž├╝k ve g├╝├žl├╝ cihazlarda YOLOv8 'un yeteneklerini g├Âstermek i├žin performans k─▒yaslamalar─▒n─▒ sergilemektedir.



─░zle: Raspberry Pi 5 g├╝ncellemeleri ve iyile┼čtirmeleri.

Not

Bu k─▒lavuz, en son Raspberry Pi OS Bookworm (Debian 12) ├žal─▒┼čt─▒ran Raspberry Pi 4 ve Raspberry Pi 5 ile test edilmi┼čtir. Bu k─▒lavuzun Raspberry Pi 3 gibi daha eski Raspberry Pi cihazlar─▒ i├žin kullan─▒lmas─▒n─▒n, ayn─▒ Raspberry Pi OS Bookworm y├╝kl├╝ oldu─ču s├╝rece ├žal─▒┼čmas─▒ beklenir.

Raspberry Pi nedir?

Raspberry Pi k├╝├ž├╝k, uygun fiyatl─▒, tek kartl─▒ bir bilgisayard─▒r. Hobi ama├žl─▒ ev otomasyonundan end├╝striyel kullan─▒mlara kadar ├žok ├že┼čitli proje ve uygulamalar i├žin pop├╝ler hale gelmi┼čtir. Raspberry Pi kartlar─▒ ├že┼čitli i┼čletim sistemlerini ├žal─▒┼čt─▒rabilir ve sens├Ârler, akt├╝at├Ârler ve di─čer donan─▒m bile┼čenleri ile kolay entegrasyon sa─člayan GPIO (Genel Ama├žl─▒ Giri┼č/├ç─▒k─▒┼č) pinleri sunar. Farkl─▒ ├Âzelliklere sahip farkl─▒ modellerde gelirler, ancak hepsi d├╝┼č├╝k maliyetli, kompakt ve ├žok y├Ânl├╝ olma konusunda ayn─▒ temel tasar─▒m felsefesini payla┼č─▒rlar.

Raspberry Pi Serisi Kar┼č─▒la┼čt─▒rmas─▒

Raspberry Pi 3 Raspberry Pi 4 Raspberry Pi 5
CPU Broadcom BCM2837, Cortex-A53 64Bit SoC Broadcom BCM2711, Cortex-A72 64Bit SoC Broadcom BCM2712, Cortex-A76 64Bit SoC
CPU Maksimum Frekans─▒ 1.4GHz 1.8GHz 2.4GHz
GPU Videocore IV Videocore VI VideoCore VII
GPU Maksimum Frekans─▒ 400Mhz 500Mhz 800Mhz
Haf─▒za 1GB LPDDR2 SDRAM 1GB, 2GB, 4GB, 8GB LPDDR4-3200 SDRAM 4GB, 8GB LPDDR4X-4267 SDRAM
PCIe N/A N/A 1xPCIe 2.0 Aray├╝z
Maksimum G├╝├ž ├çekimi 2,5A@5V 3A@5V 5A@5V (PD etkin)

Raspberry Pi OS nedir?

Raspberry Pi OS (eski ad─▒yla Raspbian), Raspberry Pi Vakf─▒ taraf─▒ndan da─č─▒t─▒lan Raspberry Pi kompakt tek kartl─▒ bilgisayar ailesi i├žin Debian GNU/Linux da─č─▒t─▒m─▒n─▒ temel alan Unix benzeri bir i┼čletim sistemidir. Raspberry Pi OS, ARM CPU'lu Raspberry Pi i├žin son derece optimize edilmi┼čtir ve Openbox istifleme pencere y├Âneticisi ile de─či┼čtirilmi┼č bir LXDE masa├╝st├╝ ortam─▒ kullan─▒r. Raspberry Pi OS, Raspberry Pi'de m├╝mk├╝n oldu─čunca ├žok say─▒da Debian paketinin kararl─▒l─▒─č─▒n─▒ ve performans─▒n─▒ art─▒rmaya vurgu yaparak aktif olarak geli┼čtirilmektedir.

Raspberry Pi OS'yi Raspberry Pi'ye Flashlama

Raspberry Pi'yi elinize ald─▒ktan sonra yapman─▒z gereken ilk ┼čey, Raspberry Pi OS ile bir micro-SD kart─▒ fla┼člamak, cihaza takmak ve i┼čletim sistemini ba┼člatmakt─▒r. Cihaz─▒n─▒z─▒ ilk kullan─▒ma haz─▒rlamak i├žin Raspberry Pi'nin ayr─▒nt─▒l─▒ Ba┼člang─▒├ž Dok├╝mantasyonunu takip edin.

Kurulum Ultralytics

Bir sonraki Computer Vision projenizi olu┼čturmak i├žin Raspberry Pi ├╝zerinde Ultralytics paketini kurman─▒n iki yolu vard─▒r. Bunlardan birini kullanabilirsiniz.

Docker ile ba┼člay─▒n

Raspberry Pi ├╝zerinde Ultralytics YOLOv8 kullanmaya ba┼člaman─▒n en h─▒zl─▒ yolu Raspberry Pi i├žin ├Ânceden olu┼čturulmu┼č docker imaj─▒ ile ├žal─▒┼čt─▒rmakt─▒r.

Docker konteynerini ├žekmek ve Raspberry Pi ├╝zerinde ├žal─▒┼čt─▒rmak i├žin a┼ča─č─▒daki komutu y├╝r├╝t├╝n. Bu, Python3 ortam─▒nda Debian 12 (Bookworm) i├žeren arm64v8/debian docker g├Âr├╝nt├╝s├╝ne dayanmaktad─▒r.

t=ultralytics/ultralytics:latest-arm64 && sudo docker pull $t && sudo docker run -it --ipc=host $t

Bu i┼člem tamamland─▒ktan sonra Raspberry Pi ├╝zerinde NCNN adresini kullan─▒n b├Âl├╝m├╝ne ge├žin.

Docker olmadan ba┼člay─▒n

Ultralytics Paketini Y├╝kleyin

Here we will install Ultralytics package on the Raspberry Pi with optional dependencies so that we can export the PyTorch models to other different formats.

  1. Paket listesini g├╝ncelleyin, pip y├╝kleyin ve en son s├╝r├╝me y├╝kseltin

    sudo apt update
    sudo apt install python3-pip -y
    pip install -U pip
    
  2. Kurulum ultralytics iste─če ba─čl─▒ ba─č─▒ml─▒l─▒klarla pip paketi

    pip install ultralytics[export]
    
  3. Cihaz─▒ yeniden ba┼člat─▒n

    sudo reboot
    

Raspberry Pi ├╝zerinde NCNN kullan─▒n

Out of all the model export formats supported by Ultralytics, NCNN delivers the best inference performance when working with Raspberry Pi devices because NCNN is highly optimized for mobile/ embedded platforms (such as ARM architecture). Therefor our recommendation is to use NCNN with Raspberry Pi.

Modeli NCNN 'a D├Ân├╝┼čt├╝r├╝n ve ├ç─▒kar─▒m ├çal─▒┼čt─▒r─▒n

PyTorch bi├žimindeki YOLOv8n modeli, d─▒┼ča aktar─▒lan modelle ├ž─▒kar─▒m yapmak i├žin NCNN bi├žimine d├Ân├╝┼čt├╝r├╝l├╝r.

├ľrnek

from ultralytics import YOLO

# Load a YOLOv8n PyTorch model
model = YOLO("yolov8n.pt")

# Export the model to NCNN format
model.export(format="ncnn")  # creates 'yolov8n_ncnn_model'

# Load the exported NCNN model
ncnn_model = YOLO("yolov8n_ncnn_model")

# Run inference
results = ncnn_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLOv8n PyTorch model to NCNN format
yolo export model=yolov8n.pt format=ncnn  # creates 'yolov8n_ncnn_model'

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

─░pucu

Desteklenen d─▒┼ča aktarma se├ženekleri hakk─▒nda daha fazla bilgi i├žin da─č─▒t─▒m se├ženekleriyle ilgiliUltralytics belge sayfas─▒n─▒ ziyaret edin.

Raspberry Pi 5 vs Raspberry Pi 4 YOLOv8 Benchmarklar

YOLOv8 benchmarks were run by the Ultralytics team on nine different model formats measuring speed and accuracy: PyTorch, TorchScript, ONNX, OpenVINO, TF SavedModel, TF GraphDef, TF Lite, PaddlePaddle, NCNN. Benchmarks were run on both Raspberry Pi 5 and Raspberry Pi 4 at FP32 precision with default input image size of 640.

Not

Di─čer modellerin boyutlar─▒ Raspberry Pis ├╝zerinde ├žal─▒┼čt─▒rmak i├žin ├žok b├╝y├╝k oldu─čundan ve iyi bir performans sunmad─▒─č─▒ndan, yaln─▒zca YOLOv8n ve YOLOv8s modelleri i├žin k─▒yaslamalara yer verdik.

Kar┼č─▒la┼čt─▒rma Tablosu

Performans

NVIDIA Jetson Ekosistemi

NVIDIA Jetson Ekosistemi

Detayl─▒ Kar┼č─▒la┼čt─▒rma Tablosu

The below table represents the benchmark results for two different models (YOLOv8n, YOLOv8s) across nine different formats (PyTorch, TorchScript, ONNX, OpenVINO, TF SavedModel, TF GraphDef, TF Lite, PaddlePaddle, NCNN), running on both Raspberry Pi 4 and Raspberry Pi 5, giving us the status, size, mAP50-95(B) metric, and inference time for each combination.

Performans

Bi├žim Durum Disk ├╝zerindeki boyut (MB) mAP50-95(B) ├ç─▒kar─▒m s├╝resi (ms/im)
PyTorch Ôťů 6.2 0.6381 508.61
TorchScript Ôťů 12.4 0.6092 558.38
ONNX Ôťů 12.2 0.6092 198.69
OpenVINO Ôťů 12.3 0.6092 704.70
TF SavedModel Ôťů 30.6 0.6092 367.64
TF GraphDef Ôťů 12.3 0.6092 473.22
TF Lite Ôťů 12.3 0.6092 380.67
PaddlePaddle Ôťů 24.4 0.6092 703.51
NCNN Ôťů 12.2 0.6034 94.28
Bi├žim Durum Disk ├╝zerindeki boyut (MB) mAP50-95(B) ├ç─▒kar─▒m s├╝resi (ms/im)
PyTorch Ôťů 21.5 0.6967 969.49
TorchScript Ôťů 43.0 0.7136 1110.04
ONNX Ôťů 42.8 0.7136 451.37
OpenVINO Ôťů 42.9 0.7136 873.51
TF SavedModel Ôťů 107.0 0.7136 658.15
TF GraphDef Ôťů 42.8 0.7136 946.01
TF Lite Ôťů 42.8 0.7136 1013.27
PaddlePaddle Ôťů 85.5 0.7136 1560.23
NCNN Ôťů 42.7 0.7204 211.26
Bi├žim Durum Disk ├╝zerindeki boyut (MB) mAP50-95(B) ├ç─▒kar─▒m s├╝resi (ms/im)
PyTorch Ôťů 6.2 0.6381 1068.42
TorchScript Ôťů 12.4 0.6092 1248.01
ONNX Ôťů 12.2 0.6092 560.04
OpenVINO Ôťů 12.3 0.6092 534.93
TF SavedModel Ôťů 30.6 0.6092 816.50
TF GraphDef Ôťů 12.3 0.6092 1007.57
TF Lite Ôťů 12.3 0.6092 950.29
PaddlePaddle Ôťů 24.4 0.6092 1507.75
NCNN Ôťů 12.2 0.6092 414.73
Bi├žim Durum Disk ├╝zerindeki boyut (MB) mAP50-95(B) ├ç─▒kar─▒m s├╝resi (ms/im)
PyTorch Ôťů 21.5 0.6967 2589.58
TorchScript Ôťů 43.0 0.7136 2901.33
ONNX Ôťů 42.8 0.7136 1436.33
OpenVINO Ôťů 42.9 0.7136 1225.19
TF SavedModel Ôťů 107.0 0.7136 1770.95
TF GraphDef Ôťů 42.8 0.7136 2146.66
TF Lite Ôťů 42.8 0.7136 2945.03
PaddlePaddle Ôťů 85.5 0.7136 3962.62
NCNN Ôťů 42.7 0.7136 1042.39

Sonu├žlar─▒m─▒z─▒ Yeniden ├ťretin

Yukar─▒daki Ultralytics k─▒yaslamalar─▒n─▒ t├╝m d─▒┼ča aktarma bi├žimlerinde yeniden olu┼čturmak i├žin bu kodu ├žal─▒┼čt─▒r─▒n:

├ľrnek

from ultralytics import YOLO

# Load a YOLOv8n PyTorch model
model = YOLO("yolov8n.pt")

# Benchmark YOLOv8n speed and accuracy on the COCO8 dataset for all all export formats
results = model.benchmarks(data="coco8.yaml", imgsz=640)
# Benchmark YOLOv8n speed and accuracy on the COCO8 dataset for all all export formats
yolo benchmark model=yolov8n.pt data=coco8.yaml imgsz=640

K─▒yaslama sonu├žlar─▒n─▒n, bir sistemin tam donan─▒m ve yaz─▒l─▒m yap─▒land─▒rmas─▒n─▒n yan─▒ s─▒ra k─▒yaslamalar─▒n ├žal─▒┼čt─▒r─▒ld─▒─č─▒ s─▒rada sistemin mevcut i┼č y├╝k├╝ne ba─čl─▒ olarak de─či┼čebilece─čini unutmay─▒n. En g├╝venilir sonu├žlar i├žin ├žok say─▒da g├Âr├╝nt├╝ i├žeren bir veri k├╝mesi kullan─▒n, ├Ârn. data='coco8.yaml' (4 val images), ordata='coco.yaml'` (5000 val g├Âr├╝nt├╝).

Raspberry Pi Kamera Kullan─▒n

Raspberry Pi'yi Bilgisayarla G├Ârme projeleri i├žin kullan─▒rken, ├ž─▒kar─▒m yapmak i├žin ger├žek zamanl─▒ video beslemeleri almak esas olabilir. Raspberry Pi ├╝zerindeki yerle┼čik MIPI CSI konekt├Âr├╝, resmi Raspberry PI kamera mod├╝llerini ba─člaman─▒za olanak tan─▒r. Bu k─▒lavuzda, video ak─▒┼člar─▒n─▒ almak ve YOLOv8 modellerini kullanarak ├ž─▒kar─▒m yapmak i├žin bir Raspberry Pi Kamera Mod├╝l├╝ 3 kulland─▒k.

Not

Raspberry Pi 5, Raspberry Pi 4'ten daha k├╝├ž├╝k CSI konekt├Ârleri kullan─▒r (15-pin vs 22-pin), bu nedenle bir Raspberry Pi Kameraya ba─članmak i├žin 15-pin - 22pin adapt├Âr kablosuna ihtiyac─▒n─▒z olacakt─▒r.

Kameray─▒ Test Edin

Kameray─▒ Raspberry Pi'ye ba─člad─▒ktan sonra a┼ča─č─▒daki komutu ├žal─▒┼čt─▒r─▒n. Yakla┼č─▒k 5 saniye boyunca kameradan canl─▒ bir video ak─▒┼č─▒ g├Ârmelisiniz.

rpicam-hello

─░pucu

Hakk─▒nda daha fazla bilgi edinin rpicam-hello Resmi Raspberry Pi belgelerinde kullan─▒m

Kamera ile Çıkarım

Raspberry Pi Kameray─▒ YOLOv8 modellerini ├ž─▒karmak i├žin kullanman─▒n 2 y├Ântemi vard─▒r.

Kullan─▒m

Kullanabiliriz picamera2Raspberry Pi OS ile ├Ânceden y├╝klenmi┼č olarak gelen kamera ve ├ž─▒kar─▒m YOLOv8 modellerine eri┼čmek i├žin.

├ľrnek

import cv2
from picamera2 import Picamera2

from ultralytics import YOLO

# Initialize the Picamera2
picam2 = Picamera2()
picam2.preview_configuration.main.size = (1280, 720)
picam2.preview_configuration.main.format = "RGB888"
picam2.preview_configuration.align()
picam2.configure("preview")
picam2.start()

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

while True:
    # Capture frame-by-frame
    frame = picam2.capture_array()

    # Run YOLOv8 inference on the frame
    results = model(frame)

    # Visualize the results on the frame
    annotated_frame = results[0].plot()

    # Display the resulting frame
    cv2.imshow("Camera", annotated_frame)

    # Break the loop if 'q' is pressed
    if cv2.waitKey(1) == ord("q"):
        break

# Release resources and close windows
cv2.destroyAllWindows()

ile bir TCP ak─▒┼č─▒ ba┼člatmam─▒z gerekiyor rpicam-vid B├Âylece daha sonra ├ž─▒kar─▒m yaparken bu ak─▒┼č URL'sini bir girdi olarak kullanabiliriz. TCP ak─▒┼č─▒n─▒ ba┼člatmak i├žin a┼ča─č─▒daki komutu y├╝r├╝t├╝n.

rpicam-vid -n -t 0 --inline --listen -o tcp://127.0.0.1:8888

Hakk─▒nda daha fazla bilgi edinin rpicam-vid Resmi Raspberry Pi belgelerinde kullan─▒m

├ľrnek

from ultralytics import YOLO

# Load a YOLOv8n PyTorch model
model = YOLO("yolov8n.pt")

# Run inference
results = model("tcp://127.0.0.1:8888")
yolo predict model=yolov8n.pt source="tcp://127.0.0.1:8888"

─░pucu

G├Âr├╝nt├╝/video giri┼č t├╝r├╝n├╝ de─či┼čtirmek istiyorsan─▒z ├ç─▒kar─▒m Kaynaklar─▒ hakk─▒ndaki belgemize bak─▒n

Raspberry Pi kullan─▒rken en iyi uygulamalar

YOLOv8 ├žal─▒┼čt─▒ran Raspberry Pis ├╝zerinde maksimum performans sa─člamak i├žin izlenecek birka├ž en iyi uygulama vard─▒r.

  1. Bir SSD kullan─▒n

    Raspberry Pi'yi 7x24 s├╝rekli kullan─▒m i├žin kullan─▒rken, bir SD kart s├╝rekli yazmaya dayanamayaca─č─▒ ve k─▒r─▒labilece─či i├žin sistem i├žin bir SSD kullan─▒lmas─▒ ├Ânerilir. Raspberry Pi 5 ├╝zerindeki yerle┼čik PCIe konekt├Âr├╝ ile art─▒k Raspberry Pi 5 i├žin NVMe Base gibi bir adapt├Âr kullanarak SSD'leri ba─člayabilirsiniz.

  2. GUI olmadan Flash

    Raspberry Pi OS'yi yan─▒p s├Ânerken, Masa├╝st├╝ ortam─▒n─▒ (Raspberry Pi OS Lite) y├╝klememeyi se├žebilirsiniz ve bu, cihazda biraz RAM tasarrufu sa─člayarak bilgisayar g├Âr├╝┼č├╝ i┼čleme i├žin daha fazla alan b─▒rakabilir.

Sonraki Ad─▒mlar

Raspberry Pi'nizde YOLO 'u ba┼čar─▒yla kurdu─čunuz i├žin tebrikler! Daha fazla ├Â─črenme ve destek i├žin Ultralytics YOLOv8 Docs ve Kashmir World Foundation adreslerini ziyaret edin.

Te┼čekk├╝r ve At─▒flar

Bu k─▒lavuz ilk olarak Daan Eeltink taraf─▒ndan, nesli t├╝kenmekte olan t├╝rlerin korunmas─▒ i├žin YOLO adresinin kullan─▒lmas─▒na adanm─▒┼č bir kurulu┼č olan Kashmir World Foundation i├žin haz─▒rlanm─▒┼čt─▒r. Nesne alg─▒lama teknolojileri alan─▒ndaki ├Ânc├╝ ├žal─▒┼čmalar─▒n─▒ ve e─čitime odaklanmalar─▒n─▒ takdirle kar┼č─▒l─▒yoruz.

Kashmir World Foundation'─▒n faaliyetleri hakk─▒nda daha fazla bilgi i├žin web sitesini ziyaret edebilirsiniz.



Created 2023-11-12, Updated 2024-06-10
Authors: glenn-jocher (7), IvorZhu331 (1), lakshanthad (2)

Yorumlar