Görüntü sınıflandırma ve görüntü bölümleme ile mi oynuyorsunuz? Gelin, TensorFlow'a dayalı görüntü ek açıklamaları oluşturmaya meydan okuyun!

Leifeng.com: Bu makale Leifeng.com tarafından derlenen Oreilly'de yayınlandı. Orijinal adresi okumak için lütfen buraya tıklayınız.

Görüntü sınıflandırması ile oynayan birçok geliştirici var ve birçok kişi görüntü bölümlemesine aşina olabilir, ancak görüntü başlığının zorluğu şüphesiz önceki ikisinden daha ileri düzeydedir.

Başka bir neden yoktur: Pratik görüntü notları oluşturmak için sinir ağlarının kullanılması, en son bilgisayar vizyonu ve makine çevirisi teknolojisinin bir kombinasyonunu gerektirir ve ikisi de vazgeçilmez değildir. Giriş görüntüleri için metin ek açıklamaları oluşturmak için, bir nöral görüntü açıklama modelini eğitmek, başarı oranını en üst düzeye çıkarabilir ve yeni görüntü açıklamaları oluşturabilir. Örneğin, aşağıdaki şekil, MS COCO veri seti üzerinde eğitilmiş nöral görüntü açıklama oluşturucu tarafından çıkarılan potansiyel ek açıklamaları gösterir.

Soldaki resimdeki not: gri giyen bir adam bir sopa tutar ve siyahlar içindeki bir adam izler; sağda: bir kişinin yanında "oturan" bir otobüs

Bu makale, Google Show and Tell modelinin bir varyantını kullanarak Flickr30k veri kümesinde bir görüntü ek açıklaması oluşturma modelini nasıl eğiteceğinizi öğretmek için tasarlanmış orta düzey bir eğiticidir. Modeller oluşturmak, eğitmek ve test etmek için TensorFlow çerçevesini kullanıyoruz çünkü TensorFlow'un kullanımı nispeten kolaydır ve giderek büyüyen bir kullanıcı topluluğuna sahiptir.

Görüntü açıklama teknolojisinin değeri

Derin öğrenmenin CV (bilgisayar görüşü) ve NLP (doğal dil işleme) alanlarındaki son başarısı, AI araştırmacılarına ikisinin kesişimindeki yeni uygulamaları keşfetmeleri için ilham verdi. Ortaya çıkan ek açıklama oluşturma modelinin, görsel ipuçlarının ve doğal dilin anlaşılmasını dengelemesi gerekir.

Bu iki geleneksel olarak farklı ve ilgisiz alan arasındaki kesişim, sektörde geniş bir etkiye sahip olma potansiyeline sahiptir. Bu teknolojinin, YouTube videoları için tanıtımlar oluşturma ve etiketlenmemiş görüntülere açıklama ekleme gibi bazı doğrudan uygulama senaryoları vardır, ancak değeri bundan çok daha fazladır. Gerçek dünyayı bilgisayarlar için daha erişilebilir ve daha kolay anlaşılır hale getirmeye çalışan geleneksel CV teknolojisine benzer şekilde, bu teknoloji gerçek dünyayı bizim için daha kolay anlaşılır hale getirme potansiyeline sahiptir. İtalyan AI şirketi Eyra tarafından görme engelliler için geliştirilen giyilebilir cihaz Horus (eski Mısır mitolojisinde Horus'un gözü) gibi tur rehberimiz ve günlük görsel yardımcımız olarak kullanılabilir.

Çalışmaya hazır

Öncelikle TensorFlow'u kurmanız gerekir.

İkinci olarak, ilgili kodu çalıştırmak için pandalara, opencv2'ye ve Jupyter'a ihtiyacınız var. Ancak kurulum sürecini basitleştirmek için GitHub depomuzdaki Docker kurulum kılavuzunu takip etmenizi şiddetle tavsiye ederiz.

Flickr30k veri kümesinin görüntü açıklamalarını ve görüntü yerleştirmelerini de indirmeniz gerekir. İndirme bağlantısı da GitHub deposundadır.

Şimdi eğitim başlıyor.

Görüntü açıklama oluşturma modeli

Yüksek düzeyde, eğiteceğimiz model budur. Her bir görüntü derin CNN kullanılarak 4.096 boyutlu vektör temsiline kodlanacaktır. Dil tarafından üretilen bir RNN daha sonra sırayla kodunu çözecek ve doğal bir dil açıklaması haline gelecektir.

Ek açıklama oluşturma - görüntü sınıflandırmanın bir uzantısı olarak

Uzun süredir devam eden bir CV görevi olarak, görüntü sınıflandırmasının arkasında birçok güçlü model vardır. Görüntü sınıflandırması, görüntüdeki ilgili şekil ve nesnelerin görsel bilgilerini bir araya getirebilir ve görüntüyü nesne kategorisine yerleştirebilir. Diğer CV görevleri için makine öğrenimi modelleri, nesne tanıma ve görüntü bölümleme gibi görüntü sınıflandırmasına dayanır. Sadece sağlanan bilgileri tanıyamazlar, aynı zamanda 2D alanı nasıl yorumlayacaklarını, iki anlayışı nasıl uzlaştıracaklarını ve görüntüdeki nesne bilgilerinin konumunu ve dağılımını nasıl belirleyeceklerini öğrenebilirler.

Ek açıklama oluşturma için bu, iki soruyu gündeme getirir:

  • Görüntülerden önemli bilgileri çıkarmak için görüntü sınıflandırma modellerinin başarısından tam olarak nasıl yararlanabiliriz?

  • Modelimiz, dil ve imge anlayışımızı nasıl uzlaştırmalı?

  • Transfer öğrenmeyi kullanın

    Görsel açıklamayı desteklemek için mevcut modelleri kullanabiliriz. Transfer öğrenimi, verilerimizde kullanılabilecek farklı görevler üzerine sinir ağlarını eğiterek verileri deforme eder. Örneğimizde, VGG-16 görüntü sınıflandırma modeli 224x224 çözünürlüklü bir görüntüyü içe aktararak görüntüleri sınıflandırmak için çok kullanışlı olan 4.096 boyutlu özellik vektörleri oluşturur.

    Diğer modelleri eğitmek için VGG-16 modelinin temsilini (yani görüntü gömme) kullanabiliriz. Alan kısıtlamaları nedeniyle, bu makale eğitimi hızlandırmak için VGG-16 mimarisi ve önceden hesaplanmış 4.096 boyutlu özellikler üzerinde ayrıntılı bilgi vermek istemiyor.

    VGG resim özelliklerini ve resim açıklamalarını yüklemek nispeten kolaydır:

    def get_data (annotation_path, feature_path):

    annotations = pd.read_table (annotation_path, sep = '\ t', header = None, names =)

    np.load (özellik_yolu, 'r'), annotations.values döndür

    Ek açıklamaları anlama

    Bir görüntü temsiliyle, onu anlaşılır bir ek açıklamaya dönüştürmeyi öğrenmek için bir modele ihtiyacımız var. Metnin sıralı yapısı nedeniyle, RNN / LSTM'de döngüler kullanmamız gerekir. Sıradaki belirli bir kelime için, bu ağlar bir sonraki kelime ve görüntü temsilini tahmin etmek üzere eğitilir.

    LSTM ünitesi, modelin hangi bilgiyi kullanacağını, neyi hatırlayacağını ve kelime dizilerine açıklama eklerken neyi unutacağını daha iyi seçmesini sağlar. TensorFlow, belirli girdi ve çıktı boyutları için LSTM katmanları oluşturmak için bir sarmalayıcı işlevi sağlar.

    Kelimeleri LSTM girdisine uygun sabit uzunluklu temsillere dönüştürmek için, kelimeleri 256 boyutlu özelliklerle (veya kelime gömme) eşlemeyi öğrenebilen bir gömme katmanı kullanıyoruz. Kelime gömme, kelimeleri vektör olarak ifade etmemize yardımcı olur ve benzer kelime vektörleri anlambilimde benzerdir.

    VGG-16 görüntü sınıflandırıcıda, evrişimli katman 4.096 boyutlu gösterimleri çıkarır ve bunları sınıflandırma için son softmax katmanına aktarır. LSTM birimi girdi olarak 256 boyutlu metin özellikleri gerektirdiğinden, görüntü temsilini hedef açıklama için bir gösterime çevirmemiz gerekir. Bunu başarmak için, 4.096 boyutlu görüntü özelliklerini 256 boyutlu bir metin özelliği uzayına eşlemeyi öğrenmek için başka bir gömme katmanı kullandık.

    Modeller oluşturun ve eğitin

    Genel olarak, Google Show and Tell modeli şuna benzer:

    Yukarıdaki şekilde, {s0, s1, ..., sN}, ek açıklamada tahmin etmek istediğimiz kelimeleri temsil eder ve {wes0, wes1, ..., wesN-1} her kelimenin kelime gömme vektörüdür. LSTM {p1, p2, ..., pN} çıktısı, cümledeki sonraki kelime için model tarafından üretilen olasılık dağılımıdır. Model, her kelimenin negatif günlük olasılıklarının toplamını en aza indirecek şekilde eğitilmiştir.

    Ek açıklamalar oluşturmak için çıkarım kullanın

    Eğitimden sonra bir modelimiz var. Bir resim ve önceki tüm kelimeler verildiğinde, bir sonraki açıklamada görünme olasılığını verebilir. Yeni ek açıklamalar oluşturmak için nasıl kullanılır?

    En kolay yol, bir girdi görüntüsü almak, bir sonraki en olası sözcüğü çıktı almak ve basit bir görüntü açıklaması oluşturmaktır.

    Bu birçok durumda işe yarayacaktır, ancak en yüksek olasılıkla her kelimeyi kullanan "açgözlü", genel olarak en yüksek olasılığa sahip ek açıklamayı alamayabilir.

    Bu sorunu atlamanın olası bir çözümü, "Işın Arama" adlı bir yöntemi benimsemektir. Algoritma, t uzunluğundaki en iyi k cümle kümelerini tekrar tekrar dikkate alacak ve bunları t + 1 boyutunda cümleler oluşturmak için adaylar olarak kullanacak ve sonuçta yalnızca en iyi k seçeneğini koruyacaktır. Bu, geliştiricilerin, çıkarımları sayısal olarak izlenebilir hale getirirken daha geniş bir yüksek kaliteli ek açıklama alanını keşfetmelerine olanak tanır. Aşağıdaki örnekte, algoritma, k = 2 olan aday cümlelerin bir listesini, yani her dikey zaman adımından her kalın kelimeye giden yolu tutar.

    sınırlama

    Nöral görüntü açıklama oluşturucu, görüntüleri insan düzeyindeki metin açıklamalarıyla eşlemeyi öğrenmek için çok yararlı bir çerçeve sağlar. Tongguo, çok sayıda görüntü-açıklama eşleştirilmiş verisi üzerinde eğitilmiştir ve model, görsel özellikler aracılığıyla ilgili anlamsal bilgileri yakalamayı öğrenir.

    Ancak statik görüntüler için, açıklama oluşturucumuzun gömülmesi, açıklama oluşturma için yararlı olan özelliklerden ziyade görüntüdeki sınıflandırma için yararlı olan özelliklere odaklanacaktır. Her bir özellikte bulunan görevle ilgili bilgileri iyileştirmek için, ek açıklama oluşturma modelinin bir parçası olarak görüntü gömme modelini (özelliği kodlamak için kullanılan VGG-16 ağı) eğitebiliriz. Bu, görüntü kodlayıcının parametrelerini, açıklama oluşturucunun rolüne daha iyi uyacak şekilde ayarlamamıza olanak tanır.

    Ek olarak, oluşturulan ek açıklamaları dikkatlice gözlemlersek, bunların temelde günlük ve yaygın durumlar olduğunu görürüz. Aşağıdaki şekil bir örnektir:

    Bu resmin "ağacın yanında duran bir zürafa" olduğu neredeyse kesindir. Ancak, diğer resimlere bakarsak, oluşturulan notlardan hangisinin "bir ağacın yanında duran zürafa" olduğunu hemen görürüz. Bunun nedeni eğitim setindeki tüm zürafaların ağacın yanında görünmesidir.

    Sonraki adım

    Öncelikle, modeli geliştirmek istiyorsanız, Google'ın açık kaynaklı Show and Tell sinir ağına bakmanız gerekir. MS COCO veri seti ve Inception-v3 görüntü yerleştirme eğitimini kullanır.

    Mevcut son teknoloji görüntü açıklama modeli, modelin görüntünün ilginç bölümünü keşfetmesine olanak tanıyan görsel bir dikkat mekanizması içerecek, böylece ek açıklamalar oluştururken seçici olarak odaklanabilecektir.

    Ek olarak, ek açıklama oluşturmanın son teknoloji uygulamasını çok merak ediyorsanız, şu makaleye bir göz atmak isteyebilirsiniz: Göster, Katıl ve Söyle: Görsel Dikkatle Nöral Görüntü Altyazısı Oluşturma.

    Leifeng.com hatırlatıyor: Yazar bu makalenin tüm Python kodunu GitHub'a yükledi, lütfen buraya tıklayın.

    "TensorFlow ve Sinir Ağı Algoritması Gelişmiş Uygulama Sınıfı" başlamak üzere!

    Temelden ileri düzeye, teori + gerçek savaş, TensorFlow'un tek noktadan derinlemesine anlaşılması!

    Bu kurs, derin öğrenme geliştiricileri içindir ve TensorFlow'un görüntü tanıma ve metin analizi gibi belirli sorunları çözmek için nasıl kullanılacağını öğretir. Kurs 10 haftayı kapsar. TensorFlow'un ilkeleri ve temel pratik becerileriyle başlayacak, öğrencilere adım adım TensorFlow'da CNN, kendi kendine kodlama, RNN, GAN ve diğer modellerin nasıl oluşturulacağını öğretecek ve son olarak TensorFlow'a dayalı eksiksiz bir derin öğrenme geliştirme setinde ustalaşacaksınız. beceri.

    İki öğretim görevlisi Tong Da ve Bai Fachuan, ThoughtWorks'ün kıdemli teknik uzmanlarıdır ve büyük veri platformları ve derin öğrenme sistemi geliştirme projeleri oluşturma konusunda zengin deneyime sahiptirler.

    Saat: Her Salı ve Perşembe gecesi 20: 00-21: 00

    Kurs süresi: Toplam 20 saat, 10 haftada tamamlandı, haftada 2 kez, her seferinde 1 saat

    Çevrimiçi öğretim adresi:

    Bu en az giyinen yerli film sandığınızdan daha "güzel"
    önceki
    "Persona 5: Dancing Starry Night" ve "Persona 3: Dancing Moon Night" ek karakterleri resmen yayınlandı
    Sonraki
    Çok fazla film çekmiyor ama neredeyse her biri harika
    ARM'nin ADAS için geliştirdiği ilk ISP çipi otomotiv görüntü işleme sorununu nasıl çözecek?
    Öğlen Yıldızı Haberleri | Ha Wen, Li Yong'un ölümünden sonra ilk kez blogunu okuyor ve "sabah" kelimesini tekrar yayınlamak üzücü; gerçekten ayrılmak mı istiyorsun? Cannavaro'nun Evergrande'den ayrıl
    Makine öğrenimine dayalı VoIP trafiği için çevrimiçi bir tanımlama sistemi
    "Three Lives III, Ten Miles of Peach Blossoms" filmi son fragmanı yayınladı ve Liu Yifei ve Yang Yang'ın dövüş sahnesi izleyicileri şok etti.
    Meizijiecai, "DNF oyuncuları ölü şişko evler" dedi ve oyuncular kızgın ve takım elbise almak için takım halinde
    Ekran başında kalma süresi | "Seni seviyorum", sadece konuşmayı değil
    MUSA sisteminde hızlı bir çok kullanıcılı algılama algoritması
    "Her Şey Seslidir" Akıllı Ses Çözümü Konferansı | Önizleme
    Niş akışı çok fazla olduğunda, bir grup drama aktörünün birbirini nasıl oynadığını izleyin!
    BDNC: Ağ kodlamasına dayalı olarak araç ağı için ticari mesaj aktarım protokolü
    Yalama Ekran Süresi Dünyayı bir gülümsemeyle iyileştirebilen Aragaki Yui
    To Top