SlideShare a Scribd company logo
1 of 20
Mobilya ve Ev Eşyalarının
Görüntülerinin
Sınıflandırılması-Multi label
(Çoklu etiketleme)
14010011014
Muhammed GÖKKAYA
İçindekiler
1)Projenin amacı ?
2)Projede kullanılan teknolojiler
3)Proje aşamaları
4)Proje gösterimi
Projenin Amacı
❖ Alışveriş yapan kullanıcılar çevrim içi olarak hareket ettikçe, fotoğraflarda ürünlerin
otomatik olarak sınıflandırılması bir hayal haline dönüştü.
❖ Bu veriler doğrultusun da seçilen hedef alışveriş alanı, çeşitliliğin bol olduğu ve
kullanıcıların kararsız kaldığı mobilya reklamları seçildi.
❖ Amaç görüntü sınıflandırması sayesinde kullanıcının istediği detayda ürünlerin
müşteriye gösterilmesidir.
Projenin Amacı
● Projede 128 labelden oluşan datalar mevcut
-TV,BUZDOLABI ,SANDALYE vs.
❖ Eğitilmiş model sayesin de verilen fotoğrafın hangi kategoride olduğunu ayırt ediyor
❖ En çok yaklaştığı iki kategoriyi sonuç olarak kullanıcıya geri dönüyor
Projenin Amacı
Python
Python, Guido Van rossum adlı hollandalı bir programcı tarafından yazılmış bir programlama dilidir.
Geliştirilmesine 1990 yılında başlayan Python; C ve C++ gibi programlama dillerine kıyaslarsak şöyle
sonuçlar elde edebiliriz.
❖ Daha kolay öğrenilir.
❖ Program geliştirme sürecini kısaltır yani hızlı yazılır.
❖ Yukaridaki verilen programlama dillerine aksine ayrı bir derleyici ihtiyaci duymaz.
❖ Hem daha okunaklı, hem daha temiz kodsal söz dizimine sahiptir.
Open Cv
❖ OpenCV (Open Source Computer Vision) açık kaynak kodlu görüntü işleme
kütüphanesidir.
❖ Open source yani açık kaynak kodlu bir kütüphanedir ve BSD lisansı ile altında
geliştirilmektedir. BSD lisansına sahip olması bu kütüphaneyi istediğiniz projede
ücretsiz olarak kullanabileceğiniz anlamına gelmektedir.
❖ OpenCV platform bağımsız bir kütüphanedir, bu sayede Windows, Linux, FreeBSD,
Android, Mac OS ve iOS platformlarında çalışabilmektedir.
❖ C++, C, Python, Java, Matlab, EmguCV kütüphanesi aracılığıyla da Visual Basic.Net,
C# ve Visual C++ dilleri ile topluluklar tarafından geliştirilen farklı wrapperlar aracılığıyla
Perl ve Ruby programlama dilleri ile kolaylıkla OpenCV uygulamaları geliştirilebilir
Numpy kütüphanesi
❖ NumPy, Python’ da bilimsel hesaplamalarda kullanılan temel pakettir.
❖ Çok boyutlu diziler (array), çeşitli türetilmiş nesneler (maskelenmiş diziler ve matrisler
gibi) ve bir sürü matematiksel , mantıksal, şekil manipülasyonu, sıralama, seçme, ayrık
Fourier de dahil olmak üzere diziler üzerinde hızlı işlemler yapmamızı sağlayan Python
kütüphanesidir. NumPy kullanılarak istatistik işlemleri ve simülasyonlarda yapılabilir.
Derin Öğrenme (Deep Learning) Nedir?
❖ Derin öğrenme, 2010’lu yıllarda kullanılmaya başlanmış, büyük veri denizi ile tek bir
katmanda değil, birçok katmanda makine öğreniminde kullanılan hesapları tek bir
seferde yapan, makine öğreniminde tanımlamanız gereken parametreleri bile kendisi
keşfeden, belki de daha iyi parametreler ile değerlendirmelerde bulunabilen bir
sistemdir.
❖ Derin öğrenme yapay sinir ağları beynin yapısına ve şekline benzer fonksiyonlarından
yararlanarak oluşturulmuş algoritmalardır.
Neural Network
❖ Günümüzde bir çok makine öğrenmesi modeli mevcuttur. Neural Network bunlardan
sadece bir tanesidir. İnsan beyni ve sinir sisteminden esinlenerek keşfedilmiş bir
modelidir.
❖ İlk katman giriş, son katman çıkış olarak adlandırılır. Orta kısımda bulunan katmanlar
‘Hidden Layers’ yani gizli katmanlar olarak adlandırılmaktadır.
Neural Network
❖ Her katman belli sayıda ‘Neuron’ içerir. Bu neuronlar birbirine ‘Synapse’lar ile bağlıdır.
Synapselar bir katsayı barındırır. Bu katsayılar bağlı oldukları neurondaki bilginin ne
kadar önemli olduğunu söylemektedir.
Convolutional Neural Network(CNN)
❖ CNN biyoloji ve bilgisayar bilimlerinin garip bir karışımı gibi görünse de, bu, resim
tanıma için kullanılan çok etkili bir mekanizmadır
❖ Bir uçak resmine baktığımızda, iki kanat, motor, pencere gibi özellikleri birbirinden
ayırarak uçağı tanımlayabiliriz. Cnn de aynı şeyi yapar, ancak daha önce eğriler ve
kenarlar gibi alt düzey özellikleri tespit ederler ve daha soyut kavramlara kadar bunları
oluştururlar.
Convolutional Neural Network(CNN)
❖ Convolutional Layer:Bu katman CNN’nin ana yapı taşıdır. Resmin özelliklerini
algılamaktan sorumludur. Bu katman, görüntüdeki düşük ve yüksek seviyeli özellikleri
çıkarmak için resme bazı fitreler uygular. Örneğin, bu filtre kenarları algılayacak bir filtre
olabilir.
❖ (5x5x3) 5 matrisin yükseklik ve genişliğini, 3 matrisin derinliğini temsil eder.
Non-linearity
❖ Tüm Convolutional katmanlarından sonra genellikle Non-Linearity(doğrusal olmayan)
katmanı gellir.
❖ Bu katman aktivasyon katmanı (Activation Layer) olarak adlandırılır çünkü aktivasyon
fonksiyonlarından birini kullanılır.
❖ ReLu Fonksiyonu= – f (x) = max (0, x)
❖ ReLu fonksiyonunun Feature Map’a uygulandığında aşağıdaki gibi bir sonuç üretilir.
● Feature Map’taki siyah değerler negatiftir. Relu fonksiyonu uygulandıktan sonra siyah
değerler kaldırılır onun yerine 0 konur.
Flattening Layer
❖ Bu katmanın görevi basitçe, son ve en önemli katman olan Fully Connected Layer’ın
girişindeki verileri hazırlamaktır. Genel olarak, sinir ağları, giriş verilerini tek boyutlu bir
diziden alır. Bu sinir ağındaki veriler ise Convolutional ve Pooling katmanından gelen
matrixlerin tek boyutlu diziye çevrilmiş halidir.
Fully-Connected Layer
❖ Bu katman ConvNet’in son ve en önemli katmanıdır. Verileri Flattening işleminden alır
ve Sinir ağı yoluyla öğrenme işlemini geçekleştirir.
❖ VGGNet – Bu ağ, ağ derinliğinin Sinir ağları için ne kadar önemli plduğunu
kanıtlamıştır. 16 tane Convolutional katman bulunur.
Keras
❖ Keras, Theano veya Tensorflow’u backend olarak kullanan bir wrapper. Python dilini
kullanıyor. Modellerı tanımlamayı ve eğitmeyi çok kolay hale getiriyor.
❖ GPU yada CPU üzerinde çalışmasını bu temel kütüphaneler üzerinden sağlar.
❖ Daha üst düzey bir kütüphane olduğundan Theano yada Tensorflow a göre daha kolay
uygulama geliştirebilirsiniz
❖ Keras da iki ana API yapısı vardır.Kurcağınız modelleri bu iki yapıdan birini kullanarak
tasarlayabiliyoruz.
➢ Sequential yapıda modellerimiz katmanlar şekilde tasarlamak zorundayız. Fakat Kullanımı daha
sade ve anlaşılır bir yapıdır.
➢ Functional yapıda ise fonksiyonlar şeklinde tasarlanıyor. Çok daha esnek ve gelişkin modeller
tasarlamamıza imkan sağlıyor.
Sequential API
❖ Dense layer : girdideki her bir düğüm çıkıştaki her bir düğüm ile bağlıdır.
❖ Activation layer : ReLu,tanh,sigmoid gibi aktivasyon fonksiyonları içerir, çıktı değerini
aktivasyon fonksiyonuna göre belirler.
❖ Dropout layer : Eğitim aşamasında overfitting i azaltmak için kullanılır. (ayrıntılı bilgi
için)
❖ Flatten layer : Matris formundaki veriyi düzleştirmek için kullanılır.
Proje aşamaları
1.Aşama:Keras kütüphanesi kuruldu.Çeşitli denemeler yapıldı. “https://www.kaggle.com”
sitesinden data setler indirildi.
2.Aşama:Modeller ve öğrenme fonksiyonları yazıldı.
3.Aşama:Öğrendikten sonra sınıflandırılmamalar yapıldı.

More Related Content

Similar to Mobilya ve ev eşyalarının derin öğrenme ile 128 kategoride sınııflandırılması(multi-label)

Nesne tabanlı programlamada sınıflar
Nesne tabanlı programlamada sınıflarNesne tabanlı programlamada sınıflar
Nesne tabanlı programlamada sınıflarErol Dizdar
 
Osman kurt & zahide aytar
Osman kurt & zahide aytarOsman kurt & zahide aytar
Osman kurt & zahide aytarOsman Kurt
 
OSI Standartları.pptx
OSI Standartları.pptxOSI Standartları.pptx
OSI Standartları.pptxCanBerkARMAN
 
OpenStack Türkiye 15.Meetup Ankara: Containers, Kubernetes and OpenStack
OpenStack Türkiye 15.Meetup Ankara: Containers, Kubernetes and OpenStackOpenStack Türkiye 15.Meetup Ankara: Containers, Kubernetes and OpenStack
OpenStack Türkiye 15.Meetup Ankara: Containers, Kubernetes and OpenStackHuseyin Cotuk
 
Tcp ip taşima ve uygulama katmani
Tcp ip taşima ve uygulama katmaniTcp ip taşima ve uygulama katmani
Tcp ip taşima ve uygulama katmaniOnur Şaner
 
Nesne tabanlı programlamaya giriş
Nesne tabanlı programlamaya girişNesne tabanlı programlamaya giriş
Nesne tabanlı programlamaya girişErol Dizdar
 
Image Processing with OpenCV
Image Processing with OpenCVImage Processing with OpenCV
Image Processing with OpenCVÖmer Can Koç
 
Görüntü i̇şlemede makine öğrenme teknikleri
Görüntü i̇şlemede makine öğrenme teknikleriGörüntü i̇şlemede makine öğrenme teknikleri
Görüntü i̇şlemede makine öğrenme teknikleriTalha Kabakus
 
KERNEL VE WİNDOWS KURULUMU
KERNEL VE WİNDOWS KURULUMUKERNEL VE WİNDOWS KURULUMU
KERNEL VE WİNDOWS KURULUMUKadir Ertan Çam
 
Clustering Analysis DBSCAN & SOM
Clustering Analysis DBSCAN & SOMClustering Analysis DBSCAN & SOM
Clustering Analysis DBSCAN & SOMÖmer Can Koç
 
Linux Komut Satırı
Linux Komut Satırı Linux Komut Satırı
Linux Komut Satırı Kemal Demirez
 
Bilgisayar ingilizcesi
Bilgisayar ingilizcesiBilgisayar ingilizcesi
Bilgisayar ingilizcesiEmrah Alagöz
 

Similar to Mobilya ve ev eşyalarının derin öğrenme ile 128 kategoride sınııflandırılması(multi-label) (20)

Netty Tanıtımı
Netty TanıtımıNetty Tanıtımı
Netty Tanıtımı
 
Nesne tabanlı programlamada sınıflar
Nesne tabanlı programlamada sınıflarNesne tabanlı programlamada sınıflar
Nesne tabanlı programlamada sınıflar
 
Osman kurt & zahide aytar
Osman kurt & zahide aytarOsman kurt & zahide aytar
Osman kurt & zahide aytar
 
Sunum ceıt313
Sunum ceıt313Sunum ceıt313
Sunum ceıt313
 
OSI Standartları.pptx
OSI Standartları.pptxOSI Standartları.pptx
OSI Standartları.pptx
 
OpenStack Türkiye 15.Meetup Ankara: Containers, Kubernetes and OpenStack
OpenStack Türkiye 15.Meetup Ankara: Containers, Kubernetes and OpenStackOpenStack Türkiye 15.Meetup Ankara: Containers, Kubernetes and OpenStack
OpenStack Türkiye 15.Meetup Ankara: Containers, Kubernetes and OpenStack
 
Tcp ip taşima ve uygulama katmani
Tcp ip taşima ve uygulama katmaniTcp ip taşima ve uygulama katmani
Tcp ip taşima ve uygulama katmani
 
Nesne tabanlı programlamaya giriş
Nesne tabanlı programlamaya girişNesne tabanlı programlamaya giriş
Nesne tabanlı programlamaya giriş
 
Image Processing with OpenCV
Image Processing with OpenCVImage Processing with OpenCV
Image Processing with OpenCV
 
Cisco packet tracer
Cisco packet tracer Cisco packet tracer
Cisco packet tracer
 
Görüntü i̇şlemede makine öğrenme teknikleri
Görüntü i̇şlemede makine öğrenme teknikleriGörüntü i̇şlemede makine öğrenme teknikleri
Görüntü i̇şlemede makine öğrenme teknikleri
 
KERNEL VE WİNDOWS KURULUMU
KERNEL VE WİNDOWS KURULUMUKERNEL VE WİNDOWS KURULUMU
KERNEL VE WİNDOWS KURULUMU
 
Clustering Analysis DBSCAN & SOM
Clustering Analysis DBSCAN & SOMClustering Analysis DBSCAN & SOM
Clustering Analysis DBSCAN & SOM
 
Linux Komut Satırı
Linux Komut Satırı Linux Komut Satırı
Linux Komut Satırı
 
Visual Studio Developer Tools
Visual Studio Developer ToolsVisual Studio Developer Tools
Visual Studio Developer Tools
 
delphi
delphidelphi
delphi
 
14
1414
14
 
delphi xe5
delphi xe5 delphi xe5
delphi xe5
 
Bilgisayar ingilizcesi
Bilgisayar ingilizcesiBilgisayar ingilizcesi
Bilgisayar ingilizcesi
 
Pfe101 unite01
Pfe101 unite01Pfe101 unite01
Pfe101 unite01
 

Mobilya ve ev eşyalarının derin öğrenme ile 128 kategoride sınııflandırılması(multi-label)

  • 1. Mobilya ve Ev Eşyalarının Görüntülerinin Sınıflandırılması-Multi label (Çoklu etiketleme) 14010011014 Muhammed GÖKKAYA
  • 2. İçindekiler 1)Projenin amacı ? 2)Projede kullanılan teknolojiler 3)Proje aşamaları 4)Proje gösterimi
  • 3. Projenin Amacı ❖ Alışveriş yapan kullanıcılar çevrim içi olarak hareket ettikçe, fotoğraflarda ürünlerin otomatik olarak sınıflandırılması bir hayal haline dönüştü. ❖ Bu veriler doğrultusun da seçilen hedef alışveriş alanı, çeşitliliğin bol olduğu ve kullanıcıların kararsız kaldığı mobilya reklamları seçildi. ❖ Amaç görüntü sınıflandırması sayesinde kullanıcının istediği detayda ürünlerin müşteriye gösterilmesidir.
  • 4. Projenin Amacı ● Projede 128 labelden oluşan datalar mevcut -TV,BUZDOLABI ,SANDALYE vs. ❖ Eğitilmiş model sayesin de verilen fotoğrafın hangi kategoride olduğunu ayırt ediyor ❖ En çok yaklaştığı iki kategoriyi sonuç olarak kullanıcıya geri dönüyor
  • 6. Python Python, Guido Van rossum adlı hollandalı bir programcı tarafından yazılmış bir programlama dilidir. Geliştirilmesine 1990 yılında başlayan Python; C ve C++ gibi programlama dillerine kıyaslarsak şöyle sonuçlar elde edebiliriz. ❖ Daha kolay öğrenilir. ❖ Program geliştirme sürecini kısaltır yani hızlı yazılır. ❖ Yukaridaki verilen programlama dillerine aksine ayrı bir derleyici ihtiyaci duymaz. ❖ Hem daha okunaklı, hem daha temiz kodsal söz dizimine sahiptir.
  • 7. Open Cv ❖ OpenCV (Open Source Computer Vision) açık kaynak kodlu görüntü işleme kütüphanesidir. ❖ Open source yani açık kaynak kodlu bir kütüphanedir ve BSD lisansı ile altında geliştirilmektedir. BSD lisansına sahip olması bu kütüphaneyi istediğiniz projede ücretsiz olarak kullanabileceğiniz anlamına gelmektedir. ❖ OpenCV platform bağımsız bir kütüphanedir, bu sayede Windows, Linux, FreeBSD, Android, Mac OS ve iOS platformlarında çalışabilmektedir. ❖ C++, C, Python, Java, Matlab, EmguCV kütüphanesi aracılığıyla da Visual Basic.Net, C# ve Visual C++ dilleri ile topluluklar tarafından geliştirilen farklı wrapperlar aracılığıyla Perl ve Ruby programlama dilleri ile kolaylıkla OpenCV uygulamaları geliştirilebilir
  • 8. Numpy kütüphanesi ❖ NumPy, Python’ da bilimsel hesaplamalarda kullanılan temel pakettir. ❖ Çok boyutlu diziler (array), çeşitli türetilmiş nesneler (maskelenmiş diziler ve matrisler gibi) ve bir sürü matematiksel , mantıksal, şekil manipülasyonu, sıralama, seçme, ayrık Fourier de dahil olmak üzere diziler üzerinde hızlı işlemler yapmamızı sağlayan Python kütüphanesidir. NumPy kullanılarak istatistik işlemleri ve simülasyonlarda yapılabilir.
  • 9. Derin Öğrenme (Deep Learning) Nedir? ❖ Derin öğrenme, 2010’lu yıllarda kullanılmaya başlanmış, büyük veri denizi ile tek bir katmanda değil, birçok katmanda makine öğreniminde kullanılan hesapları tek bir seferde yapan, makine öğreniminde tanımlamanız gereken parametreleri bile kendisi keşfeden, belki de daha iyi parametreler ile değerlendirmelerde bulunabilen bir sistemdir. ❖ Derin öğrenme yapay sinir ağları beynin yapısına ve şekline benzer fonksiyonlarından yararlanarak oluşturulmuş algoritmalardır.
  • 10. Neural Network ❖ Günümüzde bir çok makine öğrenmesi modeli mevcuttur. Neural Network bunlardan sadece bir tanesidir. İnsan beyni ve sinir sisteminden esinlenerek keşfedilmiş bir modelidir. ❖ İlk katman giriş, son katman çıkış olarak adlandırılır. Orta kısımda bulunan katmanlar ‘Hidden Layers’ yani gizli katmanlar olarak adlandırılmaktadır.
  • 11. Neural Network ❖ Her katman belli sayıda ‘Neuron’ içerir. Bu neuronlar birbirine ‘Synapse’lar ile bağlıdır. Synapselar bir katsayı barındırır. Bu katsayılar bağlı oldukları neurondaki bilginin ne kadar önemli olduğunu söylemektedir.
  • 12.
  • 13. Convolutional Neural Network(CNN) ❖ CNN biyoloji ve bilgisayar bilimlerinin garip bir karışımı gibi görünse de, bu, resim tanıma için kullanılan çok etkili bir mekanizmadır ❖ Bir uçak resmine baktığımızda, iki kanat, motor, pencere gibi özellikleri birbirinden ayırarak uçağı tanımlayabiliriz. Cnn de aynı şeyi yapar, ancak daha önce eğriler ve kenarlar gibi alt düzey özellikleri tespit ederler ve daha soyut kavramlara kadar bunları oluştururlar.
  • 14. Convolutional Neural Network(CNN) ❖ Convolutional Layer:Bu katman CNN’nin ana yapı taşıdır. Resmin özelliklerini algılamaktan sorumludur. Bu katman, görüntüdeki düşük ve yüksek seviyeli özellikleri çıkarmak için resme bazı fitreler uygular. Örneğin, bu filtre kenarları algılayacak bir filtre olabilir. ❖ (5x5x3) 5 matrisin yükseklik ve genişliğini, 3 matrisin derinliğini temsil eder.
  • 15. Non-linearity ❖ Tüm Convolutional katmanlarından sonra genellikle Non-Linearity(doğrusal olmayan) katmanı gellir. ❖ Bu katman aktivasyon katmanı (Activation Layer) olarak adlandırılır çünkü aktivasyon fonksiyonlarından birini kullanılır. ❖ ReLu Fonksiyonu= – f (x) = max (0, x) ❖ ReLu fonksiyonunun Feature Map’a uygulandığında aşağıdaki gibi bir sonuç üretilir. ● Feature Map’taki siyah değerler negatiftir. Relu fonksiyonu uygulandıktan sonra siyah değerler kaldırılır onun yerine 0 konur.
  • 16. Flattening Layer ❖ Bu katmanın görevi basitçe, son ve en önemli katman olan Fully Connected Layer’ın girişindeki verileri hazırlamaktır. Genel olarak, sinir ağları, giriş verilerini tek boyutlu bir diziden alır. Bu sinir ağındaki veriler ise Convolutional ve Pooling katmanından gelen matrixlerin tek boyutlu diziye çevrilmiş halidir.
  • 17. Fully-Connected Layer ❖ Bu katman ConvNet’in son ve en önemli katmanıdır. Verileri Flattening işleminden alır ve Sinir ağı yoluyla öğrenme işlemini geçekleştirir. ❖ VGGNet – Bu ağ, ağ derinliğinin Sinir ağları için ne kadar önemli plduğunu kanıtlamıştır. 16 tane Convolutional katman bulunur.
  • 18. Keras ❖ Keras, Theano veya Tensorflow’u backend olarak kullanan bir wrapper. Python dilini kullanıyor. Modellerı tanımlamayı ve eğitmeyi çok kolay hale getiriyor. ❖ GPU yada CPU üzerinde çalışmasını bu temel kütüphaneler üzerinden sağlar. ❖ Daha üst düzey bir kütüphane olduğundan Theano yada Tensorflow a göre daha kolay uygulama geliştirebilirsiniz ❖ Keras da iki ana API yapısı vardır.Kurcağınız modelleri bu iki yapıdan birini kullanarak tasarlayabiliyoruz. ➢ Sequential yapıda modellerimiz katmanlar şekilde tasarlamak zorundayız. Fakat Kullanımı daha sade ve anlaşılır bir yapıdır. ➢ Functional yapıda ise fonksiyonlar şeklinde tasarlanıyor. Çok daha esnek ve gelişkin modeller tasarlamamıza imkan sağlıyor.
  • 19. Sequential API ❖ Dense layer : girdideki her bir düğüm çıkıştaki her bir düğüm ile bağlıdır. ❖ Activation layer : ReLu,tanh,sigmoid gibi aktivasyon fonksiyonları içerir, çıktı değerini aktivasyon fonksiyonuna göre belirler. ❖ Dropout layer : Eğitim aşamasında overfitting i azaltmak için kullanılır. (ayrıntılı bilgi için) ❖ Flatten layer : Matris formundaki veriyi düzleştirmek için kullanılır.
  • 20. Proje aşamaları 1.Aşama:Keras kütüphanesi kuruldu.Çeşitli denemeler yapıldı. “https://www.kaggle.com” sitesinden data setler indirildi. 2.Aşama:Modeller ve öğrenme fonksiyonları yazıldı. 3.Aşama:Öğrendikten sonra sınıflandırılmamalar yapıldı.