İçeriğe geç

Hızlı Başlangıç Kılavuzu: Raspberry Pi ile Ultralytics YOLO11

Bu kapsamlı kılavuz, Raspberry Pi cihazlarına Ultralytics YOLO11 adresini dağıtmak için ayrıntılı bir yol göstermektedir. Ayrıca, bu küçük ve güçlü cihazlarda YOLO11 '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 YOLO11 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

Burada Ultralytics paketini isteğe bağlı bağımlılıklarla birlikte Raspberry Pi'ye yükleyeceğiz, böylece PyTorch modellerini diğer farklı formatlara dönüştürür.

  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

Ultralytics tarafından desteklenen tüm model dışa aktarma biçimlerinden , NCNN Raspberry Pi cihazlarıyla çalışırken en iyi çıkarım performansını sunar çünkü NCNN mobil / gömülü platformlar (ARM mimarisi gibi) için son derece optimize edilmiştir. Bu nedenle bizim tavsiyemiz Raspberry Pi ile NCNN adresini kullanmanızdır.

Modeli NCNN 'a Dönüştürün ve Çıkarım Çalıştırın

PyTorch biçimindeki YOLO11n 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 YOLO11n PyTorch model
model = YOLO("yolo11n.pt")

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

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

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

# Run inference with the exported model
yolo predict model='yolo11n_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 YOLO11 Benchmarklar

YOLO11 kıyaslamalar Ultralytics ekibi tarafından hız ve doğruluğu ölçen dokuz farklı model formatında çalıştırılmıştır: PyTorch, TorchScript, ONNX, OpenVINO, TF SavedModel , TF GraphDef , TF Lite, PaddlePaddle, NCNN. Testler Raspberry Pi 5 üzerinde FP32 hassasiyetinde ve varsayılan giriş görüntü boyutu 640 olacak şekilde çalıştırılmıştır.

Karşılaştırma Tablosu

Yalnızca YOLO11n ve YOLO11s modelleri için kıyaslamalara yer verdik çünkü diğer modellerin boyutları Raspberry Pis üzerinde çalıştırmak için çok büyük ve iyi bir performans sunmuyor.

YOLO11 RPi 5 üzerinde kıyaslamalar
Ultralytics 8.3.39 ile karşılaştırıldı

Detaylı Karşılaştırma Tablosu

Aşağıdaki tablo, Raspberry Pi 5 üzerinde çalışan dokuz farklı formatta (PyTorch, TorchScript, ONNX, OpenVINO, TF SavedModel , TF GraphDef , TF Lite, PaddlePaddle, NCNN) iki farklı model (YOLO11n, YOLO11s) için kıyaslama sonuçlarını temsil eder ve bize her kombinasyon için durum, boyut, mAP50-95(B) metriği ve çıkarım süresini verir.

Performans

Biçim Durum Disk üzerindeki boyut (MB) mAP50-95(B) Çıkarım süresi (ms/im)
PyTorch 5.4 0.6100 405.238
TorchScript 10.5 0.6082 526.628
ONNX 10.2 0.6082 168.082
OpenVINO 10.4 0.6082 81.192
TF SavedModel 25.8 0.6082 377.968
TF GraphDef 10.3 0.6082 487.244
TF Lite 10.3 0.6082 317.398
PaddlePaddle 20.4 0.6082 561.892
MNN 10.1 0.6106 112.554
NCNN 10.2 0.6106 88.026
Biçim Durum Disk üzerindeki boyut (MB) mAP50-95(B) Çıkarım süresi (ms/im)
PyTorch 18.4 0.7526 1011.60
TorchScript 36.5 0.7416 1268.502
ONNX 36.3 0.7416 324.17
OpenVINO 36.4 0.7416 179.324
TF SavedModel 91.1 0.7416 714.382
TF GraphDef 36.4 0.7416 1019.83
TF Lite 36.4 0.7416 849.86
PaddlePaddle 72.5 0.7416 1276.34
MNN 36.2 0.7409 273.032
NCNN 36.2 0.7419 194.858

Ultralytics 8.3.39 ile karşılaştırıldı

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 YOLO11n PyTorch model
model = YOLO("yolo11n.pt")

# Benchmark YOLO11n speed and accuracy on the COCO8 dataset for all all export formats
results = model.benchmarks(data="coco8.yaml", imgsz=640)
# Benchmark YOLO11n speed and accuracy on the COCO8 dataset for all all export formats
yolo benchmark model=yolo11n.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 YOLO11 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ı YOLO11 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 YOLO11 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 YOLO11 model
model = YOLO("yolo11n.pt")

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

    # Run YOLO11 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 YOLO11n PyTorch model
model = YOLO("yolo11n.pt")

# Run inference
results = model("tcp://127.0.0.1:8888")
yolo predict model=yolo11n.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ı belgemize göz atın

Raspberry Pi kullanırken en iyi uygulamalar

YOLO11 ç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 YOLO11 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 sitelerini ziyaret edebilirsiniz.

SSS

Docker kullanmadan Raspberry Pi üzerinde Ultralytics YOLO11 adresini nasıl kurabilirim?

Docker olmadan bir Raspberry Pi üzerinde Ultralytics YOLO11 kurmak için aşağıdaki adımları izleyin:

  1. Paket listesini güncelleyin ve yükleyin pip:
    sudo apt update
    sudo apt install python3-pip -y
    pip install -U pip
    
  2. Ultralytics paketini isteğe bağlı bağımlılıklarla birlikte yükleyin:
    pip install ultralytics[export]
    
  3. Değişiklikleri uygulamak için cihazı yeniden başlatın:
    sudo reboot
    

Ayrıntılı talimatlar için Docker olmadan başlat bölümüne bakın.

Yapay zeka görevleri için Raspberry Pi'de neden Ultralytics YOLO11 'un NCNN formatını kullanmalıyım?

Ultralytics YOLO11'in NCNN formatı, mobil ve gömülü platformlar için son derece optimize edilmiştir ve Raspberry Pi cihazlarında yapay zeka görevlerini çalıştırmak için idealdir. NCNN , ARM mimarisinden yararlanarak çıkarım performansını en üst düzeye çıkarır ve diğer formatlara kıyasla daha hızlı ve daha verimli işleme sağlar. Desteklenen dışa aktarma seçenekleri hakkında daha fazla bilgi için dağıtım seçenekleriyle ilgiliUltralytics dokümantasyon sayfasını ziyaret edin.

Raspberry Pi'de kullanmak için bir YOLO11 modelini NCNN formatına nasıl dönüştürebilirim?

Bir PyTorch YOLO11 modelini Python veya CLI komutlarını kullanarak NCNN biçimine dönüştürebilirsiniz:

Örnek

from ultralytics import YOLO

# Load a YOLO11n PyTorch model
model = YOLO("yolo11n.pt")

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

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

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

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

Daha fazla ayrıntı için Raspberry Pi'de NCNN adresini kullanma bölümüne bakın.

Raspberry Pi 4 ve Raspberry Pi 5 arasındaki YOLO11 çalıştırma ile ilgili donanım farklılıkları nelerdir?

Temel farklılıklar şunlardır:

  • CPU: Raspberry Pi 4, Broadcom BCM2711, Cortex-A72 64-bit SoC kullanırken, Raspberry Pi 5 Broadcom BCM2712, Cortex-A76 64-bit SoC kullanır.
  • Maksimum CPU Frekans: Raspberry Pi 4 maksimum 1.8GHz frekansa sahipken, Raspberry Pi 5 2.4GHz'e ulaşır.
  • Bellek: Raspberry Pi 4, 8GB'a kadar LPDDR4-3200 SDRAM sunarken, Raspberry Pi 5, 4GB ve 8GB varyantları bulunan LPDDR4X-4267 SDRAM'a sahiptir.

Bu geliştirmeler, Raspberry Pi 5'teki YOLO11 modelleri için Raspberry Pi 4'e kıyasla daha iyi performans kıyaslamalarına katkıda bulunur. Daha fazla ayrıntı için Raspberry Pi Serisi Karşılaştırma tablosuna bakın.

Raspberry Pi Kamera Modülünü Ultralytics YOLO11 ile çalışacak şekilde nasıl kurabilirim?

Raspberry Pi Kamerayı YOLO11 çıkarımı için kurmanın iki yöntemi vardır:

  1. Kullanma picamera2:

    import cv2
    from picamera2 import Picamera2
    
    from ultralytics import YOLO
    
    picam2 = Picamera2()
    picam2.preview_configuration.main.size = (1280, 720)
    picam2.preview_configuration.main.format = "RGB888"
    picam2.preview_configuration.align()
    picam2.configure("preview")
    picam2.start()
    
    model = YOLO("yolo11n.pt")
    
    while True:
        frame = picam2.capture_array()
        results = model(frame)
        annotated_frame = results[0].plot()
        cv2.imshow("Camera", annotated_frame)
    
        if cv2.waitKey(1) == ord("q"):
            break
    
    cv2.destroyAllWindows()
    
  2. TCP Akışı Kullanma:

    rpicam-vid -n -t 0 --inline --listen -o tcp://127.0.0.1:8888
    
    from ultralytics import YOLO
    
    model = YOLO("yolo11n.pt")
    results = model("tcp://127.0.0.1:8888")
    

Ayrıntılı kurulum talimatları için Kamera ile Çıkarım bölümünü ziyaret edin.

📅1 yıl önce oluşturuldu ✏️ 8 gün önce güncellendi

Yorumlar