Gerçek zamanlı görüntü işleme için tek bir donanım standardı yoktur; gereken sistem, kabul edilebilir uçtan uca gecikmeye, görüntü çözünürlüğüne, kare hızına ve kullanılan modelin boyutuna göre belirlenir. Önce hedef FPS ile uygulamanın izin verdiği gecikme sınırını ayrı ayrı belirleyin; ardından kamera, aktarım, ön işleme, çıkarım ve çıktı aşamalarını ölçün. 30 FPS’te kareler yaklaşık 33,3 ms arayla gelir. Paralel çalışan bir işlem hattı, 50 ms uçtan uca gecikmeyle de saniyede 30 kare üretebilir; bu gecikmenin uygunluğu uygulamanın süre sınırına bağlıdır.
Kareler arası süre şu formülle bulunur:
30 FPS için yaklaşık 33,3 ms, 60 FPS için yaklaşık 16,7 ms kare aralığı vardır. Bu aralık, uçtan uca gecikmenin otomatik üst sınırı değildir. Aşamaları sırayla çalışan bir hatta her kareyi kaçırmadan işlemek için toplam işlem süresi bu aralığı aşmamalıdır; paralel bir hatta ise sürdürülebilir işleme kapasitesi ayrıca ölçülür. Uçtan uca gecikmeye kamera yakalama, veri aktarımı, ön işleme, model çıkarımı, son işlem, çıktı ve kuyrukta bekleme süreleri dahildir.
Uçtan uca gecikmeyi şu şekilde düşünün:
Bir modelin tek kare çıkarım süresi 10 ms olsa bile kamera sürücüsü 40 ms bekliyor, görüntü GPU belleğine 8 ms’de aktarılıyor ve sonuç 5 ms’de işleniyorsa toplam gecikme 63 ms’ye çıkabilir. Bu nedenle yalnızca modelin benchmark değerine bakmak yeterli değildir.
İş yükünü belirleyen dört temel unsur vardır: çözünürlük, hedef FPS, model boyutu ve aynı anda işlenecek kamera sayısı. 640×480 görüntü ile 4K görüntü aynı model kullanılsa bile aynı bellek bant genişliğini ve işlem gücünü gerektirmez. Ayrıca nesne tespiti, görüntü sınıflandırma, optik karakter tanıma ve video kodlama farklı donanım kaynaklarını zorlar.
Bu tabloyu yorumlarken yalnız ortalama FPS’e bakmayın. Gerçek zamanlı sistemlerde 95. veya 99. yüzdelik kare süresi önemlidir; çünkü kısa süreli sıçramalar bile canlı görüntüde gecikme birikmesine yol açabilir. VRAM kapasitesi modelin ve ara tensörlerin sığıp sığmadığını belirler; yüksek VRAM tek başına yüksek çıkarım hızını garanti etmez. GPU desteklenmiyorsa iş yükü CPU ve sistem RAM’ine kayabilir, ancak bu her modelde aynı performansı vermez.
Ölçüm sırasında hedef çözünürlük, FPS, model ve kamera sayısı üretimde kullanacağınız değerlerle aynı olmalıdır. Önce sabit bir test süresi belirleyin ve her aşamayı ayrı zamanlayın.
Model VRAM’e sığıyor fakat kare süresi hedefin üzerindeyse sorun kapasite değil, hesaplama veya veri akışıdır. Model yüklenmiyor ya da bellek taşması oluşuyorsa daha büyük VRAM, daha küçük giriş çözünürlüğü veya daha düşük bellek tüketen model gerekir. Ortalama FPS yeterli olduğu hâlde görüntü gecikiyorsa kamera tamponu, eşzamanlı olmayan veri aktarımı veya büyüyen kuyruk incelenmelidir.
GPU kullanımı düşük görünüyorsa bu her zaman GPU’nun yetersiz olduğu anlamına gelmez. CPU ön işlemesi, veri kopyalama, tek iş parçacıklı kod veya kamera sürücüsü beklemesi GPU’nun boş kalmasına neden olabilir. Tersine GPU kullanımı yüksekken FPS düşükse model boyutu, çözünürlük veya aynı anda çalışan kamera sayısı azaltılmalıdır. En güvenilir karar, üretim koşullarındaki uçtan uca kare süresi ile en kötü durum gecikmesinin birlikte ölçülmesine dayanır.
Gerçek zamanlılık nasıl hesaplanır?
Kareler arası süre şu formülle bulunur:
Kareler arası süre (ms) = 1000 / FPS30 FPS için yaklaşık 33,3 ms, 60 FPS için yaklaşık 16,7 ms kare aralığı vardır. Bu aralık, uçtan uca gecikmenin otomatik üst sınırı değildir. Aşamaları sırayla çalışan bir hatta her kareyi kaçırmadan işlemek için toplam işlem süresi bu aralığı aşmamalıdır; paralel bir hatta ise sürdürülebilir işleme kapasitesi ayrıca ölçülür. Uçtan uca gecikmeye kamera yakalama, veri aktarımı, ön işleme, model çıkarımı, son işlem, çıktı ve kuyrukta bekleme süreleri dahildir.
Uçtan uca gecikmeyi şu şekilde düşünün:
Toplam gecikme = yakalama + aktarım + ön işleme + çıkarım + son işleme + çıktıBir modelin tek kare çıkarım süresi 10 ms olsa bile kamera sürücüsü 40 ms bekliyor, görüntü GPU belleğine 8 ms’de aktarılıyor ve sonuç 5 ms’de işleniyorsa toplam gecikme 63 ms’ye çıkabilir. Bu nedenle yalnızca modelin benchmark değerine bakmak yeterli değildir.
Donanım seçimini belirleyen ölçütler
İş yükünü belirleyen dört temel unsur vardır: çözünürlük, hedef FPS, model boyutu ve aynı anda işlenecek kamera sayısı. 640×480 görüntü ile 4K görüntü aynı model kullanılsa bile aynı bellek bant genişliğini ve işlem gücünü gerektirmez. Ayrıca nesne tespiti, görüntü sınıflandırma, optik karakter tanıma ve video kodlama farklı donanım kaynaklarını zorlar.
| Koşul | Başlıca kaynak | Darboğaz belirtisi |
|---|---|---|
| Yüksek çözünürlük | GPU hesaplama gücü, VRAM ve bellek bant genişliği | GPU kullanımı yüksek, kare süresi çözünürlükle hızla artar |
| Büyük model | VRAM, GPU hesaplama gücü | Model yüklenemez veya bellek taşması oluşur |
| Çok sayıda kamera | GPU, CPU, RAM ve veri aktarımı | Kare kuyruğu büyür, gecikme zamanla artar |
| Video kodlama ve kayıt | Donanımsal kodlayıcı veya CPU | Çıkarım hızlı olduğu hâlde çıktı gecikir |
| Uzun süreli çalışma | Soğutma ve güç sınırları | İlk ölçüm iyi, birkaç dakika sonra FPS düşer |
Kendi sisteminizde ölçüm yöntemi
Ölçüm sırasında hedef çözünürlük, FPS, model ve kamera sayısı üretimde kullanacağınız değerlerle aynı olmalıdır. Önce sabit bir test süresi belirleyin ve her aşamayı ayrı zamanlayın.
- Hedefi sabitleyin. Örneğin 30 FPS, 1280×720 çözünürlük ve tek kamera seçin. Bu hedefte kareler arası süre yaklaşık 33,3 ms’dir; kabul edilebilir uçtan uca gecikmeyi ayrıca milisaniye cinsinden belirtin.
- Kamera ve aktarım süresini ölçün. Kare alındığı andan model girdisine hazır olduğu ana kadar geçen süreyi ayrı kaydedin; bu değer yüksekse yalnızca GPU’yu yükseltmek sorunu çözmez.
- Ön işleme ve çıkarımı ayrı ölçün. Yeniden boyutlandırma, renk dönüşümü, tensör oluşturma ve model çalıştırmayı ayrı zamanlayın. Beklenen sonuç, hangi aşamanın toplam sürede en büyük paya sahip olduğunun görülmesidir.
- Son işlem ve çıktıyı ölçün. Kutu çizme, metin üretme, kayıt, ağ aktarımı veya ekrana sunma sürelerini ekleyin. Sonuç görüntüsü modelden hemen sonra hazır değilse uçtan uca gecikme model süresinden büyük olacaktır.
- Kuyruk davranışını kontrol edin. Hattın sürdürülebilir işleme kapasitesi kameranın kare hızının altındaysa kuyruk büyüyebilir; bu durumda eski kareleri atmayı değerlendirin. Yalnız uçtan uca gecikmenin kare aralığından büyük olması, paralel çalışan bir hatta kuyruk büyüdüğünü kanıtlamaz. Aksi durumda görüntü güncel kalsa bile ekranda geçmiş karelerin sonuçları gösterilir.
- Uzun süreli testi tekrarlayın. Sistemi birkaç dakika çalıştırıp ortalama ve en yüksek kare süresini karşılaştırın. Süre sonradan artıyorsa sıcaklık, güç sınırı, bellek dolması veya büyüyen kare kuyruğu kontrol edilmelidir.
Sonuçları nasıl yorumlamalısınız?
Model VRAM’e sığıyor fakat kare süresi hedefin üzerindeyse sorun kapasite değil, hesaplama veya veri akışıdır. Model yüklenmiyor ya da bellek taşması oluşuyorsa daha büyük VRAM, daha küçük giriş çözünürlüğü veya daha düşük bellek tüketen model gerekir. Ortalama FPS yeterli olduğu hâlde görüntü gecikiyorsa kamera tamponu, eşzamanlı olmayan veri aktarımı veya büyüyen kuyruk incelenmelidir.
GPU kullanımı düşük görünüyorsa bu her zaman GPU’nun yetersiz olduğu anlamına gelmez. CPU ön işlemesi, veri kopyalama, tek iş parçacıklı kod veya kamera sürücüsü beklemesi GPU’nun boş kalmasına neden olabilir. Tersine GPU kullanımı yüksekken FPS düşükse model boyutu, çözünürlük veya aynı anda çalışan kamera sayısı azaltılmalıdır. En güvenilir karar, üretim koşullarındaki uçtan uca kare süresi ile en kötü durum gecikmesinin birlikte ölçülmesine dayanır.
Son düzenleme: