Edge AI donanımı seçmek; model boyutu, kare hızı, güç bütçesi, maliyet ve ekibinizin ne kadar araç zinciri zahmetini kaldırabileceği arasında bir ödünleşimdir. Bu karşılaştırma, NVIDIA Jetson modüllerinden Coral ve Hailo hızlandırıcılarına, sade Raspberry Pi CPU'larından ESP32-S3 mikrodenetleyicilerine kadar ana seçenekleri ele alıyor, her birinin nereye uyduğunu açıklıyor ve kartları veri sayfaları yerine gerçek sayılarla karşılaştırabilmeniz için kendi modelinizin gecikmesini MQTT üzerinden yayınlayan bir benchmark betiği sunuyor.
Edge AI Donanımı Nasıl Karşılaştırılır
Üretici veri sayfaları genellikle saniyedeki tepe işlem sayısını belirtir, ancak tepe değerler modelinizin ne yapacağını nadiren öngörür. Pratikte birkaç faktör daha önemlidir:
- Operatör desteği. Bir hızlandırıcı yalnızca derleyicisinin desteklediği operatörleri hızlandırır. Desteklenmeyen katmanlar CPU'ya geri düşer ve bazen kazancı tamamen siler.
- Hassasiyet. Çoğu NPU ve TPU, int8 nicemlenmiş modeller gerektirir. GPU'lar FP16 ve FP32 de çalıştırabilir.
- Bellek. Model ağırlıkları, aktivasyonlar ve kamera tamponları sığmalıdır. Mikrodenetleyicilerde karşılaştığınız ilk sınır budur.
- Güç ve ısı. Kapalı bir muhafazada termal kısıtlamaya (throttling) giren bir kart, benchmark değerinden daha yavaştır.
- Araç zinciri ve yaşam döngüsü. Modellerin nasıl dönüştürüldüğü, üreticinin işletim sistemi imajlarını ve kütüphaneleri ne kadar süre desteklediği ve kartın ürününüzün ömrü boyunca bulunup bulunamayacağı.
- Bağlantı. Buradaki her seçenek sonuçları bir MQTT broker'a yayınlayabilir; fark, yerleşik Wi-Fi'ye, Ethernet'e sahip olup olmadığı veya bir ağ geçidine ihtiyaç duyup duymadığıdır.
Edge AI Donanımı Karşılaştırma Tablosu
| Platform | Hesaplama türü | Güç sınıfı | Araç zinciri | En uygun olduğu işler |
|---|---|---|---|---|
| ESP32-S3 | Vektör komutlarına sahip mikrodenetleyici | Miliwattlardan bir wattın altına | esp-tflite-micro, ESP-DL, Edge Impulse | Ses olayları, titreşim, jestler, çok küçük görü |
| Raspberry Pi 5 (yalnızca CPU) | Arm CPU | Birkaç watt | TFLite/LiteRT, ONNX Runtime, OpenCV | Düşük kare hızlarında hafif görü, prototipler |
| Raspberry Pi + Hailo (AI Kit / AI HAT+) | PCIe üzerinden ayrılmış NPU | Toplam birkaç watt | Hailo Dataflow Compiler, model zoo, rpicam entegrasyonu | Bir veya daha fazla kamerada gerçek zamanlı algılama |
| Coral Edge TPU (USB, M.2, Dev Board) | Edge TPU ASIC | Düşük watt | Edge TPU derleyicisiyle derlenmiş TFLite int8 | Uyumlu modellerle sınıflandırma ve algılama |
| NVIDIA Jetson Orin ailesi | GPU artı derin öğrenme hızlandırıcıları | Birkaç ile onlarca watt | JetPack, CUDA, TensorRT, DeepStream | Birden çok akış, daha büyük modeller, segmentasyon, poz |
| GPU'lu veya NPU'lu x86 endüstriyel PC | Harici GPU veya entegre NPU | Onlarca watt ve üzeri | CUDA/TensorRT, OpenVINO, ONNX Runtime | Çok sayıda kamera, ağır modeller, mevcut tesis PC'leri |
| Akıllı kameralar / yapay zeka kamera modülleri | Kamera içinde görü işlemcisi | Düşük watt | Üreticiye özgü | Minimum kablolamayla tek kameralı algılama |
Güç sınıfları bilerek geniş tutulmuştur, çünkü gerçek tüketim iş yüküne, saat hızlarına ve çevre birimlerine bağlıdır. Kendi kurulumunuzu ölçün.
Mikrodenetleyiciler: ESP32-S3
ESP32-S3, güç ve maliyet aralığının en altında yer alır ve buradaki seçenekler arasında küçük bir pille uzun süre çalışabilen tek seçenektir. Vektör komutları Espressif'in kütüphanelerindeki sinir ağı çekirdeklerini hızlandırır ve PSRAM'li varyantlar küçük görü modellerini barındırabilir. Bir modelin işi bir sensör akışını ara sıra oluşan bir olaya dönüştürmekse idealdir. Sınırları kesindir: yalnızca kilobayt ile birkaç megabayt aralığında modeller ve düşük çözünürlüklü görüntüler. Eksiksiz bir uygulama için ESP32 üzerinde TinyML, kısıtlar için de TinyML nedir yazısına bakın.
Hızlandırıcılı ve Hızlandırıcısız Raspberry Pi
Tek başına bir Raspberry Pi 5, küçük sınıflandırma ve algılama modellerini CPU üzerinde çalıştırır; bu da prototipler, saniyede birkaç karelik doluluk sayımı veya ses sınıflandırma için yeterlidir. Güçlü yanı yazılım ekosistemidir: Python, OpenCV, kamera kütüphaneleri ve kolay MQTT istemcileri.
Raspberry Pi AI Kit veya AI HAT+ aracılığıyla bir Hailo NPU eklemek görü için tabloyu değiştirir. CPU uygulama mantığı için serbest kalırken gerçek zamanlı nesne algılama pratik hale gelir. Modellerin Hailo'nun araç zinciriyle derlenmesi gerekir; resmi Raspberry Pi AI belgeleri kurulumu ve kamera entegrasyonunu ele alıyor. Raspberry Pi ayrıca çıkarımı görüntü sensörünün kendisinde çalıştıran ve tek kameralı kurulumlara uygun bir AI Camera da sunuyor.
Coral Edge TPU
Coral hızlandırıcıları, Edge TPU için derlenmiş int8 TensorFlow Lite modellerini çalıştırır ve operatörleri derleyici tarafından tamamen eşlenen modeller için oldukça güç verimlidir. USB çubuk, M.2 ve PCIe kart ve bir geliştirme kartı olarak sunulurlar. Karar vermeden önce Coral'ın yazılım desteğinin işletim sisteminiz ve Python sürümünüz için güncel durumunu kontrol edin; çünkü bu destek tarihsel olarak takıldığı donanımdan daha yavaş ilerlemiştir. Coral Edge TPU rehberi kurulumu ve MQTT ile yayını ayrıntılı olarak ele alıyor.
NVIDIA Jetson
Jetson modülleri uca tam bir CUDA GPU getirir. Birden çok kamera akışını, daha büyük algılayıcıları, segmentasyonu, poz tahminini ve üst düzey modüllerde küçük dil ve görü-dil modellerini kaldırabilirler. TensorRT modelleri GPU için optimize eder, DeepStream ise çok akışlı video işlem hatları oluşturur. Ödünleşimler daha yüksek güç, çoğu muhafazada aktif soğutma ve JetPack sürümlerine bağlı daha ağır bir yazılım yığınıdır. Uygulamalı bir örnek için Jetson Nano MQTT rehberini okuyun.
Edge AI Donanımı Seçmek: Kontrol Listesi
- Görevi ve hedef hızı tanımlayın: hangi model, hangi girdi boyutu, saniyede kaç çıkarım ve kaç kamera veya sensör.
- Güç ve ortam bütçesini belirleyin: pil, PoE, fansız muhafaza, sıcaklık aralığı.
- Operatör uyumluluğunu kontrol edin; bir demo modelini değil, gerçek modelinizi her aday için derleyerek.
- Uçtan uca benchmark yapın; küçük cihazlarda çoğu zaman baskın olan ön işleme ve son işleme dahil.
- Güncellemeleri planlayın: yeni bir model cihaza nasıl ulaşacak ve işletim sistemi ile SDK ne kadar süre desteklenecek?
- Hedefi payla karşılayan en küçük platformu seçin. Daha küçük donanım daha ucuz, daha serin ve bakımı daha basittir.
Modelinizi Benchmark Edin ve Sonuçları MQTT ile Yayınlayın
En adil karşılaştırma, her kartta kendi modelinizin çalıştırılıp sonuçların tek bir yere bildirilmesidir. Bu betik bir TensorFlow Lite modelini rastgele girdiyle tekrar tekrar çalıştırır, gecikmeyi ölçer ve her karttan aynı topic ağacına bir özet yayınlar; böylece tek bir abone tüm sonuçları yan yana görür. Kuruluysa LiteRT yorumlayıcısını kullanır, yoksa tflite_runtime veya TensorFlow'a geri döner ve Coral Edge TPU delegate'ini yükleyebilir.
pip install "paho-mqtt>=2.0" numpy ai-edge-litert # veya tflite-runtime / tensorflow
import argparse
import json
import platform
import statistics
import time
import uuid
import numpy as np
import paho.mqtt.client as mqtt
try:
from ai_edge_litert.interpreter import Interpreter, load_delegate
except ImportError:
try:
from tflite_runtime.interpreter import Interpreter, load_delegate
except ImportError:
import tensorflow as tf
Interpreter, load_delegate = tf.lite.Interpreter, tf.lite.experimental.load_delegate
ap = argparse.ArgumentParser()
ap.add_argument("model")
ap.add_argument("--board", required=True, help="label, e.g. rpi5-cpu or rpi5-coral")
ap.add_argument("--prefix", required=True, help="e.g. connectmq/demo/<random-id>/bench")
ap.add_argument("--edgetpu", action="store_true", help="load the Coral Edge TPU delegate")
ap.add_argument("--runs", type=int, default=100)
args = ap.parse_args()
delegates = [load_delegate("libedgetpu.so.1")] if args.edgetpu else None
interp = Interpreter(model_path=args.model, experimental_delegates=delegates)
interp.allocate_tensors()
inp = interp.get_input_details()[0]
if np.issubdtype(inp["dtype"], np.integer):
info = np.iinfo(inp["dtype"])
data = np.random.randint(info.min, info.max + 1, size=inp["shape"], dtype=inp["dtype"])
else:
data = np.random.rand(*inp["shape"]).astype(inp["dtype"])
for _ in range(10): # ısınma
interp.set_tensor(inp["index"], data)
interp.invoke()
times = []
for _ in range(args.runs):
t0 = time.perf_counter()
interp.set_tensor(inp["index"], data)
interp.invoke()
times.append((time.perf_counter() - t0) * 1000)
times.sort()
result = {
"board": args.board,
"machine": platform.machine(),
"model": args.model.rsplit("/", 1)[-1],
"input": [int(d) for d in inp["shape"]],
"runs": args.runs,
"median_ms": round(statistics.median(times), 2),
"p95_ms": round(times[int(0.95 * len(times)) - 1], 2),
"fps_est": round(1000 / statistics.median(times), 1),
}
print(result)
client = mqtt.Client(mqtt.CallbackAPIVersion.VERSION2, client_id=f"bench-{args.board}-{uuid.uuid4().hex[:6]}")
client.connect("broker.connectmq.com", 1883, keepalive=30)
client.loop_start()
client.publish(f"{args.prefix}/{args.board}", json.dumps(result), qos=1, retain=True).wait_for_publish()
client.loop_stop()
client.disconnect()
Betiği her kartta aynı önekle çalıştırın, ardından tüm sonuçları tek seferde okuyun. Her sonuç retained olduğundan, dün benchmark edilen kartlar da görünmeye devam eder:
python bench.py detect_int8.tflite --board rpi5-cpu --prefix connectmq/demo/8d2f41/bench
python bench.py detect_int8_edgetpu.tflite --board rpi5-coral --edgetpu --prefix connectmq/demo/8d2f41/bench
mosquitto_sub -h broker.connectmq.com -p 1883 -i bench-viewer-3 -t 'connectmq/demo/8d2f41/bench/#' -v
Bu yalnızca modelin invoke süresini ölçer. Uçtan uca bir değer için kamera yakalama ve ön işlemeyi zamanlanan bölüme ekleyin. Jetson için aynı ağı TensorRT'ye aktarın ve eşdeğer bir döngüyle süresini ölçün; ESP32-S3 için TinyML eğitiminde olduğu gibi Invoke() çevresinde esp_timer_get_time() değerini kaydedin ve aynı JSON yapısında yayınlayın. İşiniz bittiğinde, her retained sonucu kendi topic'ine boş bir retained mesaj yayınlayarak temizleyin.
Aynı Çıktı, Farklı Donanım
Hangisini seçerseniz seçin, çıktı sözleşmesini platformlar arasında aynı tutun: aynı topic hiyerarşisi, aynı JSON alanları ve her mesajda bir model ve hardware alanı. Böylece tek bir dağıtımda kartları karıştırabilirsiniz; örneğin motorlarda ESP32-S3 düğümleri ve kamera hattında bir Jetson. Her tüketici sonuçları aynı şekilde okur. Bir bulut MQTT broker bunu tesisler arasında kolaylaştırır: ConnectMQ ile her kart kendi kimlik bilgileri ve client ID'siyle TLS üzerinden dışarıya bağlanır ve portalın topic gezgini aynı ağaca yayın yapan her kartı gösterir. Arka plan için edge AI nedir yazısına ve yapay zeka ve IoT rehberine bakın.
Her Edge AI Kartını ConnectMQ'ya Bağlayın
Pille çalışan bir ESP32-S3'ten çok kameralı bir Jetson'a kadar her kart MQTT konuşur. ConnectMQ, TCP, TLS ve WebSocket uç noktaları, MQTT 5 ve canlı bir topic gezgini sunan yönetilen bir MQTT broker hizmetidir; böylece karışık donanımdan gelen sonuçlar tek bir yerde toplanır. app.connectmq.com adresinde ücretsiz Serverless planında kredi kartı gerektirmeden bir broker oluşturun.
Sık Sorulan Sorular
Yeni başlayanlar için en iyi edge AI donanımı hangisi?
Standart Python araçlarını çalıştırdığı için Raspberry Pi 5 en kolay başlangıçtır. Gerçek zamanlı görüye ihtiyaç duyduğunuzda bir Hailo veya Coral hızlandırıcı ekleyin, düşük güçlü sensör modelleri istediğinizde ise bir ESP32-S3 deneyin.
Jetson, Coral veya Hailo'dan daha mı iyi?
Jetson daha esnektir; daha büyük modelleri ve daha fazla operatör türünü çalıştırır, ancak daha fazla güç tüketir. Coral ve Hailo, desteklenen int8 modeller için verimlidir. Doğru seçim modelinize ve güç bütçenize bağlıdır.
Bir ESP32-S3 nesne algılama çalıştırabilir mi?
Düşük çözünürlüklü görüntülerde çok küçük algılama modellerini çalıştırabilir; bu da varlık tespiti veya basit sayım için yeterlidir. Kullanışlı kare hızlarında genel amaçlı algılama için hızlandırıcılı bir Linux kartı kullanın.
Yayınlanmış sayıları kullanmak yerine neden kendi modelimi benchmark etmeliyim?
Yayınlanmış değerler belirli modelleri, girdi boyutlarını ve ayarları kullanır. Operatör desteği, nicemleme ve ön işleme sizin modeliniz için farklıdır; bu yüzden gerçek performansı yalnızca kendi ölçümleriniz öngörebilir.



