OpenVINO : Nedir Bu Edge AI ?

Soner Can KALKAN
4 min readJan 16, 2020

--

Photo by Christian Wiediger on Unsplash

OpenVINO yazı serisi olarak besmele ile giriştiğimiz Medium macerası umuyorum ki hem okuyucular için keyifli hem de benim için keyifli ve öğretici olacaktır. Özetle “Merhaba Dünya” . . .

Uç Yapay Zeka (Edge AI) Nedir ?

OpenVINO’ya geçmeden önce Uç Yapay Zeka (Edge AI) nedir onu anlamakta fayda var. Uç Yapay Zeka tabiri esasında Uç Hesaplama (Edge Computing)’dan gelmekte o da yapılan hesaplama işleminin yerinde olması anlamına gelmekte. Şu şekilde canlandırabiliriz, bir tane güvenlik sistemi kuracak olalım. İstemci — Sunucu yapısında iki tane önemli unsurumuz olacak birincisi güvenlik kameraları, ikincisi ise bu kameralardan gelen görüntülerin işleneceği ve depolanacağı sunucu. Geliştirici olarak kameradan gelen görüntünün kontrastını değiştirme, görüntüyü temizleme ve ışık yoğunluğuna göre görüntü işleme yapılması gibi işlemleri sunucu tarafında gerçekleştirip bir ekrana yansıtmak bildiğimiz genel-geçer yöntemdir.

Diğer yandan Uç Hesaplama dediğimiz metodoloji, tüm bahsettiğimiz geliştirme ve işlemlerin direkt kamera üzerinde gerçekleşmesidir kabaca. Tabi ki kamera donanımı da ona uygun olmalı. Burada düşünme aralığını geniş tutmak adına illa kamera üzerinde bir entegre devre değil, Raspberry Pi, Arduino gibi sistemlerde kameraya bağlanarak sağlanabilir. Özetle yapılacak hesaplamaların uç gerçekleşmesidir.

Örneği bozmadan Uç Yapay Zekaya bağlamında yapılan işlemlerin sadece görüntü işleme vs. değil Kişi tespiti, yüz tanıma, tehdit analizi gibi Yapay Zeka çözümlerinin de ikinci bahsedilen sistemler üzerinde çalışmasıdır. Yapay Zeka yapısını en uca götürmektir.

Neden Uç Yapay Zeka (Edge AI) ?

Gelişen teknoloji ile birlikte daha küçük boyutlarda daha yüksek işlem gücüne sahip oluyoruz(Bilgisayar mühendisliği için bu söylev artık bir klişe halini aldığı kabul ediyor, yine de buraya “Moore Yasasını” bırakıyorum 😉 ). Tabi ki bu da bize mikro ölçekli bilgisayarda dahi karmaşık işlemler yapabilme olanağı sağlıyor. Böyle bir imkan var sa neden yapmayalım ? Aslında neden yapalım ki sorusu bizi bilgiye yönlendirecek asıl sorudur. Sorunun cevabı basit bugün herhangi bir iş kolu için lojistik ve taşımacılık büyük önem arz etmekte. Gerek maliyetli olması gerekse işlem süresini arttırması açısından bu boyle. Bu durum bilişim içinde farklılık göstermiyor. Bu seviye bir işlem gücüne sahip olunca ağ yapısı üzerindeki yükü azaltmayı ve maliyeti düşürmeyi sağlıyor. Örneğin bir ağ üzerinden güvenlik kamerasındeki tüm görüntüleri anlık olarak sunucuya gönderip hepsini tek tek işleyip sonuçları ekrana bakmaktansa, kamera üzerinden sadece tespit yapılan (Kişi tespiti, tehdit tespiti vs.) kareyi göndermesi, hem ağdaki kullanılan bant genişliği düşürecek hem de sunucu üzerinden yükü kaldıracaktır. Buna ek olarak Yapılan İşlemi ciddi ölçülerde hızlandıracaktır. Çünkü kamera (istemci) ile sunucu arasında ağ üzerinden haberleşmeye gerek kalmayacan ve ağdan kaynaklı gecikmeler olmayacaktır.

Özetle:

  • Sunucu yükünü azaltacak.
  • Gerekli olan bant genişliği azalacak.
  • Yapılan işlemin hızı artacak.

( “Not: Bunlardan bahsederken kullanılan uç birimin (kamera, sensör entegre devresi), birim maliyeti artacaktır.” )

İyilenmiş Yapay Zeka (Optimization)

Uç Yapay Zeka konseptini ayıran bir diğer husus ise iyilemedir (optimization) diyebiliriz. Normal şartlar altında yapay zeka uygulamaları yüksek işlem gücü ve geniş hafızaya ihtiyaç duyarlar. Ne kadar işlemciler ve hafıza birimleri gelişsede Uç bir sistem üzerinde bu yapıların çalışması için iyilenmeleri gerekmektedir. Özellikle, derin öğrenme modellerini kullanan sistemlerin yüksek paralel işlem gücü ve hafızaya ihtiyaçları vardır. Bu çerçeve modeller sadelştirilmeli ve hızlandırılmalıdırlar. Yine bu gereksinim Uç Yapay Zekayı doğuran bir sebeptir. İlerleyen yazılarda yapılan iyilemelerden, nasıl yapıldığından OpenVINO aracı üzerinden bahsediyor olacağız. Son olarak bu başlık altında şundan da bahsetmek gerektiği kanaatindeyim, yapılan iyilemer modelin başarımını değil donanım gereksinimlerini ve hızı iyileştirmek içindir. Belli durumlarda cüzi bir miktar doğruluk(Accuracy) payından feda edilmektedir.

Uç Yapay Zeka Neden Önemli ?

Uç Yapay Zeka bir açıdan genel ağ üzerindeki yükü hafiflettiği için önem arz etmektedir. İnternet gibi çok çeşit bir ortamda bir noktadan başka bir noktaya saniye petabyte derecesinde ( 1⁰¹⁵) veri akışı meydana gelmektedir. Bu akış özellikle son yıllarda gelişen Nesnelerin İnterneti(Internet Of Things) konsepti ile oldukça artmıştır. Bu unsurların akıllı hale gelmesi, sunucu gerekliliği ortaya koymakta. Tabi Uç Yapay Zeka ile birlikte bu sunucu durumu ortadan kalkıyor ve ağ üzerine binen yük azalıyor. Ek olarak bahsettiğimiz gibi Nesnelerin İnternetindeki bu artışın sunucu tarafında karşılanamayacağı konuşulmakta ve bu sorun için yine Uç Yapay Zeka önem arz etmektedir. Tabi ki bu ihtiyaçta gelecekte istihdam sağlama açısından yeni bir iş kolu olma potansiyeli barındırıyor. İnanıyorum ki çok uzun süre geçmeden Uç Yazay Zeka Geliştirici (Edge Aı Engineer), Uç Yapay Zeka Mimarı gibi mesleki tanımları duyuyor olacağız. Bu durum ilerlerken bizde boş durmayıp kendimizi ilgimiz doğrultusunda geliştirip yarınlar için hazırlıklı olacağız.

OpenVINO

Hazırlıklar safhasından bahsetmiş ve aynı zamanda son söze gelirken yazı serisinin devamında nasip olursa tüm bu Uç Yapay Zeka mimarisini Intel’in desteklediği ve geliştirdiği açık kaynak kodlu OpenVINO Toolkit ile irdeleyeceğiniz . . . 👋👋👋

Kaynakça:

--

--

Soner Can KALKAN
Soner Can KALKAN

Written by Soner Can KALKAN

📊 Data Scientist | 🌍 Exploring the Data Universe, One Insight at a Time

No responses yet