Gerçek Zamanlı Uygulamalarda Yapay Zekâ ve Edge Computing

1.   Edge Computing’in Gücü: Gerçek Zamanlı Yapay Zeka ve Anlık Kararlar

Yapay zekanın kullanım alanları giderek çeşitlenirken, gerçek zamanlı uygulamalar, bu alanın önemli bir bileşeni haline gelmiştir. Özellikle Edge Computing, yapay zeka uygulamalarında gerçek zamanlı bir deneyim için kilit bir rol oynuyor ve geleceğin teknolojilerinin geliştirilmesinde, yeni nesil uygulamalarda kritik bir konuma sahip.

Gerçek zamanlı uygulamalar, hızlı veri analizi ve anlık karar alma gereksinimi olan birçok alanda kendini gösteriyor. Bu uygulamaların performansı, yapay zeka algoritmalarının ve donanım hızlandırmanın kullanımıyla doğrudan ilişkilendiriliyor. Yapay zekanın gerçek zamanlı uygulamalarda entegrasyonu, akıllı cihazlar, otonom araçlar, sağlık teknolojileri ve daha birçok sektörde devrim niteliğinde değişikliklere yol açmaya devam ediyor.

Edge Computing ise bu dönüşümde kilit bir rol oynuyor. Geleneksel bulut tabanlı sistemlerin aksine, Edge Computing, veri işleme ve analizini, verinin kaynağına (örneğin sensörler, cihazlar) daha yakın bir konumda, canlı ve yerinde gerçekleştiriyor. Bu yakınlık, hızlı yanıt süreleri ve gecikmelerin minimize edilmesiyle gerçek zamanlı uygulamaların ihtiyaçlarını etkin bir şekilde karşılıyor.

a.     Sistem Tanımı

Bu yazımızda Turkcell Technology’in Yapay Zeka birimindeki Donanım AR-GE ekibimizin son dönemde gerçekleştirdiği önemli bir çalışmayı değerlendireceğiz. Bu çalışma, kısıtlı kaynaklara sahip cihazlarda optimize edilmiş ve uçtan uca bir görüntüleme sistemi tasarımı üzerinde odaklanarak donanım hızlandırma adımlarını ve yapay zeka destekli duygu durum analizi üzerindeki çalışmaların analizini içermektedir.

Takeoff etkinliğinde yer alan projemiz, 8MP çözünürlükte canlı deneyim sunabilen bir sistem olmasıyla, Edge Computing’in potansiyelini açıkça göstermektedir. Sistemi incelemek için beş farklı ana bölümü ele alıp, uçtan uca bir görüntüleme sistemi için aşağıdaki gibi bir şablon oluşturabiliriz.

TurkcelBlog 01Sistemi şu şekilde tanımlayabiliriz: İlk olarak, kameranın veya video kaynağının görüntü ürettiği Stream aşaması; devamında, elde edilen görüntünün ilgili işlem birimine aktarılması ve duygu durum modelimiz için gerekli ön işlem adımlarıyla elde edilen dört boyutlu vektör; ardından, ağın bu vektörü işleyerek ürettiği sonuçların anlamlandırıldığı son işlem adımları ve nihayet, nihai çizim ve grafik ara yüz operasyonlarıyla sonuçların kullanıcıya sunulduğu aşama.

a.     Problem Tanımı

Genellikle kısıtlı kaynakların olmadığı durumlarda, donanım hızlandırma modülleri ihmal edilebiliyor. Ancak, sistemimizde, görüntü eldesinden başlayıp ekrandaki çizim işlemlerine kadar uzanan her aşamada bu modüllerin kritik bir rolü bulunuyor. Her bir aşama, sisteme belirli bir yük getirirken, özellikle kısıtlı kaynağa sahip cihazlarda bu yük artarak canlı deneyimi zorlaştırabiliyor.

Sistemin görüntü eldesiyle başlayan ve ekrandaki çizim işlemlerine uzanan bu süreçte, her aşamanın kendi işlevini yerine getirmesi için donanım hızlandırma modüllerinin kritik bir role sahip olduğunu unutmamak gerekir.

b.    Çözüm Yöntemi

Çözüm olarak Sistemimizin tasarımında, donanım hızlandırma modüllerini aktif hale getirmek adına kameradan başlayarak elde edilen görüntünün desteklenen formatta elde edilmesini sağlayacak matris yapılarını kullanmayı tercih ettik. Bu matris yapıları, gelecekteki yoğun matris işlemlerini CPU yerine GPU üzerinde yürüterek performansı artırmak adına tasarlandı. Özellikle yüksek çözünürlüklerdeki ön işleme ve çizim gibi temel matris işlemlerinde 16.532 kat hızlandırma elde ettik. Bu metodolojiyi OpenCV T-API üzerinden sağladık.

Eğer bu yazıyı bir dizüstü veya masaüstü bilgisayarda okuyorsanız, muhtemelen CPU’ya bağlı bir grafik kartına sahipsiniz. Ancak, bu yazıyı bir cep telefonu veya tablette okuyorsanız cihazınızda muhtemelen bir CPU, bir GPU ve bir Dijital Sinyal İşlemcisi (DSP) bulunmaktadır. Yani, birden fazla işlem birimine sahip olan bir “heterojen platform” kullanıyorsunuz demektir. Çalışmamızda asıl odak noktamız, heterojen platformları daha verimli bir şekilde kullanarak performans artışı elde etmek oldu.

1.   OpenCV ve OpenCL: Verimlilikteki Anahtarlar

OpenCL, heterojen platformlarda hesaplama ve paralel programlama işlemlerinin gerçekleştirildiği standarttır. Bu standart, farklı mimariye sahip OpenCL uyumlu tüm cihazları sürücüleri üzerinden kullanarak bilgisayar veya cihazın heterojen yapısını yönetir. Diğer bir deyişle, OpenCL, bir görevi hesaplarken tüm CPU çekirdeklerini veya GPU’nun muazzam bilgi işlem kapasitesini kullanmayı mümkün kılarak işlemlerin yürütme süresini azaltır. Bu nedenle, zahmetli ve kaynak tüketen hesaplamalarla ilişkili görevler ile uğraşırken OpenCL kullanımı oldukça faydalıdır.

Yapay zeka, görüntü işleme, ve benzeri alanlarda OpenCV ile entegre edilen OpenCL, performansın optimize edilmesi ve işlemlerin hızlandırılması açısından kritik bir rol oynuyor.

a.     T-API ve Optimize Fonksiyonlar

T-API, OpenCV’nin içine entegre edilmiş bir modül olarak, kullanıcıların hedef platformlarında bulunabilecek çeşitli donanım hızlandırıcılarını (GPU’lar, APU’lar, DSP’ler vb.) algılayarak, ilgili optimizasyonları otomatik olarak kullanma olanağı sağlar. Böylelikle paralel olarak çalıştırılabilen uygulamalar geliştirmenize olanak sağlar. Bu özellik, farklı donanım tipleri arasında geçiş yaparak işlemleri daha verimli hale getirir ve performansı artırır.

OpenCV kütüphanesinde T-API’nin kullanımıyla herhangi bir harici OpenCL geliştirmesi gerekmeksizin, OpenCL kütüphanesindeki tüm hızlandırılmış hesaplama fonksiyonları dolaylı olarak T-API sayesinde erişilebilir hâle gelir.

Turkcell Blog 02Yukarıda OpenCV içerisinde yer alan için temel görüntü işleme fonksiyonlarında elde edilen donanım hızlandırma modüllerinin testleri yer almaktadır, günümüzdeki güncel versiyonlarda, sürekli olarak geliştirilen modüller sayesinde daha yüksek performanslar elde edilebilmektedir.

a.     OpenCV DNN Modülü ve GPU Kullanımı

MobileFaceNet tabanlı duygu durum analizi modelinin inference fazındaki performans artışında, OpenCV DNN modülleri önemli bir rol oynamaktadır. Bu modüllerin mimari yapısını incelediğimizde, şu şemayı takip edebiliriz:

Turkcell Blog 03İlgili yapıda performans artışı sağlamak ve low-level hesaplamalar için yukarıdaki mimariye uygun olacak şekilde C++ ile doğrudan Intel UHD Graphics 630 tümleşik donanımına erişim sağlanmıştır.

Duygu durum modeli FP16 formatına sıkıştırılarak, hedef GPU üzerindeki OpenCL sürücülerinin desteklediği FP16 hızlandırma moduna uyumlu hale getirildi ve böylelikle 3.467 kat performans artışı sağlanmıştır.

Söz konusu geliştirmelerin avantajlarını görmek ve mevcut konfigürasyonun avantajlarına referans olması açısından aşağıdaki grafikten de DNN C++ ve OpenCL üzerinden elde edilen süreleri (Milisaniye) incelemek ilgili yapay sinir ağı modellerinin performansını değerlendirmek açısından anlamlı olacaktır.

T-API yapısına ek olarak sürecin devamında kritik rol oynayan model inference aşamasında OpenVINO ve OpenCV gibi kütüphaneleri bir araya getirerek, 3.467 kat ortalama ile hızlandırma elde ettik.

a.     OpenVINO ve Intel Cihazlar

OpenVINO araç seti, neredeyse her framework için bir derin öğrenme modelinin optimize edilmesine ve çeşitli Intel işlemcilerde veya diğer donanım platformlarında en yüksek performansla çalıştırılmasına olanak tanır. OpenVINO tarafından desteklenen frameworkler ve uyumlu cihaz sınıfları aşağıda yer almaktadır.

Turkcell Blog 04

Modelimizin ONNX formatındaki dönüşümlerinin ardından optimizasyonu ve Intel GPU üzerinde OpenVINO formatına uyumlu hale getirilmesi için referans olan süreç aşağıdaki şemada gösterilmektedir.

Turkcell Blog 06OpenVINO kütüphanesi özellikle Intel tabanlı cihazlarda olmak üzere inference fazında majör optimizasyon sağlarken aynı zamanda model eğitimi esnasında sıkıştırma, sonrasında quantizasyon ve ağırlık sıkıştırma gibi teknikleri de desteklemektedir. Aşağıdaki şemada ilgili mimari görselleştirilmiştir.

Turkcell Blog 073.Takeoff Etkinliği: Lütfi Kırdar Kongre Merkezi’nde Sahnede!

Bu çığır açan uygulamamızın, yakın tarihte gerçekleşmiş olan Takeoff Startup etkinliğinde heyecan verici şekilde tanıtılmasıyla gururluyuz. Bu inovatif teknolojilerin, Edge Computing ile birleşerek gerçek zamanlı işlem gücünde bir devrim yaratabileceğini sergilemek bizim için büyük bir onur. Bu etkinlik, bu potansiyeli vurgulamak ve teknoloji dünyasında önemli bir adım atmaktan öte, gerçek zamanlı işleme, donanım hızlandırma ve Edge Computing konularında teknolojinin sınırlarını zorlama hedefimize bir adım daha yaklaştığımızı gösteriyor.

Başarımız, endüstriye yeni bir perspektif sunma ve teknolojiyi ileri bir seviyeye taşıma yolundaki kararlılığımızın bir göstergesidir.

a.     Çıktılarımız:

Bu bölümde heyecanla tanıtılan uygulamamızın gerçek zamanlı çalışma anlarına ait görselleri bulabilirsiniz.

TurkcellBlog Son
Ekip Üyeleri: İsmail Sergen Atalay, Erdem Kaya, Kutay Kılıç, Şeyma Kandemir
4.Kaynakça

https://www.linkedin.com/feed/update/urn:li:activity:7136978956309659648/

https://x.com/Turkcell/status/1732794189006647598?s=20

https://docs.openvino.ai/2023.2/openvino_docs_OV_UG_OV_Runtime_User_Guide.html

https://docs.openvino.ai/2023.2/openvino_docs_model_optimization_guide.html

https://github.com/opencv/opencv/wiki/Opencv3

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir