İçeriğe geç

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

Bu kapsamlı kılavuz, Ultralytics YOLO11'i Raspberry Pi cihazlarına dağıtmak için ayrıntılı bir yol haritası sunar. Ek olarak, YOLO11'in bu küçük ve güçlü cihazlardaki 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ılavuzu Raspberry Pi 3 gibi daha eski Raspberry Pi cihazları için kullanmak, aynı Raspberry Pi OS Bookworm'un kurulu olması koşuluyla ç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 projeler 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şenleriyle 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 temel tasarım felsefesini paylaşır.

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
Bellek 1GB LPDDR2 SDRAM 1GB, 2GB, 4GB, 8GB LPDDR4-3200 SDRAM 4GB, 8GB LPDDR4X-4267 SDRAM
PCIe Yok Yok 1xPCIe 2.0 Arayüzü
Maksimum Güç Çekimi 2.5A@5V 3A@5V 5A@5V (PD özellikli)

Raspberry Pi OS nedir?

Raspberry Pi OS (eski adıyla Raspbian olarak bilinir), Raspberry Pi Vakfı tarafından dağıtılan kompakt tek kartlı bilgisayarların Raspberry Pi ailesi için Debian GNU/Linux dağıtımına dayanan Unix benzeri bir işletim sistemidir. Raspberry Pi OS, ARM CPU'lar ile Raspberry Pi için yüksek oranda optimize edilmiştir ve Openbox yığınlama 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'ye Raspberry Pi OS'yi Flash'la Yükleme

Bir Raspberry Pi edindikten sonra yapılması gereken ilk şey, bir mikro-SD kartı Raspberry Pi OS ile yüklemek, cihaza takmak ve işletim sistemine önyükleme yapmaktır. Cihazınızı ilk kullanıma hazırlamak için ayrıntılı Raspberry Pi Başlangıç Belgeleri'ni takip edin.

Ultralytics'i Kurulumu

Bir sonraki Bilgisayar Görüsü projenizi oluşturmak için Raspberry Pi'ye Ultralytics paketini kurmanın iki yolu vardır. Bunlardan herhangi birini kullanabilirsiniz.

Docker ile başlayın

Raspberry Pi'de Ultralytics YOLO11'e başlamanın en hızlı yolu, Raspberry Pi için önceden oluşturulmuş docker görüntüsüyle çalıştırmaktır.

Docker konteynerini çekmek ve Raspberry Pi'de çalıştırmak için aşağıdaki komutu yürütün. Bu, Python3 ortamında Debian 12'yi (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'de NCNN Kullanımı bölümüne geçin.

Docker olmadan başlayın

Ultralytics Paketini Kurulumu

Burada, PyTorch modellerini diğer farklı formatlara aktarabilmemiz için isteğe bağlı bağımlılıklarla birlikte Ultralytics paketini Raspberry Pi'ye kuracağız.

  1. Paketler listesini güncelleyin, pip'i kurun 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ıkları olan pip paketi

    pip install ultralytics[export]
    
  3. Cihazı yeniden başlatın

    sudo reboot
    

Raspberry Pi'de NCNN kullanın

Ultralytics tarafından desteklenen tüm model dışa aktarma formatları arasında, 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 yüksek düzeyde optimize edilmiştir.

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

PyTorch formatındaki YOLO11n modeli, dışa aktarılan modelle çıkarım çalıştırmak için NCNN'ye 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 Ultralytics'in dağıtım seçenekleri hakkındaki dokümantasyon sayfasını ziyaret edin.

Raspberry Pi 5 YOLO11 Kıyaslamaları

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

Karşılaştırma Tablosu

Sadece YOLO11n ve YOLO11s modelleri için kıyaslamalar ekledik çünkü diğer model boyutları Raspberry Pi'lerde çalışamayacak kadar büyük ve iyi bir performans sunmuyor.

RPi 5 üzerinde YOLO11 kıyaslamaları
Ultralytics 8.3.152 ile kıyaslandı

Detaylı Karşılaştırma Tablosu

Aşağıdaki tablo, Raspberry Pi 5 üzerinde çalışan iki farklı model (YOLO11n, YOLO11s) için on farklı formatta (PyTorch, TorchScript, ONNX, OpenVINO, TF SavedModel, TF GraphDef, TF Lite, PaddlePaddle, MNN, NCNN) elde edilen benchmark sonuçlarını göstermektedir ve bize her kombinasyon için durumu, boyutu, mAP50-95(B) metriğini ve çıkarım süresini vermektedir.

Performans

Format Durum Disk üzerindeki boyut (MB) mAP50-95(B) Çıkarım süresi (ms/im)
PyTorch 5.4 0.5101 387.63
TorchScript 10.5 0.5077 457.84
ONNX 10.2 0.5077 191.09
OpenVINO 10.4 0.5058 84.76
TF SavedModel 25.9 0.5077 306.94
TF GraphDef 10.3 0.5077 309.82
TF Lite 10.3 0.5077 425.77
PaddlePaddle 20.5 0.5077 463.93
MNN 10.1 0.5059 114.97
NCNN 10.2 0.5031 94.03
Format Durum Disk üzerindeki boyut (MB) mAP50-95(B) Çıkarım süresi (ms/im)
PyTorch 18.4 0.5791 962.69
TorchScript 36.5 0.5782 1181.94
ONNX 36.3 0.5782 449.85
OpenVINO 36.4 0.5810 181.53
TF SavedModel 91.0 0.5782 660.62
TF GraphDef 36.4 0.5782 669.23
TF Lite 36.3 0.5782 1093.41
PaddlePaddle 72.6 0.5782 1140.61
MNN 36.2 0.5805 274.63
NCNN 36.2 0.5784 224.20

Ultralytics 8.3.152 ile kıyaslandı

Not

Çıkarım süresi, ön/son işlemeyi içermez.

Sonuçlarımızı Tekrar Ü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 COCO128 dataset for all all export formats
results = model.benchmark(data="coco128.yaml", imgsz=640)
# Benchmark YOLO11n speed and accuracy on the COCO128 dataset for all all export formats
yolo benchmark model=yolo11n.pt data=coco128.yaml imgsz=640

Karşılaştırma sonuçlarının, bir sistemin kesin donanım ve yazılım yapılandırmasına ve ayrıca karşılaştırmaları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, örneğin: data='coco.yaml' (5000 doğrulama görüntüsü).

Raspberry Pi Kamera kullanın

Bilgisayar Görüşü projeleri için Raspberry Pi kullanırken, çıkarım gerçekleştirmek için gerçek zamanlı video akışlarını yakalamak önemli 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ı yakalamak ve YOLO11 modellerini kullanarak çıkarım gerçekleştirmek için bir Raspberry Pi Kamera Modülü 3 kullandık.

Not

Raspberry Pi 5, Raspberry Pi 4'ten (15 pin - 22 pin) daha küçük CSI konektörleri kullanır, bu nedenle bir Raspberry Pi Kamerasına bağlanmak için bir 15 pinden 22 pine adaptör kablosuna ihtiyacınız olacaktır.

Kamerayı Test Etme

Kamerayı Raspberry Pi'ye bağladıktan sonra aşağıdaki komutu yürütün. Kameradan yaklaşık 5 saniye boyunca canlı bir video akışı görmelisiniz.

rpicam-hello

İpucu

Şu konu hakkında daha fazla bilgi edinin: rpicam-hello resmi Raspberry Pi belgelerinde kullanım

Kamera ile Çıkarım

Raspberry Pi Kamerayı kullanarak YOLO11 modellerini çıkarım yapmak için 2 yöntem vardır.

Kullanım

Şunu kullanabiliriz picamera2 Kameraya erişmek ve YOLO11 modellerini çıkarım yapmak için Raspberry Pi OS ile önceden yüklenmiş olarak gelen.

Ö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()

Şununla bir TCP akışı başlatmamız gerekiyor: rpicam-vid bağlı kameradan, bu akış URL'sini daha sonra çıkarım yaparken girdi olarak kullanabilmemiz için. 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

Şu konu 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ı hakkındaki belgemize göz atın

Raspberry Pi kullanırken En İyi Uygulamalar

YOLO11'i çalıştıran Raspberry Pi'lerde maksimum performansı etkinleştirmek için izlenmesi gereken birkaç en iyi uygulama vardır.

  1. Bir SSD kullanın

    Raspberry Pi'yi 7/24 sürekli kullanım için kullanırken, sistem için bir SSD kullanılması önerilir, çünkü bir SD kart sürekli yazmalara dayanamaz ve bozulabilir. Raspberry Pi 5 üzerindeki yerleşik PCIe konektörü ile artık Raspberry Pi 5 için NVMe Tabanı gibi bir adaptör kullanarak SSD'leri bağlayabilirsiniz.

  2. GUI olmadan Flash'la Yükleme

    Raspberry Pi OS'yi kurarken, Masaüstü ortamını (Raspberry Pi OS Lite) kurmamayı seçebilirsiniz ve bu, cihazda biraz RAM tasarrufu sağlayarak bilgisayar görüşü işlemesi için daha fazla alan bırakabilir.

  3. Raspberry Pi'yi Hız Aşırtmak

    Raspberry Pi 5 üzerinde Ultralytics YOLO11 modellerini çalıştırırken performansta küçük bir artış istiyorsanız, CPU'yu temel 2.4GHz'den 2.9GHz'e ve GPU'yu 800MHz'den 1GHz'e hız aşırtabilirsiniz. Sistem kararsız hale gelirse veya çökerse, hız aşırtma değerlerini 100MHz'lik artışlarla azaltın. Hız aşırtma ısı üretimini artırdığı ve termal kısılmaya yol açabileceği için uygun soğutmanın sağlandığından emin olun.

    a. Yazılımı yükseltin

    sudo apt update && sudo apt dist-upgrade
    

    b. Yapılandırma dosyasını düzenlemek için açın

    sudo nano /boot/firmware/config.txt
    

    c. Aşağıdaki satırları en alta ekleyin

    arm_freq=3000
    gpu_freq=1000
    force_turbo=1
    

    d. CTRL + X tuşlarına basıp ardından Y tuşuna basarak kaydedin ve çıkın, ardından ENTER tuşuna basın

    e. Raspberry Pi'yi yeniden başlatın

Sonraki Adımlar

Raspberry Pi'nizde YOLO'yu başarıyla kurduğunuz için tebrikler! Daha fazla bilgi ve destek için Ultralytics YOLO11 Belgelerini ve Kashmir World Foundation'ı 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 kullanımına adanmış bir kuruluş olan Kashmir World Foundation için oluşturulmuştur. Nesne algılama teknolojileri alanındaki öncü çalışmalarını ve eğitim odaklarını takdir ediyoruz.

Kashmir World Foundation'ın faaliyetleri hakkında daha fazla bilgi için web sitelerini ziyaret edebilirsiniz.

SSS

Docker kullanmadan bir Raspberry Pi üzerinde Ultralytics YOLO11'i nasıl kurarım?

Ultralytics YOLO11'i Docker olmadan bir Raspberry Pi'ye kurmak için şu adımları izleyin:

  1. Paket listesini güncelleyin ve şunu kurun: pip:
    sudo apt update
    sudo apt install python3-pip -y
    pip install -U pip
    
  2. İsteğe bağlı bağımlılıklarla birlikte Ultralytics paketini kurun:
    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'in 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 bu da onu Raspberry Pi cihazlarında yapay zeka görevlerini çalıştırmak için ideal hale getirir. 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şlem sağlar. Desteklenen dışa aktarma seçenekleri hakkında daha fazla bilgi için, Ultralytics'in dağıtım seçenekleri hakkındaki belgeler 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 Kullanımı bölümüne bakın.

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

Temel farklılıklar şunları içerir:

  • 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.
  • Maks CPU Frekansı: Raspberry Pi 4'ün maksimum frekansı 1,8 GHz iken, Raspberry Pi 5 2,4 GHz'e ulaşır.
  • Bellek: Raspberry Pi 4, 8 GB'a kadar LPDDR4-3200 SDRAM sunarken, Raspberry Pi 5, 4 GB ve 8 GB varyantlarında bulunan LPDDR4X-4267 SDRAM'e sahiptir.

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

Ultralytics YOLO11 ile çalışmak üzere bir Raspberry Pi Kamera Modülünü nasıl kurabilirim?

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

  1. Kullanarak 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 ✏️ 1 ay önce güncellendi

Yorumlar