Bitirme Tezim - AYTOS Nedir?

Akıllı Yemek Tarifi Öneri Sistemi

AYTOS, telefon üzerinden çekilen fotoğraf yardımıyla malzeme tanıyan ve tanıdığı malzeme ya da malzemelere göre yemek önerisi yapan mobil bir uygulamadır.

Neden Bu Uygulamayı Geliştirdik?

Yemek yemek insanın temel ihtiyaçlarının başında yer almaktadır. İnsan var oluşunun ilk gününden bugüne gelene kadar diğer canlılar gibi yemek arayışı devam edecektir.

Bu en temel ihtiyaç gereği, ne yemek yenileceği de tüm bu süreç boyunca karşılaşılan ilk problemlerden biridir. İnsan geliştikçe pişirilen yemeğin çeşidi ve yöntemleri de gelişmiştir.

Bu gelişme doğrultusunda geleneksel yöntemler yerlerini teknolojik geliştirmelere bırakmaktadır.

Tarif defterleri yerini web sitelerine, web siteleride yerlerini mobil uygulamalara bıraktı.

Kısaca AYTOS

Görüntü işleme yöntemi ile dolabımızda ya da mutfağımızda var olan nesneleri tanıyarak, elimizde olan malzemeler ile “Ne yemek yapabilirim?” sorusuna cevap veriyoruz. Amacımız kişiye kullandığı akıllı telefon sayesinde elinizde bu malzemeler var ve bu yemekleri yapabilirsiniz şeklinde bir öneri sistemi sunmaktır. Böylelikle kullanıcıya zaman kazandırmayı ve malzemenin israf olmasını engellemeyi amaçlıyoruz. Kullanıcıya en kolay arayüzü sunarak her yaştan insana hitap etmeyi amaçlıyoruz.

Peki Nasıl Yaptık ?

Veri setimizi dağıtık sistemler kullanarak internetten topladık.

  • Veri setini oluşturmak için Java dilini ve Jsoup kütüphanesini kullandık.

  • Verileri internet üzerinde bulunan yemek tarifi sitelerinden çekileceği ve veri miktarının büyük olmasından dolayı, veri çekme işlemi uzun sürecektir. Bu süreci hızlandırmak için RabbitMQ kullandık.

  • RabbitMQ sayesinde bir makinede yapacağımız işi birden fazla makinede dağıtık olarak çalıştırdık.

  • Dağıtık olarak çalışmanın getireceği iş yükünü ise dockerize ettiğimiz kodlarımızı uzak sunucuda çalıştırdık. Bu işlem için 3 sunucu kullandık. Kullandığımız 3 sunucuyuda Digital Oceandan aldık.
  • Sunucuyu sadece MongoDB Server için kullandık. MongoDB içine çektiğimiz tarifleri kaydettiğimiz için, veritabanına yazma işleminde hız kaybı yaşamak istemedik.

  • Sunucuyu sadece RabbitMQ Server için kullandık. RabbitMQ üzerinde 5 kuyruk ve bu kuyrukları kullanan 35 adet tüketici olduğu için ayrı bir sunucu üzerinde kullanmayı tercih ettik.

  • Sunucuyu Java kodlarımızı çalıştırdığımız Docker konteynerlerımız için kullandık.

  • Veriyi internet sitesinden alırken öncelikle tüm tarif kategorilerinin bulunduğu menüden, kategorilerin içindeki tariflere erişebileceğimiz linkleri MongoDB’ye kaydettik.

  • Kaydettiğimiz linklerin içerisinde her sayfada 10 adet tarif linki bulunmaktadır. Her kategori için 10 sayfa dolaşarak, kategori başına toplam 100 tarifin linkine ulaştık.

  • Tarif linklerini elde ettikten sonra, içerisinde bulunan; ‘Tarifin Hazırlanışı’, ‘Tarifin Malzemeleri’, ‘Kaç kişilik tarif olduğu’, ‘Ne kadar sürede yapıldığı’ bilgilerini MongoDB’ye kaydettik.

Nesneleri tanıyabilmek için de açık kaynaklı kütüphane olan TensorFlow Lite’tan yararlandık. Bulunan nesnenin çevrilmesi için Google Translate apisi kullandık. Nesnelerin benzerlik oranı için Bilginin Çıkarımı Formüllerinden yararlandık.

Ve kullanıcıya kullanuşlı bir arayüz sunduk.

İşteeee AYTOS

Görüntü üzerinden istediğiniz kadar malzeme ekleyebilirsiniz. Elle giriş yapma şansınız da mevcut.

Demo 1

Ufak bir paylaşım daha

demo 2

Giriş Ekran Görüntümüz

App 1

Malzeme Ekleme Ekranımız

App 2

Nasıl Daha Fazla Geliştirilebilir?

  • Nesne tanıma’da %100’ yakın başarı yakalayan AI

  • Doğal dil işleme ile malzeme ayırt edebilen AI

  • Kullanıcı tabanlı öneri sistemi

  • Özel hastalara uygun olarak tasarlanmış öneri sistemi

Daha detaylı bilgi için bana ulaşabilirsiniz.

-XOXO