Bir hastaneye ilk kez girdiğinizi düşünün. Randevunuz var ama hangi blokta, hangi katta olduğunu bilmiyorsunuz. Danışmaya sıra beklersiniz, ya da yanınızdakine sorarsınız. Yanlış kata çıkarsınız. Bu küçük kayıplar toplandığında hem hastanın zamanı hem de hastanenin iş yükü ciddi biçimde artıyor.
TÜBİTAK 2209-A kapsamında yürüttüğüm projenin sorusu buydu:
Görüntü işleme ve Raspberry Pi kullanan bir sistem, hastaları randevularına manuel yönlendirmeden daha doğru ve daha hızlı ulaştırabilir mi?
Neden önemli?
Projeye referans aldığımız, 10 farklı uzmanlık alanında 319 hastayla yapılan bir çalışmada ortalama bekleme süresi 64,2 ± 3,45 dakika, hizmet süresi ise ortalama 9,85 dakika olarak ölçülmüş. Yani hasta, muayenede geçirdiği sürenin altı katından fazlasını beklemekle geçiriyor. Yönlendirme bu sürenin küçük ama tamamen önlenebilir bir parçası.
Fikir: yüzünü göster, yolunu bul
Hastane girişine yerleştirilen bir Raspberry Pi 4 ve kamera modülü. Hasta cihaza bakıyor, sistem onu tanıyor, veritabanında randevusunu buluyor ve ekrana şunu yazıyor: "A blok, 2. kat, doktorunuz …"
Nasıl çalışıyor?
- Yakalama: Kamera görüntüsü OpenCV ile alınıyor.
- Tespit: dlib tabanlı yüz tespitiyle görüntüdeki yüzlerin koordinatları bulunuyor.
- Kodlama:
face_recognitionkütüphanesinin CNN tabanlı modeliyle her yüz için bir yüz kodlaması hesaplanıyor. - Eşleştirme: Bu kodlama, MySQL veritabanındaki kayıtlı hastaların kodlamalarıyla karşılaştırılıyor.
- Yönlendirme: Eşleşme bulunursa randevu bilgisi çekilip hasta yönlendiriliyor; randevu yoksa bu bilgi gösteriliyor.
Yüz tespiti başarısız olursa sistem hastayı yarı yolda bırakmıyor: TC kimlik numarasıyla manuel yönlendirmeye geçiliyor. Biyometrik sistemlerde bu geri dönüş yolu, ana yol kadar önemli.
Küçük cihazda gerçek zaman
Raspberry Pi'nin işlem gücü sınırlı. Gerçek zamanlı çalışabilmek için en etkili kararlardan biri, veritabanındaki referans görüntüleri düşük çözünürlükte tutmak oldu. Kodlama hesaplaması hızlanırken tanıma kalitesinden kayda değer bir şey kaybetmedik.
Veritabanı ise Pi'nin üzerinde değil; MySQL sunucusuna uzaktan erişimle bağlanılıyor. Böylece hasta ve randevu kayıtları hastanenin mevcut sistemleriyle aynı yerde kalıyor, cihaz yalnızca bir "göz" görevi görüyor.
Öğrendiklerim
Bu proje bana donanım kısıtının iyi bir öğretmen olduğunu gösterdi. Bulutta sınırsız kaynakla çözülebilecek bir problemi bir kartın üzerine sığdırmak; neyin gerçekten gerekli olduğunu ayırt etmeyi zorunlu kılıyor. Aynı disiplin bugün Jet Kampüs'te geliştirdiğim sistemlerde de işime yarıyor.