İçeriğe atla
SinaptikLabAI KNOWLEDGE PLATFORM
Dersİleri45 dakikaComputer Vision Engineer · 9. ders

Kenarda çıkarım: gecikme bütçesi, nicemleme ve budama

Kenar cihazında çalışan bir görüntü hattının kadraj başına bütçeden nasıl tasarlandığını, nicemleme ile budamanın hangi ödünleri getirdiğini ve sıkıştırma sonrası kalite kaybının nasıl denetleneceğini öğretir.

Önkoşul: Computer Vision, Deep Learning, Neural Networks

BU DERSİN SONUNDA

  • Kadraj başına gecikme bütçesini aşamalara bölerek ölçmek
  • Çözünürlük, nicemleme ve budama kaldıraçlarını ödünleriyle sıralamak
  • Eğitim sonrası nicemleme ile nicemlemeye duyarlı eğitim arasında karar vermek
  • Sıkıştırma sonrası kalite kaybını alt gruplara ayırarak denetlemek
  1. 1

    Teori

    Kavramın çalışma mantığı

  2. 2

    Örnek

    Gerçek bir senaryo üzerinde gösterim

  3. 3

    Lab

    Uygulamalı alıştırma

  4. 4

    Test

    Kısa ölçüm

  5. 5

    Proje

    Rotadaki projeye katkı

Kısa cevap

Kenar cihazında çalışan bir görüntü hattının tasarımı modelden değil bütçeden başlar: kadraj başına kaç milisaniye, kaç megabayt bellek ve kaç watt harcayabileceğinizi yazmadan hangi sıkıştırmanın gerekli olduğunu bilemezsiniz. Nicemleme ve budama bu bütçeyi karşılamak için kullanılan araçlardır ve ödünün yönü sabittir — bellek ile gecikme düşer, kalite riski artar.

Teori: bütçe kadrajdan türer#

Gerçek zamanlı kısıt kamera kadraj hızından gelir. Saniyede işlenmesi gereken kadraj sayısı, kadraj başına düşen toplam süreyi belirler ve bu süre yalnızca modele ait değildir: yakalama, renk dönüşümü ve yeniden boyutlandırma, çıkarım, son işleme (eşikleme, örtüşen kutuların bastırılması, izleme) ve kararın hatta iletilmesi aynı bütçeyi paylaşır. Hattı aşama aşama ölçmeden modeli hızlandırmaya girişmek, bütçenin çoğu zaman ön işlemede veya bellek kopyalarında tükendiğini hiç fark etmemek demektir.

İkinci ayrım gecikme ile verim arasındadır. Yığın büyütmek cihazın saniyede işlediği kadraj sayısını artırır ama tek bir kadrajın kararına ulaşma süresini uzatır; hat üstü bir ret kararında önemli olan ikincisidir. Ölçüm de buna göre kurulur: ortalama yerine yüzdelik değerler raporlanır, ilk kadrajlar ısınma sayıldığı için atılır ve ölçüm cihaz ısındıktan sonra tekrarlanır — termal kısılma altında aynı model daha yavaş koşar.

Kaldıraçlar ve ödünleri#

KaldıraçNe düşerNeyden feragat edilirDikkat
Girdi çözünürlüğünü düşürmekEvrişimli omurgada hesap ve bellek, kabaca piksel sayısıyla orantılı olarakKüçük nesne ve ince kusur duyarlılığıGenelde en büyük ve en hızlı geri alınabilen kaldıraç; önce bunu ölçün
Daha küçük omurga seçmekHesap ve model boyutuZor örneklerdeki ayrım gücüMimari değişikliği yeniden eğitim ve yeniden ölçüm gerektirir
NicemlemeBellek, bellek bant genişliği ve destekli donanımda gecikmeSayısal hassasiyet, uçlarda kaliteKazanç, hedef donanımın tamsayı yolunu desteklemesine bağlıdır
Budama ve seyreklikParametre sayısıKapasite; ardından ince ayar gerekirYapılandırılmamış seyreklik, donanım desteği olmadan hız getirmez
Kadraj atlamak, izleme eklemekÇıkarım çağrısı sayısıTepki gecikmesi ve hızlı hareketlerde takipHat hızı sabitse etkilidir; kaçan olay riskini ayrıca hesaplayın
Ucuz tetikleyici artı pahalı modelOrtalama yükTasarım karmaşıklığıTetikleyicinin kaçırdığı kadraj modele hiç ulaşmaz; onu ayrı izleyin
Kaldıraçlar tek tek uygulanır ve her uygulamadan sonra hem gecikme hem kalite ölçülür; birlikte uygulanan iki değişiklikte hangisinin zarar verdiği ayrıştırılamaz. Dönüştürücü tabanlı omurgalarda çözünürlük kaldıracı daha da güçlüdür, çünkü dikkat maliyeti belirteç sayısıyla doğrusaldan hızlı büyür.

Nicemleme ne yapar#

Nicemleme, ağırlıkları ve çoğu kurulumda ara etkinlikleri daha az bitle temsil etmektir. Tanım gereği float32 bir sayı 4 bayt, int8 bir sayı 1 bayt yer kaplar; dolayısıyla ağırlık belleği dörtte birine iner. Gecikme kazancının iki kaynağı vardır: taşınan bayt azaldığı için bellek bant genişliği baskısı düşer ve donanım tamsayı çarpımını destekliyorsa aritmetik daha hızlı koşar. Destek yoksa kazanç yalnızca bellek tarafında kalır; bu yüzden hedef donanımın hangi veri tipini desteklediğini önceden bilmek gerekir.

Eğitim sonrası nicemleme modeli yeniden eğitmez; ağırlık ve etkinlik aralıklarını bir kalibrasyon setiyle ölçüp ölçek katsayıları çıkarır. Kalibrasyon seti eğitim dağılımından gelmeli ve uç koşulları temsil etmelidir: içinde gece kadrajı olmayan bir kalibrasyon seti, gece koşullarında etkinlikleri kırpar. Nicemlemeye duyarlı eğitim ise nicemleme hatasını eğitim döngüsüne sokar; maliyeti yeniden eğitimdir, karşılığı düşük bit genişliklerinde daha az kalite kaybıdır. Sıralama nettir: önce eğitim sonrası nicemlemeyi ölçün, kalite kaybı kabul sınırınızın üstündeyse duyarlı eğitime geçin.

Budama ve seyreklik#

Budama, katkısı düşük ağırlıkları sıfırlamaktır. Yapılandırılmamış budama tek tek ağırlıkları siler; dosya sıkıştırılabilir hale gelir ama yoğun matris çarpımı aynı biçimde koştuğu için, donanım ve çalışma zamanı seyrek çarpımı desteklemiyorsa gecikme değişmez. Yapılandırılmış budama bütün kanalları veya blokları kaldırır; ağ gerçekten küçülür ve kazanç özel bir seyrek çekirdek gerektirmeden gelir, ama kapasite kaybı daha keskindir ve ardından ince ayar gerekir. Kenar hedefi olan bir projede varsayılan tercih yapılandırılmış budamadır.

Karar sırası#

  1. 1Bütçeyi yazın

    Kadraj başına milisaniye, tepe bellek ve güç sınırını sayı olarak yazın. Aynı belgeye kalite için kabul edilebilir en düşük değeri de yazın; bu sınır sonradan değil baştan belirlenir.

  2. 2Hattı aşama aşama ölçün

    Isınma kadrajlarını attıktan sonra yakalama, ön işleme, çıkarım, son işleme ve iletim sürelerini ayrı ayrı kaydedin. En büyük kalem neredeyse çalışma orada başlar.

  3. 3Önce girdiyi küçültün

    Çözünürlük düşürme ve kadraj atlama gibi girdi tarafı kaldıraçları model değiştirmeden denenir; ölçmesi ve geri alması en kolay olanlar bunlardır.

  4. 4Sonra temsili küçültün

    Eğitim sonrası nicemleme uygulayıp gecikme, bellek ve kalite metriğini birlikte raporlayın. Kalite kaybı sınırı aşarsa duyarlı eğitime ya da daha yüksek bit genişliğine dönün.

  5. 5En son mimariye dokunun

    Omurga değiştirme ve yapılandırılmış budama yeniden eğitim ile yeniden ölçüm maliyeti taşıdığı için sıranın sonundadır.

Sık yapılan hata#

Yaygın bir yanlış ifade, nicemlemenin "hızı bellekten feragat ederek aldığı"dır; ödün bunun tersidir — nicemleme belleği düşürür, feragat edilen şey sayısal hassasiyet ve dolayısıyla kalitedir. İkinci sık hata kalite kaybını yalnızca toplam metrikte aramaktır: kayıp genellikle homojen dağılmaz, küçük nesnelerde ve düşük kontrastlı kadrajlarda toplanır. Üçüncüsü hız ölçümünü geliştirme makinesinde yapıp hedef cihazda doğrulamamaktır; farklı çalışma zamanı ve farklı bellek yolu, kaldıraçların sıralamasını bile değiştirebilir.

LAB · UYGULAMALI ALIŞTIRMA

Gecikme bütçesini çıkarıp iki kaldıracı tek tek ölçün

  1. 1Hedef kadraj hızından kadraj başına düşen milisaniyeyi hesaplayın ve tepe bellek ile kabul edilebilir en düşük kalite değerini aynı sayfaya yazın.
  2. 2Mevcut hattınızı beş aşamaya bölün (yakalama, ön işleme, çıkarım, son işleme, iletim); ilk kadrajları ısınma olarak atıp her aşamanın ortanca ve 95. yüzdelik süresini hedef cihazda kaydedin. Hedef cihaz elinizde yoksa ölçümü kendi makinenizde sabit bir çekirdek sayısıyla yapın ve sonucu cihaza taşınamayan bir ön ölçüm olarak etiketleyin.
  3. 3Bütçeyi en çok zorlayan aşamayı işaretleyin; yalnızca girdi çözünürlüğünü bir kademe düşürüp aynı ölçümü ve kendi doğrulama setinizdeki kalite metriğini yineleyin.
  4. 4Temel modele eğitim sonrası nicemleme uygulayın; kalibrasyon setini eğitim dağılımından, uç koşulları da içerecek biçimde seçin ve bellek, gecikme, kalite üçlüsünü birlikte kaydedin.
  5. 5Üç yapılandırmayı (temel, düşük çözünürlük, nicemlenmiş) tek tabloda karşılaştırın ve kalite metriğini en az iki alt gruba (küçük nesneler, düşük kontrastlı kadrajlar) ayrıştırın.
  6. 6Bütçeyi karşılayan yapılandırmalar arasından kalite kaybı en düşük olanı seçin ve gerekçesini bir paragrafta yazın.

Beklenen çıktı

Aşama bazlı gecikme dökümü ve üç yapılandırmanın bellek, gecikme ile alt gruplara ayrılmış kalite karşılaştırması üzerine gerekçeli bir seçim.

Sık sorulan sorular

Nicemleme her zaman hızlandırır mı?

Hayır. Bellek ve model boyutu tanım gereği düşer, ama gecikme kazancı hedef donanımın tamsayı yolunu ve çalışma zamanının o çekirdekleri gerçekten kullanmasını gerektirir. Destek yoksa çalışma zamanı ağırlıkları geri açar ve gecikme bazen artar; bu yüzden ölçüm geliştirme makinesinde değil hedef cihazda yapılır.

Çözünürlük düşürmek yerine modeli küçültmek daha doğru değil mi?

İkisi farklı şeyleri kaybettirir: çözünürlük düşürmek küçük nesne duyarlılığını, model küçültmek zor örneklerdeki ayrım gücünü zayıflatır. Sıralama ölçüm kolaylığından gelir — çözünürlük değişikliği yeniden eğitim gerektirmez ve geri alınabilir, bu yüzden önce o denenir.

Budama ile nicemlemeyi birlikte uygulayabilir miyim?

Uygulayabilirsiniz ama aynı turda değil. Her birini tek başına uygulayıp gecikme ve kalite etkisini kaydedin; ancak ayrı ayrı etkilerini bildikten sonra birleştirin, yoksa ortaya çıkan kalite kaybının kaynağını ayırt edemezsiniz.

LEARN

Computer Vision Engineer rotasına devam et

Dersler tek başına da okunabilir, ama sıralı ilerlemek önkoşul boşluklarını kapatır.