DiaLens AI: Bir Yemek Tanıma Modelini Gerçek Bir Diyabet Ürününe Dönüştürmek
Tip 1 diyabet yönetiminde yemek analizi, karbonhidrat tahmini ve bolus karar desteğini tek akışta birleştirmeyi amaçlayan DiaLens AI'ın ürün ve geliştirme hikâyesi.

DiaLens AI: Bir Yemek Tanıma Modelini Gerçek Bir Diyabet Ürününe Dönüştürmek
Tip 1 diyabette yemek yemek, çoğu insan için olduğu kadar basit bir işlem değil.
Tabağa bakmak, yemeği tanımak, porsiyonu tahmin etmek, karbonhidrat miktarını hesaplamak, mevcut kan şekeri değerini değerlendirmek ve aktif insülini hesaba katmak gerekiyor. Bu işlemlerin tamamı doğru yapılmadığında ortaya çıkan hata yalnızca yanlış bir sayı olmuyor; doğrudan günlük yaşamı etkileyebiliyor.
DiaLens AI fikri bu noktadan doğdu.
Amacım, kullanıcının yemeğin fotoğrafını çekerek besin ve porsiyon tahmini alabileceği, sonucu kendisinin doğrulayabileceği ve gerekli bilgileri tek bir akışta görebileceği bir mobil ürün geliştirmekti.
Önemli not: DiaLens AI tıbbi tanı koymaz ve kesin tedavi önerisi sunmaz. Uygulamanın ürettiği sonuçlar tahmindir ve kullanıcı doğrulamasına ihtiyaç duyar.

Problem yalnızca yemeği tanımak değil#
Bir yemek tanıma modeli geliştirmek, ilk bakışta problemin büyük bölümünü çözüyormuş gibi görünebilir.
Fakat gerçek kullanım senaryosunda yalnızca yemeğin adını bilmek yeterli değildir. Aynı yemek farklı porsiyonlarda tamamen farklı karbonhidrat değerlerine sahip olabilir. Ayrıca modelin güven skoru, kullanıcının mevcut glikoz değeri ve daha önce uyguladığı insülin miktarı gibi bilgiler de karar sürecini etkiler.
Bu nedenle DiaLens AI'ı yalnızca bir görüntü sınıflandırma demosu olarak değil, baştan sona çalışan bir ürün akışı olarak tasarladım.
Temel akış şu şekilde ilerliyor:
- Kullanıcı yemeğin fotoğrafını çekiyor veya galeriden seçiyor.
- Görsel önce yemek olup olmadığı açısından kontrol ediliyor.
- Model, yemek sınıfı ve güven skoru üretiyor.
- Kullanıcı tahmini doğruluyor veya düzeltiyor.
- Porsiyon seçimine göre besin değerleri ölçekleniyor.
- Kan şekeri ve kullanıcıya ait kişisel oranlar hesaba katılıyor.
- Sonuç, bileşenleriyle birlikte kullanıcıya gösteriliyor.
Doğru görseli elde etmek de ürünün bir parçası#
Bir modelin doğruluğu yalnızca eğitim verisine bağlı değildir. Kullanıcının nasıl fotoğraf çektiği de sonucu doğrudan etkiler.
Birden fazla tabağın aynı karede olması, yemeğin uzaktan çekilmesi, tabağın görünmemesi veya görüntünün bulanık olması tahmin kalitesini düşürebilir. Bu nedenle fotoğraf çekme ekranında kullanıcıya açık ve görsel yönergeler sunuyorum.

Yanlış kullanım senaryolarını da yalnızca hata mesajıyla geçiştirmek istemedim. Kullanıcıya neyin yanlış olduğunu göstermek, yeniden deneme ihtimalini daha anlaşılır hâle getiriyor.

Görüntü sınıflandırmadan kullanıcı doğrulamasına#
DiaLens AI, yemek fotoğrafını analiz ettikten sonra tahmin edilen sınıfı ve modelin güven skorunu kullanıcıya gösteriyor.
Burada kritik tasarım kararı, model sonucunu kesin gerçek gibi sunmamak oldu. Yapay zekâ sonucu yalnızca ilk öneri olarak gösteriliyor ve kullanıcının bunu doğrulaması bekleniyor.

Bu yaklaşımın iki nedeni var:
- Görüntü sınıflandırma modelleri yüksek güven skorunda bile hata yapabilir.
- Sağlıkla ilişkili bir üründe kullanıcıya belirsizliği açıkça göstermek gerekir.
Modelin verdiği sonuca körü körüne güvenmek yerine, kullanıcıyı sürecin aktif bir parçası hâline getirmek ürünün güvenilirliği açısından daha doğru bir yaklaşım.
Porsiyon ve besin değerleri#
Yemeğin adını tanımak, karbonhidrat hesabının yalnızca ilk aşaması.
Uygulamada kullanıcı, tahmin edilen yemek için porsiyon seçebiliyor. Seçilen porsiyona göre karbonhidrat, protein, yağ ve kalori değerleri ölçekleniyor.
Bu yapı sayesinde aynı yemek için tek bir sabit değer göstermek yerine, gerçek kullanıma daha yakın bir sonuç üretmek mümkün oluyor.
Analiz ekranında kullanıcı şunları görebiliyor:
- Tahmin edilen yemek
- Model güven skoru
- Seçilen porsiyon
- Karbonhidrat miktarı
- Protein, yağ ve kalori değerleri
Bolus sonucunu tek sayı olarak saklamamak#
Bir bolus önerisini yalnızca büyük bir sayı olarak göstermek, kullanıcı açısından yeterince açıklayıcı değil.
Bu nedenle DiaLens AI sonucu bileşenlerine ayırıyor:
- Karbonhidrata karşılık gelen miktar
- Yüksek kan şekeri için düzeltme bileşeni
- Aktif insülin nedeniyle yapılan azaltma

Bu yaklaşım kullanıcıya sistemin sonuca nasıl ulaştığını gösteriyor. Böylece sonuç, arka planda çalışan anlaşılmaz bir kutudan çıkıp daha şeffaf bir karar destek ekranına dönüşüyor.
Yine de bu ekranın amacı kesin tedavi kararı vermek değildir. Kullanıcının kendi oranlarını, doktor önerilerini ve gerçek zamanlı durumunu dikkate alması gerekir.
Glikoz ve öğün kayıtları#
Uygulamada yalnızca analiz yapmak değil, geçmiş verileri takip etmek de mümkün.
Kullanıcı manuel olarak kan şekeri kaydı oluşturabiliyor ve geçmiş öğünlerini görüntüleyebiliyor.

Öğün geçmişinde yemek adı, porsiyon, karbonhidrat, kalori, kan şekeri ve hesaplanan bolus gibi bilgiler birlikte gösteriliyor.
Bu yapı ileride kullanıcıların kendi alışkanlıklarını daha iyi gözlemleyebileceği analizlerin temelini oluşturuyor.
Teknik mimari#
DiaLens AI birkaç farklı sistemin birlikte çalıştığı bir yapıdan oluşuyor.
Mobil uygulama#
Mobil istemci Flutter ile geliştirildi. Uygulama tarafında:
- Kimlik doğrulama
- Kamera ve galeri erişimi
- Analiz akışı
- Porsiyon seçimi
- Glikoz ve öğün kayıtları
- Kullanıcı geri bildirimleri
- Çoklu dil altyapısı
yer alıyor.
Veri ve kullanıcı yönetimi#
Supabase şu işlemler için kullanılıyor:
- Kullanıcı kimlik doğrulama
- PostgreSQL veritabanı
- Özel dosya depolama
- Satır seviyesinde erişim politikaları
- Kullanıcı ve öğün verilerinin yönetimi
Model servisi#
Yemek analizi Python tabanlı ayrı bir servis üzerinden gerçekleştiriliyor.
Bu serviste:
- Görsel ön işleme
- Yemek / yemek değil kontrolü
- Yemek sınıflandırma
- Güven skoru üretimi
- Besin kataloğu eşleştirmesi
- Hata yönetimi
işlemleri bulunuyor.
Servis, Docker ile paketlenerek Hetzner üzerindeki sunucuya dağıtılıyor.
Model geri bildirim sistemi#
Gerçek kullanıcı verisi olmadan bir modeli geliştirmek oldukça zor.
Bu nedenle kullanıcıların yanlış olduğunu düşündükleri tahminleri bildirebileceği bir geri bildirim sistemi geliştirdim.
Kullanıcı:
- Tahminin yanlış olduğunu belirtebiliyor.
- Doğru yemek adını girebiliyor.
- Görselin model geliştirme amacıyla saklanmasına açıkça izin verebiliyor.
- Daha önce gönderdiği geri bildirimleri görüntüleyebiliyor, düzenleyebiliyor veya silebiliyor.
Buradaki önemli nokta, görsel saklama izninin varsayılan kabul edilmemesi. Kullanıcının açık onayı olmadan görsel model geliştirme amacıyla saklanmıyor.
Gizlilik ve güvenlik#
Sağlıkla ilişkili bir uygulamada teknik özellikler kadar veri gizliliği de önemli.
Yüklenen görseller cihaz ve konum bilgisi içerebilen EXIF metadatalarından temizleniyor. Saklanması gereken dosyalar herkese açık bir alanda değil, özel depolama alanında tutuluyor.
Ayrıca uygulama ve servisler farklı ülkelerde barındırıldığı için yurtdışına veri aktarımı konusu da ürünün hukuki ve teknik tasarımında dikkate alınması gereken başlıklardan biri.
Bu süreç bana yalnızca çalışan bir sistem geliştirmenin yeterli olmadığını gösterdi. Kullanıcı verisinin nerede tutulduğu, ne kadar süre saklandığı ve kimlerin erişebildiği de ürün tasarımının doğrudan bir parçası.
Neden hazır bir API kullanmadım?#
Projede hazır bir görsel tanıma API'si kullanmak, ilk prototipi daha hızlı ortaya çıkarmamı sağlayabilirdi.
Ancak kendi model ve servis yapımı geliştirmeyi tercih ettim. Bunun temel nedenleri şunlardı:
- Model davranışını daha yakından kontrol edebilmek
- Yerel yemek sınıflarını sisteme ekleyebilmek
- Kullanıcı geri bildirimlerini gelecekte eğitim sürecine dahil edebilmek
- Dış servislere olan bağımlılığı azaltmak
- Modelin sınırlarını ve hata senaryolarını doğrudan gözlemlemek
Bu tercih geliştirme sürecini zorlaştırdı, fakat sistemi gerçekten anlamamı sağladı.
Bu projede öğrendiklerim#
DiaLens AI bana bir modeli eğitmek ile gerçek bir AI ürünü geliştirmek arasındaki farkı net biçimde gösterdi.
Model doğruluğu önemli olsa da tek başına yeterli değil. Gerçek bir ürün için ayrıca şunlara ihtiyaç var:
- Kullanıcı akışlarının doğru tasarlanması
- Hata ve belirsizliklerin açıkça gösterilmesi
- Mobil, backend ve model servislerinin güvenli biçimde bağlanması
- Kullanıcı verilerinin korunması
- Dağıtım, loglama ve izleme süreçlerinin kurulması
- Modelin yanlış tahminlerinden öğrenebileceği bir geri bildirim döngüsü
Kısacası işin zor kısmı yalnızca “AI yapmak” değil; AI'ı güvenli, anlaşılır ve sürdürülebilir bir ürüne dönüştürmek.
Sıradaki adımlar#
DiaLens AI hâlen geliştirme aşamasında.
Planladığım sonraki adımlar arasında şunlar bulunuyor:
- Yemek sınıfı ve porsiyon tahminlerinin geliştirilmesi
- Yerel yemek veri setinin genişletilmesi
- Doktor ve klinikler için ayrı bir takip paneli
- Kullanıcı geçmişi üzerinden daha anlamlı analizler
- Model geri bildirimlerinin kontrollü biçimde eğitim sürecine dahil edilmesi
- Servis izleme, loglama ve hata takip altyapısının güçlendirilmesi
- Güvenlik ve veri saklama politikalarının ayrıntılandırılması
DiaLens AI'ın hasta uygulaması tarafını ücretsiz ve reklamsız tutmayı hedefliyorum. Uzun vadeli gelir modeli ise çoklu hasta takibi, raporlama, analitik ve kurum özellikleri sunan doktor/klinik paneline dayanıyor.
Sonuç#
DiaLens AI benim için yalnızca bir bitirme projesi değil.
Bu proje; mobil uygulama geliştirme, yapay zekâ, backend sistemleri, veri güvenliği ve ürün tasarımının aynı problem etrafında birleştiği uzun soluklu bir çalışma.
Ortaya çıkan sistem kusursuz değil ve sağlıkla ilişkili bir üründe kusursuzmuş gibi davranmak zaten en büyük hata olurdu. Fakat proje, bir yapay zekâ modelini gerçek kullanıcı akışları olan bir ürüne dönüştürmenin ne kadar kapsamlı bir süreç olduğunu bana doğrudan öğretti.
Geliştirme süreci ilerledikçe model, altyapı ve ürün kararları hakkında daha teknik yazılar da paylaşacağım.
Kullanılan teknolojiler#
Flutter · Dart · Python · Supabase · PostgreSQL · Docker · Hetzner · YOLO · REST API
Yasal ve tıbbi uyarı: Bu yazıda anlatılan DiaLens AI geliştirme aşamasındaki bir karar destek ürünüdür. Tıbbi tanı koymaz, kesin tedavi veya insülin dozu önerisi sunmaz. Uygulama çıktıları profesyonel sağlık tavsiyesinin yerine geçmez.

About The Author
Cemil İlkim Teke
Full-stack developer building practical web, mobile, backend, and AI-enabled products.
