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.
-
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
-
Kurulum
ultralytics
isteğe bağlı bağımlılıkları olan pip paketipip install ultralytics[export]
-
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.

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.
İpucu
Raspberry Pi tarafından sunulan farklı kamera modülleri ve ayrıca Raspberry Pi kamera modüllerini kullanmaya nasıl başlayacağınız hakkında daha fazla bilgi edinin.
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.
-
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.
-
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.
-
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:
- Paket listesini güncelleyin ve şunu kurun:
pip
:sudo apt update sudo apt install python3-pip -y pip install -U pip
- İsteğe bağlı bağımlılıklarla birlikte Ultralytics paketini kurun:
pip install ultralytics[export]
- 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:
-
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()
-
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.