Haberler Teknoloji

Jetson Orin’de CLIP Sıfırdan Sınıflandırma Yayınlama – Eğitim Olmadan Verileri Hızla Bulma ve Sınıflandırma

Geleneksel görüntü sınıflandırma yöntemi oldukça zaman ve kaynak tüketicidir. Hedeflediğiniz nesneyle yüksek derecede tutarlı olan milyonlarca etiketli görüntü gerektirir ve bu, denetimli sınıflandırma modelini eğitmek için kullanılacak büyük bir veri seti hazırlamayı gerektirir.

Ancak, denetimli eğitim genel kullanımda her zaman iyi performans gösteremez. Modeli farklı bir alanda başka bir görüntü ile test edeceğinizi veya tanıdık olmayan bir uygulama senaryosunda benzer bir nesne ekleyeceğinizi varsayalım. Bu durumda, nesneyi beklenmedik bir sınıf olarak tanımlayabilir. İşte burada CLIP (Contrastive Language–Image Pretraining) hızlı bir şekilde çok modlu öğrenmenin gücünü serbest bırakır.

CLIP’i Anlamak

Peki, CLIP nedir? CLIP, Contrastive Language-Image Pretraining’in kısaltmasıdır ve OpenAI tarafından geliştirilen bir bilgisayarla görme modelidir. Görüntüler ile bunların karşılık gelen metinsel tanımları arasındaki ilişkiyi anlamada mükemmel bir performans sergiler; sıfırdan transfer, doğal dil denetimi ve çok modlu öğrenme üzerine geniş bir çalışma yelpazesine dayanır.

Temel Mimari

Ön eğitimde karşıt öğrenme

CLIP, görüntüleri işlemek için Vision Transformer (ViT) mimarisini kullanarak modelin görüntü özellikleri arasındaki küresel ilişkileri yakalamasını sağlar. Bu arada, metin işleme için CLIP, metni tokenleştirip işlemek için transformer katmanları aracılığıyla bir transformer tabanlı mimari kullanarak metinsel tanımlardaki anlamsal ilişkileri anlamaktadır; metinleri kelime kelime tahmin etmeden.

Model, görüntü ve metin çiftleri kullanılarak eğitilir; pozitif çiftler (bir görüntü ve karşılık gelen tanım) arasındaki mesafeyi minimize etmeyi ve negatif çiftler (bir görüntü ve rastgele seçilmiş bir tanım) arasındaki mesafeyi maksimize etmeyi hedefler. Bu karşıt öğrenme hedefi, modelin ilgili içeriğin yakın, alakasız içeriğin ise ayrı olduğu anlamlı bir temsil öğrenmesini teşvik eder.

Görüntü, “Doğal Dil Denetiminden Aktarılan Görsel Modeller Öğrenme” adlı makaleden alınmıştır.

Aşağı akış görevleri için ince ayar

Ön eğitimden sonra, CLIP belirli aşağı akış görevlerinde görev spesifik veri setleri ile ince ayar yapılabilir. CLIP’in davranışını belirli görevler ve alanlar için kolayca özelleştirebilirsiniz. Bir istem şablonu veya birden fazla istem şablonunu daha fazla bağlamsal değişiklik ekleyerek kullanarak, benzerlik eşleştirme doğruluğunu artırabilirsiniz.

CLIP neden bir temel model olarak önemlidir?

Geleneksel modellerin eğitim için kapsamlı etiketli veri setlerine ihtiyaç duyduğu bir ortamda, CLIP benzersiz bir yaklaşım benimser—İnternetten elde edilen görüntü-metni çiftlerinden oluşan geniş bir veri setinde ön eğitim yaparak, görev spesifik eğitim verisine ihtiyaç duymadan çok çeşitli görevleri yerine getirebilir. Modelin görsel ve dilsel bağlantıları kurma yeteneği, onu görüntü sınıflandırma gibi görevlerde ve hatta görüntüler için metinsel tanımlar oluşturma konusunda yetkin hale getirir.

Sadece sahnedeki nesnelerin ait olduğu olası istemleri veya tanımları tanımlamanız yeterlidir, ardından CLIP, geniş bir bağlama dayalı olarak verilen görüntü veya video için en olası sınıfı tahmin etmenize yardımcı olacaktır.

Bu kılavuzda, CLIP kullanarak Edge’de uygulama içgörüleri ve çalışma performansını göstereceğiz. Temelde, CLIP şu amaçlarla dağıtılabilir:

Reklam arama motoru: video reklamlarının kategorisini, çekim senaryoları veya belirli ana nesnelerle sınıflandırmak.

İçerik Moderasyonu: görüntüler ve videolardaki potansiyel olarak uygunsuz veya zararlı içerikleri tanımlamak ve işaretlemek.

SNS video önerisi: video içeriğini sınıflandırmak ve izleyicilerin ilgi alanlarına veya izleme geçmişine dayalı öneriler sunmak.

Uzun bir videodaki olayın önemli dönemlerini belirlemek: polislerin suç delillerini zamanında bulma verimliliğini artırmak.

QSR’deki sürecin otomasyonu: teslim edilen pizzada hangi malzemelerin ve sosların bulunması gerektiğini kontrol etmek ve görsel karşılaştırmaya göre bir üretim listesi sağlamak.

İç mekan tasarımı referansı: sağladığınız tercih edilen dekorasyon tarzı görüntülerine dayalı olarak görsel olarak benzer iç mekan tasarım fikirlerini keşfetmenize yardımcı olmak.

CLIP’in endüstri ve uygulama yönünün sınırsız olduğunu göreceğiz! Şimdi, görüntü sınıflandırma ve diğer proje görevlerinizi çözmek için CLIP’i edge’de nasıl dağıtacağımıza derinlemesine bakalım.

Sınıflandırma için CLIP’i Site’de Dağıtma

İşte NVIDIA Jetson Orin NX 16GB tabanlı reComputer J4012 üzerinde CLIP modellerini dağıttığımız bazı ilginç demolar. Roboflow Inference Server kullanarak, adım adım rehberlik için Roboflow’un bloguna başvurabilirsiniz; ancak, GPU kullandığımız için TensorRT desteği eklemek üzere ilk Inference sunucusu kurulum kısmını aşağıdaki kodla değiştirmeniz yeterlidir:

```sh
git clone https://github.com/roboflow/inference
cd inference
sed -i '/ENV OPENBLAS_CORETYPE=ARMV8/a ENV ONNXRUNTIME_EXECUTION_PROVIDERS=TensorrtExecutionProvider' docker/dockerfiles/Dockerfile.onnx.jetson.5.1.1
docker build \
    -f docker/dockerfiles/Dockerfile.onnx.jetson.5.1.1 \
    -t roboflow/roboflow-inference-server-jetson-5.1.1:seeed1 .
```

- Konteyneri çalıştırın 

```sh
docker run --privileged --net=host --runtime=nvidia roboflow/roboflow-inference-server-jetson-5.1.1:seeed1
```

Görüntü-İstem çifti

Artık modelinizi önceden eğitmeden görüntüleri farklı kategorilere kolayca sınıflandırabilirsiniz.

Jetson Edge cihazında Roboflow Inference Server Docker konteynerini başlatın, Roboflow API anahtarını tanımlayın ve tanımladığınız istemlere dayalı olarak farklı görüntüleri sınıflandırmaya başlamak için bir demo betiği çalıştırın. Bu demo için Jetson Orin NX 16GB kullandık ve TensorRT FP16 hassasiyeti ile yaklaşık 22 FPS performans elde edebildi!

Düşünmeniz gereken tek şey istem mühendisliği – görüntünün sahnesini daha iyi sınıflandırma performansı için net bir şekilde tanımlamak üzere daha doğru veya uygun bir istem bulmaktır; bu, CLIP’e görüntüde neyi tanıması gerektiğini söylemek anlamına gelir. Doğru istemi bulma süreci uzun vadeli bir deneme yanılma süreci olabilir.

Eğer demomuzun gerçekleştirdiği gibi çıkarım hızını göstermek istiyorsanız, sonuç çıktı kısmına bu kısmı kolayca ekleyebilirsiniz:

for file in sorted(os.listdir(IMAGE_DIR)):
    image = f"{IMAGE_DIR}/{file}"
    predictions = classify_image(image)
    print(get_highest_prediction(predictions["similarity"]), image)
    print(1/(predictions['time']))

Video tema sınıflandırması

Bir video senaryosunu anlamak, bir videoyu bireysel karelere ayırmayı, her kareye bağımsız olarak CLIP uygulamayı ve ardından kareler arasındaki zamansal bilgiyi entegre etmeyi içerir.

Bireysel karelerden ve bunların zamansal bağlamından çıkarılan özellikleri birleştirerek, model videonun genel içeriğini ve bağlamını yakalayan bir temsil oluşturur. Birleştirilmiş özellikler daha sonra senaryo sınıflandırması için kullanılır ve tasvir edilen aktivite veya senaryo tahmin edilir. CLIP’i video görevlerinin özel gereksinimlerine uyarlamak için video kareleri ve senaryo etiketleri içeren bir veri seti ile ince ayar yapmak gerekebilir. Modelin performansı standart metrikler kullanılarak değerlendirilir ve optimal sonuçlar için gerektiğinde ayarlamalar yapılır.

Bu demoda, CLIP’i bir paketi içeren bir sahne olarak videoyu tanımlamak için kullanıyoruz. Senaryo türünü sınıflandırabiliriz, paketin ilk kez göründüğü zaman damgalarını ve sahnede ne kadar süre görünür olduğunu belirleyebiliriz. Bu, paket teslimatının çalınmasını önlemek için mükemmel bir deney olabilir. Videoyu adım adım sınıflandırmak için Roboflow’un blogunu takip edin, ayrıca videomuzu karelere ayırmak için gözetim kütüphanesini baştan içe aktarmayı unutmayın.

import supervision as sv

Seeed: NVIDIA Jetson Ekosistem Ortağı

Seeed, NVIDIA Partner Network‘de kenar AI için bir Elite ortaktır. Daha fazla taşıyıcı kart, tam sistem cihazları, özelleştirme hizmetleri, kullanım senaryoları ve geliştirici araçları için Seeed’in NVIDIA Jetson ekosistemi sayfasını keşfedin.

AI yeniliğinin ön saflarında bizimle birlikte yer alın! Keskin teknolojinin gücünü kullanarak makine öğreniminin gerçek dünyada endüstriler arasında devrim yaratmasını sağlayın. Geliştiricilere ve işletmelere mevcut en iyi ML çözümlerini sunma misyonumuzun bir parçası olun. Daha fazla kenar AI olasılıklarını keşfetmek için başarılı vaka çalışması kataloğumuzu gözden geçirin!

İlk adımı atın ve bu heyecan verici yolculuğun bir parçası olmak için bize edgeai@seeed.cc adresinden bir e-posta gönderin! 

Size uygun bir seçenek bulmak için en son Jetson Kataloğumuzu indirin. İhtiyaçlarınız için hazır Jetson donanım çözümünü bulamazsanız, lütfen özelleştirme hizmetlerimizi kontrol edin ve değerlendirme için bize yeni bir ürün talebi gönderin: odm@seeed.cc.

Leave a Reply

Your email address will not be published. Required fields are marked *