Otomatik kodlayıcı nedir? Bulanık görüntüleri geliştirmek için otomatik kodlayıcıyı nasıl kullanacağınızı öğretin

Yazar: PRATEEK JOSHI

Çeviri: Cheng Chao

Düzeltme: Feng Yu

Bu makale hakkında 2200 kelime , Okumanız tavsiye edilir 9 dakika

Bu makale önce sinir ağlarına dayalı bir otomatik kodlayıcı tanıtmakta ve ardından bulanık görüntüleri geliştirmek için bir otomatik kodlayıcının nasıl kullanılacağını tanıtmaktadır.

Etiket: Computer Vision

Genel Bakış

  • Otomatik kodlayıcı nedir? Otomatik kodlayıcı nasıl çalışır? Bu makale bu soruları cevaplayacaktır.
  • Bulanık görüntülerin çözünürlüğünün nasıl iyileştirilebileceğini anlatan bir vaka aracılığıyla otomatik kodlayıcı kavramını keşfedeceğiz.

Giriş

Film kameraları dönemini hatırlıyor musunuz? Fotoğraf geliştirmek gizemli bir süreçtir ve yalnızca fotoğrafçılar ve profesyoneller bu konuda ustalaşabilir. Çoğu insanın yalnızca loş kırmızı ışıkla dolu karanlık bir odası vardır. Kısaca fotoğraf geliştirmek zaman alan bir süreçtir.

Sonra dijital kamera devrimi başladı ve geçmiş dönem sonsuza dek gitti! Artık fotoğraf basmak bile istemiyoruz - çoğu kişinin fotoğrafları akıllı telefonlarda, dizüstü bilgisayarlarda veya bulutta saklanıyor.

karanlık oda

Şimdi bile (fareye tıkladığınızda) bulanık, pikselli ve bulanık resimlerle karşılaşacağız. Bu konuda kendimi suçlu hissediyorum, birçok insan mükemmel resmi sunmaya çalışıyor. Derin öğrenme ve otomatik kodlayıcıların devreye girdiği yer burasıdır.

Aşağıda otomatik kodlayıcının ne olduğu ve çalışma prensibi açıklanacaktır. Ardından, Python'daki otomatik kodlayıcıya dayalı olarak görüntünün çözünürlüğünü iyileştirmek için pratik bir durum vereceğiz.

Önkoşullar: Keras'a aşina, sinir ağlarına ve evrişimli katmanlara dayalı görüntü sınıflandırması. Bu kavramları gözden geçirmeniz gerekirse, aşağıdakilere başvurabilirsiniz:

  • Sinir Ağlarına Giriş (ücretsiz kurs) https://courses.analyticsvidhya.com/courses/Introduction-to-Neural-Networks?utm_source=blogutm_medium=what-is-autoencoder-enhance-image-resolution
  • İlk görüntü sınıflandırma modelinizi oluşturun https://www.analyticsvidhya.com/blog/2019/01/build-image-classification-model-10-minutes/?utm_source=blogutm_medium=what-is-autoencoder-enhance- görüntü çözünürlüğü

içindekiler

1. Otomatik kodlayıcı nedir

2. Görüntü denoising otomatik kodlayıcı hakkında

Üç, sorun açıklaması - görüntü çözünürlüğünü iyileştirmek için otomatik kodlayıcı kullanın

Dördüncü olarak, otomatik kodlayıcıyı uygulamak için Python kullanın

1. Otomatik kodlayıcı nedir

Pulkit Sharma yazıda şu tanımı verdi:

"Otomatik kodlayıcı, esas olarak, giriş verilerinin düşük boyutlu özellik temsilini öğrenen bir sinir ağı yapısıdır."

Otomatik kodlayıcı, birbirine bağlı iki ağdan oluşur: bir kodlayıcı ve bir kod çözücü. Kodlayıcının amacı, bir girdi (x) almak ve bir özellik haritası (z) oluşturmaktır:

Bu özellik haritasının (z) boyutu veya uzunluğu genellikle x'ten daha küçüktür. Neden böyle?

Yalnızca z'nin girdi verilerini tanımlayabilen anlamlı değişim faktörlerini yakalamasını istediğimiz için, z'nin şekli genellikle x'ten daha küçüktür.

Şimdi, soru bu özellik temsilini (z) nasıl elde ederiz? Bu modeli nasıl eğitiyoruz? Bu amaçla, çıkarılan özelliklerin üstüne bir dekoder ağı ekleyebilir ve ardından modeli eğitebiliriz:

2. Görüntü denoising otomatik kodlayıcı hakkında

Bu makalede çözeceğimiz sorun, görüntü denoising otomatik kodlayıcının işlevi ile ilgilidir. Aşağıda, görüntüdeki gürültüyü ortadan kaldırmak için otomatik kodlayıcının nasıl kullanılacağını ayrıntılı olarak sunuyoruz.

Elimizde bir dizi el yazısı dijital resim olduğunu ve bunların bir kısmı bozuk olduğunu varsayalım. İşte parazitli (bozulma) bazı resimler:

Bu gürültünün görüntüden uzaklaştırılmasına görüntü denoising problemi denir. İstenen çıktı, aşağıda gösterildiği gibi gürültünün çoğu kaldırılmış temiz bir görüntüdür:

Ancak otomatik kodlayıcı bu gürültüyü görüntüden nasıl kaldırır?

Önceki bölümde gördüğümüz gibi, otomatik kodlayıcı giriş verilerini yeniden yapılandırmaya çalışır. Bu nedenle, giriş olarak bozuk bir görüntüyü alırsak, otomatik kodlayıcı gürültülü bir görüntüyü yeniden oluşturmaya çalışacaktır.

Yani ne yapmalıyız? Yapıyı değiştirmek mi? cevap olumsuz!

Burada gerekli olan küçük bir ayarlamadır. Kaybı hesaplamak için girdi ve yeniden yapılandırılmış çıktı kullanmak yerine orijinal görüntü ve yeniden yapılandırılmış görüntüyü kullanarak kaybı hesaplayabiliriz. Aşağıdaki şekil benim düşüncemi gösteriyor:

Görüntü denoising otomatik kodlayıcı

Artık denoising otomatik kodlayıcının işlevine aşina olduğumuza göre, çözmek için otomatik kodlayıcıyı kullanmayı beklediğimiz soruna dönelim.

Üç, sorun açıklaması - görüntü çözünürlüğünü iyileştirmek için otomatik kodlayıcı kullanın

Bu soruna aşina olacağına inanıyorum. Çoğumuz bulanık görüntülerle karşılaştığımızda depresyondayız ve hepimiz görüntülerin daha net olmasını umuyoruz. Daha sonra bu sorunu çözmek için bir otomatik kodlayıcı kullanacağız!

Bir dizi düşük çözünürlüklü yüz resmimiz olduğunu varsayalım. Görevimiz bu görüntülerin çözünürlüğünü iyileştirmektir. Bu, Photoshop gibi fotoğraf düzenleme araçlarının yardımıyla yapılabilir. Bununla birlikte, elimizde binlerce görsel olduğunda, bu görevi gerçekleştirmek için daha akıllı bir yola ihtiyacımız var.

İşte bazı örnek resimler ve orijinal resimleri:

Dördüncü olarak, otomatik kodlayıcıyı uygulamak için Python kullanın

Juyter Defterimizi açalım ve gerekli kitaplıkları içeri aktaralım:

  • Veri setini indirin

Araştırmamız, popüler "Labeled Faces in the Wild" veri kümesine dayanmaktadır. Kısıtlanmamış yüz tanıma problemlerini incelemek için tasarlanmıştır. Ancak, buradaki amacımız yüz tanıma değil, görüntü çözünürlüğünü iyileştirmek için bir model oluşturmaktır.

Veri setini indirip çıkaralım:

# veri kümesini indirin! wget veri kümesini ayıklayın! tar -xvzf lfw.tgz

Bu veri seti birden çok klasöre çıkarılacaktır. Bu nedenle, tüm görüntüleri yakalamak için dosya yolu çok önemlidir. Bunu glob kütüphanesinin yardımıyla kolayca yapabiliriz.

#capture imagesface_images = glob.glob ('lfw / ** / *. jpg')
  • Görüntüleri yükleyin ve önceden işleyin

Görüntünün orijinal boyutu 250 × 250 pikseldir. Ancak, bu görüntülerin genel olarak yapılandırılmış bir sistemde işlenmesi, önemli bilgi işlem kaynakları gerektirir. Bu nedenle, tüm görsellerin boyutunu kırpmamız gerekiyor.

  • Model eğitimi verisi hazırlama

Daha sonra, veri setini (resim) eğitim ve doğrulama olmak üzere iki gruba ayırıyoruz. Modelimizi eğitmek için eğitim setini ve modelin performansını değerlendirmek için doğrulama setini kullanacağız:

Veri kümesindeki resimlere bir göz atalım:

Bu durumun fikri, gürültü azaltıcı otomatik kodlayıcıya çok benzer.

Giriş görüntüsünde bazı değişiklikler yapacağız ve kaybı hesaplamak için orijinal görüntüyü kullanacağız. Çözünürlüğü artırmanın bir görevi olarak, orijinal görüntünün çözünürlüğünü düşürüp modele giriyoruz.

Aşağıdaki işlenmiş giriş resmidir:

Tüm görüntülerin çözünürlüğünü azaltmak ve ayrı bir düşük çözünürlüklü görüntü seti oluşturmak için aşağıdaki işlevi kullanacağız.

  • Giriş görüntüsünü hazırlayın

Eğitim seti ve doğrulama seti dahil tüm görüntülerin çözünürlüğünü azaltın.

  • Model oluşturma

Modelin yapısı şu şekilde tanımlanmıştır:

Yapı gerektiği gibi değiştirilebilir. Katman sayısını değiştirebilir, katman türlerini değiştirebilir, düzenlileştirmeyi kullanabilir ve diğer birçok parametreyi kullanabilirsiniz. Şu an için bu yapıyı kullanmaya devam ediyoruz.

Model yapısının görselleştirilmesi, hata ayıklama için çok yararlıdır (hata oluşursa). Keras'ta uygulanması kolaydır, sadece yürütülmesi gerekir < model adı > .Summary () işlevi şunlar olabilir:

autoencoder.summary ()

Sonunda modelimizi eğitebiliriz:

  • Tahmin (geliştirilmiş resim)
tahminler = autoencoder.predict (val_x_px)

postscript

Bu eğitici, otomatik kodlayıcıyı açıklar, görüntü çözünürlüğünün iyileştirilmesini, görüntü denoize etme fikrine dayanarak gerçekleştirdik. Bunu başka birçok yere genişletebiliriz.

Örneğin, bu tekniği düşük çözünürlüklü videoların kalitesini artırmak için de kullanabiliriz. Bu nedenle, görüntü etiketlenmemiş olsa bile görüntü verilerini işleyebilir ve bazı pratik problemleri çözebiliriz. Denetimsiz öğrenmeye dayalı başka görüntü işleme vakalarınız veya teknikleriniz varsa, lütfen bunları aşağıdaki yorumlar bölümünde paylaşın.

Orjinal başlık:

Otomatik Kodlayıcılar Bulanık Görüntüyü Otomatik Kodlayıcı Kullanarak Nasıl İyileştireceğinizi Öğrenin!

Orijinal bağlantı:

https://www.analyticsvidhya.com/blog/2020/02/what-is-autoencoder-enhance-image-resolution/

Editör: Huang Jiyan

Redaksiyon: Lin Yilin

Çevirmen Profili

Cheng Chao , Çin İnşaat Bankası Büyük Veri Merkezi, Güneydoğu Üniversitesi Yüksek Lisansı. DSP geliştirme, QT geliştirme, veri madenciliği, veri ürünleri ve mevcut veri güvenliği çalışmalarına kadar ilgili iş daha karmaşıktır. Kendinizi veri bilimi alanında tam donanımlı bir bilim insanı olarak konumlandırın. Boş zamanlarımda, daha ileri veri bilimi bilgisi ve kavramları eklemeyi ve sizinle daha fazlasını paylaşıp öğrenmeyi umuyorum.

-Bitiş-

Tsinghua-Qingdao Veri Bilimi Enstitüsü'nün resmi WeChat kamu platformunu takip edin " AI Veri Pastası "Ve kız kardeş numarası" Veri Pastası THU "Daha fazla ders avantajı ve kaliteli içerik elde edin.

2020'de yapay zeka programlama dilleri hakkında ne biliyorsunuz?
önceki
Wu Enda AI for Everyone'dan öğrendiğim 10 önemli AI görüşü
Sonraki
Yüzyılın üstündeki insanların somatik telomerleri bebekler gibi restore edilir! 114 yaşındaki dişi hücreler, 0 yaşındaki kök hücrelere düşürüldü
Bilimsel olarak iyi bir futbol oyunu nasıl oynanır!
Genom sekans analizi için K-Ortalamalarını ve PCA'yı kullanma COVID-19 bundan sonra nasıl mutasyona uğrayacak?
46 sayfalık ppt size kural motoru ve makine öğrenimini nasıl entegre edeceğinizi öğretir!
İtalyan kardeş hayatını 3D baskı ile kurtarıyor! Yargılama riski ile karşı karşıya olan netizenler: "Yao Shen" in İtalyanca versiyonu mu?
Yeni altyapı dalgası altında, teknoloji devlerinin bu fırsatı nasıl değerlendirdiğini görün!
Arkadaşlar yakında geri geliyor! Klasik konu: Aman Tanrım Arkadaşlar'da kaç kez bahsediliyor?
İş göstergelerinin çevrimdışı tahmini için bir test seti nasıl oluşturulur? (Kod bağlantısı ile)
Bairong Yunchuang ve Tsinghua Üniversitesi "Salgın Altındaki Çin Ekonomisi" araştırma raporunu yayınladı
Marbury, kendi kendini izole etme fotoğraflarını paylaştı ve beğendi
CBA İngiliz ev sahibi izolasyonu "hapishane" ile karşılaştırıyor Şangay Erkek Basketbol Takımı: İşbirliğini sonlandırın!
Bir şey söyler ve başka bir şey yaparlar! İngiliz ve Amerikalı politikacıların bu çirkin tavırları Almanya ve İtalya'ya bile dayanamıyor.
To Top