Bu bölümde, kendi veri setinizle veya hazır olarak edindiğiniz görüntü işleme modellerini nasıl
kullanacağınız hakkında bilgi verilecektir.
sudo su
source /opt/t3-edgeai-env
Bu komutlar, root kullanıcısına geçmenizi ve Edge AI için gerekli olan ortam değişkenlerini yükleminizi sağlar.
Ortam değişkeni dosyası yoksa
Edge AI Kurulumu bölümünden ilgili paketi kurabilirsiniz.
Edge AI GStreamer Apps
Bu proje, Texas Instruments tarafından sağlanan ve T3 Gemstone O1 gibi cihazlarda yapay zeka uygulamalarını
hızla geliştirmek için kullanılabilecek bir açık kaynak referans uygulamaları koleksiyonudur. Temel olarak,
GStreamer tabanlı bir mimariyle çalışmakta olup Texas Instruments işlemcileri ve SoC donanımları üzerinde görüntü
işleme, nesne algılama, akış (streaming) ve diğer yapay zeka iş akışlarını gerçekleştirmek için hazır
çözümler sunmaktadır.
Kurulum bölümündeki Edge AI kurulumunu yaptığınız zaman /opt/edgeai-gst-apps klasöründen bu projeye erişebilirsiniz.
Configs klasörü içinde birden fazla uygulama için örnekler mevcuttur. Python ve C++ dillerinde projeyi
çalıştırmanıza olanak sağlamaktadır.
Örneğin configs/image_classification.yaml içerisinde yer alan config aşağıdaki gibidir.
title: "Image Classification"
log_level: 2
inputs:
input0:
source: /dev/video-usb-cam0
format: jpeg
width: 1280
height: 720
framerate: 30
input1:
source: /opt/edgeai-test-data/videos/video0_1280_768.h264
format: h264
width: 1280
height: 768
framerate: 30
loop: True
input2:
source: /opt/edgeai-test-data/images/%04d.jpg
width: 1280
height: 720
index: 0
framerate: 1
loop: True
models:
model0:
model_path: /opt/model_zoo/TVM-CL-3090-mobileNetV2-tv
topN: 5
model1:
model_path: /opt/model_zoo/TFL-CL-0000-mobileNetV1-mlperf
topN: 5
model2:
model_path: /opt/model_zoo/ONR-CL-6360-regNetx-200mf
topN: 5
outputs:
output0:
sink: kmssink
width: 1920
height: 1080
overlay-perf-type: graph
output1:
sink: /opt/edgeai-test-data/output/output_video.mkv
width: 1920
height: 1080
output2:
sink: /opt/edgeai-test-data/output/output_image_%04d.jpg
width: 1920
height: 1080
output3:
sink: remote
width: 1920
height: 1080
port: 8081
host: 127.0.0.1
encoding: jpeg
overlay-perf-type: graph
flows:
flow0: [input2,model1,output0,[320,150,1280,720]]
Yukarıdaki YAML dosyasını kendi ihtiyaçlarına göre düzenleyebilirisiniz.
TITLE
varsayılan:"Image Classification"
gerekli
Uygulamanın başlığı. Log çıktılarında ve arayüzde referans olarak kullanılır.
Log detay seviyesini belirler. 0: minimal, 5: debug
İşlenecek giriş veri kaynakları.
INPUT_SOURCE
varsayılan:"<cihaz-yolu>,<dosya-yolu>"
gerekli
Giriş kaynağının yolu.
INPUT_FORMAT
varsayılan:"jpeg,h264"
gerekli
Giriş veri formatı. Örneğin: jpeg, h264
Giriş görüntü genişliği (piksel)
Giriş görüntü yüksekliği (piksel)
Döngü ile tekrar edecek mi?
MODEL_PATH
varsayılan:"<dosya-yolu>"
gerekli
Modelin dosya yolu.
Modelden alınacak top-N tahmin sayısı.
OUTPUT_SINK
varsayılan:"remote,kmssink,<dosya-yolu>"
gerekli
Çıkış yolu
Streaming çözünürlüğü genişliği (piksel)
Streaming çözünürlüğü yüksekliği (piksel)
Streaming yapılacak host IP
OUTPUT_ENCODING
varsayılan:"jpeg,h264"
gerekli
Streaming görüntü formatı
Performans grafiği overlay türü
FLOW
varsayılan:"[input2, model1, output0, [320,150,1280,720]]"
gerekli
Veri akışını tanımlar: input → model → output. Opsiyonel olarak ROI (x,y,width,height) belirtebilirsiniz.
Görüntü işleme adımlarına başlamadan önce root olarak oturum açtığınızdan ve ortam değişkenlerini yüklediğinizden emin olunuz.
cd /opt/edgeai-gst-apps/apps_python && ./app_edgeai.py ../configs/image_classification.yaml
Görüntü işlemeyi sonra erdirmek için bir defa CTRL + C kombinasyonuna basarak sonlandırabilirsiniz.
YAML dosyasında çıkış dosyasında değişiklik yapmadıysanız /opt/edgeai-test-data/output/output_video.mkv üzerinden
çıktıya erişebilirsiniz.
Mevcut Python Kodunuza Entegre Etme
TensorFlow Lite, modelleri varsayılan olarak cihazın CPU’sunda (Merkezi İşlem Birimi) çalıştırır.
“Delegate” (Temsilci/Vekil), TFLite modelinizdeki hesaplamaların bir kısmını veya tamamını CPU yerine daha
özelleşmiş bir donanıma “devretme” (delegate etme) mekanizmasıdır. Bu özel donanımları (örneğin T3 Gemstone O1
Geliştirme Kartı içerisinde yer alan görüntü işleme hızlandırıcıları) kullanabilmek için gereken paylaşımlı
kütüphane dosyasını (.so, .dll vb.) yüklemeniz gerekmektedir.
Görüntü işleme adımlarına başlamadan önce root olarak oturum açtığınızdan ve ortam değişkenlerini
yüklediğinizden emin olunuz.
#!/usr/bin/python3
import numpy as np
from tflite_runtime.interpreter import Interpreter
from tflite_runtime.interpreter import load_delegate
# 1. Edge AI delegate kütüphanesini yükle
try:
edgetpu_delegate = load_delegate('/usr/lib/libtidl_tfl_delegate.so')
delegates_list = [edgetpu_delegate]
print("Edge TPU bulundu ve yüklendi.")
except (ValueError, OSError):
delegates_list = [] # TPU bulunamazsa, normal CPU'da çalıştır
print("Edge TPU bulunamadı, CPU kullanılacak.")
# 2. Modeli yükle ve Interpreter'ı başlatırken delegate'i kullan
interpreter = Interpreter(
model_path="modelinizin_adi.tflite",
experimental_delegates=delegates_list
)
# 3. Kalan standart TFLite adımları...
interpreter.allocate_tensors()
input_details = interpreter.get_input_details()
output_details = interpreter.get_output_details()
# ... (Giriş verisini ayarla, modeli çalıştır, vb.)