Skip to main content
Temmuz 2, 2026

Modelden Donanıma: Simulink, TensorRT ve Jetson AGX Orin ile YOLOv9 Dağıtımı

Doğukan Mehmet Kılınç
Yapay Zeka ve Makine Öğrenmesi Mühendisi

Yapay zeka ve derin öğrenme modellerinin bilgisayar ortamında eğitilmesi yolculuğun sadece ilk kısmıdır. Asıl meydan okuma, bu modellerin kısıtlı kaynaklara sahip uç cihazlarda (Edge AI), düşük gecikmeyle ve yüksek kare hızlarında (FPS) gerçek zamanlı olarak çalıştırılmasıdır. Özellikle otonom sistemler, savunma sanayii ve endüstriyel otomasyon gibi alanlarda milisaniyelerin bile önemi büyüktür.

Bu yazıda, bilgisayarlı görü dünyasının en güçlü nesne tespiti mimarilerinden biri olan YOLOv9 modelinin, NVIDIA Jetson AGX Orin donanımı üzerinde MATLAB&Simulink ve TensorRT kullanılarak nasıl uçtan uca canlı bir sisteme dönüştürüldüğünü adım adım ele alacağız. Model Tabanlı Tasarım (Model-Based Design) yaklaşımının, gömülü yapay zeka (Embedded AI) projelerinde kod üretim sürecini ne kadar kısalttığına ve optimizasyon imkanlarına yakından bakacağız.

Sistem Mimarisi ve Veri Akışı

Bir uç yapay zeka projesinde kararlılık ve optimize edilmiş veri akışı, en az modelin doğruluğu kadar kritik bir role sahiptir. Tasarlanan sistem; ham video verisinin alınmasından, modelin işleyebileceği formata getirilmesine, derin öğrenme çıkarımından (inference) nesne takibine ve son ekran çıktısına kadar tamamen Simulink mimarisi üzerinde kurgulanmıştır.

Sistemin blok bazlı işleyişi ve veri akışı şu şekildedir:

  1. IP Kamera Video Kaynağı (Giriş Bloğu): Çevresel veriyi yakalayan ana kaynaktır. Sistem, H.264 sıkıştırma formatına sahip endüstriyel ağ kameralarından canlı video akışını (RTSP/Network stream) donanım seviyesinde düşük gecikmeyle okur.
  2. RGBToImg (Ön İşleme): Kameradan gelen ayrı renk kanalları (R, G, B), YOLOv9 modelinin girdi olarak kabul edeceği tek bir optimize edilmiş görüntü matrisi formuna dönüştürülür.
  3. YOLO-V9 (Derin Öğrenme Çıkarım Bloğu): Sistemin kalbini oluşturan bu blok, nesne algılama görevini üstlenen yapay zeka modelidir. Görüntüyü işleyerek tespit edilen nesnelere ait sınır kutularını (bboxes), güven skorlarını (scores) ve sınıf etiketlerini (labelIds) üretir.
  4. Tespit ve İzleme (Post-Processing): Modelden gelen ham veriler bu blokta işlenir. Sınır kutuları akıllıca çizilir, tespit edilen nesneler kareler boyunca izlenir ve canlı video üzerine bindirilir (overlay).
  5. Video Görüntüleyici / Ekran (Çıktı Bloğu): İşlemden geçirilmiş son görüntüyü, NVIDIA donanımının ekran birimlerini kullanarak gecikmesiz bir şekilde monitöre yansıtır.

Simulink’in sunduğu bu blok diyagram yapısı, karmaşık CUDA kodlarını elle yazma ihtiyacını ortadan kaldırarak mimarinin tamamına hakim olmayı ve olası darboğazları anında tespit etmeyi sağlar.

Donanım Tanımlama ve Ağ Yapılandırması

Tasarlanan Simulink modelinin NVIDIA Jetson AGX Orin üzerinde bağımsız bir şekilde (Standalone Execution) çalışabilmesi için donanım hedefinin ve iletişim altyapısının doğru yapılandırılması gerekir. Simulink, “Hardware Implementation” sekmesi altından hedef donanıma özgü derleme ayarlarını yapmamıza olanak tanır.

Bu aşamada gerçekleştirilen temel yapılandırmalar şunlardır:

  • Hardware Board Seçimi: Hedef kart olarak NVIDIA Jetson seçilmiştir. Bu seçim, Simulink’in arka planda Orin mimarisine uygun gömülü Linux kod yapısını (ert.tlc sistem hedef dosyası ile) hazırlamasını sağlar.
  • İşlemci Mimarisi: Cihaz üreticisi “ARM Compatible”, cihaz tipi ise Orin’in çekirdek yapısını temsil eden ARM 64-bit (LP64) olarak otomatik olarak eşleşir.
  • Hedef Donanım Kaynakları (Ağ Ayarları): Jetson AGX Orin ile geliştirme bilgisayarı ve IP kamera arasındaki veri trafiğini yönetmek adına özel bir ağ topolojisi kurulmuştur. Bu projede, kararlı bir veri akışı sağlamak amacıyla USB Ethernet bağlantısı tercih edilmiştir. Kartın statik IP adresi (192.168.2.50) ve kullanıcı kimlik bilgileri (dogukankilinc) Simulink “Board Parameters” kısmına girilerek, üretilen kodun SSH protokolü üzerinden karta otomatik olarak yüklenmesi (deploy) ve harici modda (External Mode) gerçek zamanlı takip edilmesi sağlanmıştır.

Kod Üretimi ve TensorRT Optimizasyonu

YOLOv9 gibi derin bir mimariyi uç cihazda yüksek FPS değerleriyle çalıştırmanın sırrı doğru optimizasyon kütüphanelerini seçmektir. MATLAB GPU Coder, Simulink modelini optimize edilmiş CUDA koduna dönüştürürken NVIDIA’nın en güçlü derin öğrenme hızlandırıcısı olan TensorRT kütüphanesini doğrudan entegre edebilir.

Derin Öğrenme Kütüphane Seçimi

Simulink “Code Generation > Interface” ayarları altında, derin öğrenme kütüphanesi (Deep learning library) olarak TensorRT seçilmiştir. Bu sayede Simulink, YOLOv9 modelinin katmanlarını (Convolution, Activation vb.) Jetson AGX Orin’in GPU çekirdeklerine (CUDA ve Tensor Cores) en uygun şekilde haritalandırır ve katman birleştirme (layer fusion) optimizasyonlarını otomatik olarak yapar.

Hassasiyet (Data Type) Seçimi ve FP16 Performansı

Performansı katlamak adına yapılan en kritik dokunuşlardan biri, veri tipinin (Data type) standart FP32 (32-bit Floating Point) yerine FP16 (Half-Precision) olarak ayarlanmasıdır.

FP16 seçimi, Jetson AGX Orin üzerindeki Tensor çekirdeklerinin tam kapasiteyle kullanılmasını sağlar. Bu durum, modelin doğruluğunda (accuracy) göz ardı edilebilecek kadar küçük bir değişim yaratırken; bellek bant genişliğini yarıya indirir, bellek tüketimini azaltır ve çıkarım (inference) hızını katlayarak gerçek zamanlı çalışmanın önünü açar.

Uç Cihazda Gerçek Zamanlı Çalışma (Canlı Performans)

Tüm modelleme, ağ yapılandırması ve TensorRT/FP16 optimizasyon adımlarının meyvesini topladığımız yer tam olarak burası. Simulink üzerinden derlenen proje, Jetson AGX Orin’in Ubuntu işletim sisteminde doğrudan çalıştırılabilir bir .elf (Executable and Linkable Format) dosyası olarak donanıma aktarılır.

Simulink üzerinden derlenen proje, Jetson AGX Orin'in Ubuntu işletim sisteminde doğrudan çalıştırılabilir bir .elf (Executable and Linkable Format) dosyası olarak donanıma aktarılabilir

Sistemi başlattığımızda arka planda gerçekleşen olaylar ve elde ettiğimiz sonuçlar oldukça tatmin edici:

  • Terminal Çalıştırması: Linux terminali üzerinden ./Model.elf komutu ile başlatılan uygulama, arka planda doğrudan NVIDIA’nın multimedya ve bellek yönetim API’lerini (NVMM) çağırarak asenkron bir veri akışı başlatır.
  • Gerçek Zamanlı Çıkarım: SDL Video Display ekranında, IP kameradan gelen canlı ofis görüntüsü üzerinde YOLOv9’un milisaniyeler içinde yaptığı tespitleri görüyoruz. Model; insan (person), monitör (tvmonitor), klavye (keyboard), fare (mouse) ve sandalye (chair) gibi nesneleri yüksek güven skorlarıyla aynı kare içerisinde anında tespit edip etiketliyor.
  • FPS Değeri: Ekranın sol üst köşesinde görülen yaklaşık 15.5 FPS, ağ üzerinden alınan canlı video akışında ve YOLOv9 gibi derin bir modelin uç cihazda çalıştırılmasında donanımın ne kadar verimli kullanıldığının en net göstergesidir.

Sonuç ve Açık Kaynak Paylaşımı

Bu proje; binlerce satır donanıma özgü C++/CUDA kodu yazmaya gerek kalmadan, tamamen Model Tabanlı Tasarım (MBD) prensipleri kullanılarak endüstriyel standartlarda bir Edge AI çözümünün nasıl hayata geçirilebileceğini kanıtlıyor. MATLAB&Simulink’in tasarım gücünü, NVIDIA Jetson AGX Orin’in işleme kapasitesiyle birleştirmek, otonom sistemler ve akıllı video analitiği projeleri için muazzam bir geliştirme hızı sunuyor.

Bu demoyu kendi projenizde deneyin

NVIDIA AGX Orin üzerinde çalışan gerçek zamanlı nesne tespiti demosunu inceleyin ve ayrıntılı bilgi alın.

© FİGES A.Ş. Tüm hakları saklıdır. Tasarım ordek.co.