← Tüm projeler

Kameradan Temassız Nabız Ölçümü (rPPG)

Lisans döneminde iki kişilik ekip olarak, kameraya bakan bir kişinin nabzını sensör takmadan ölçen bir sistem kurduk. Derideki kan hacmi değişiminin kameraya düşen izini CHROM ve POS ile ayırıp atım sayısına çevirdik.

Dönem
Lisans, ekip projesi
Alan
Akademik, Bilgisayarlı Görü, Yapay Zekâ / ML
Rol
İki kişilik ekip projesi; depodaki Kroma uygulamasını ben yazdım
Teknoloji
JavaScript, MediaPipe, rPPG, CHROM, POS, Sinyal işleme, Bilgisayarlı görü
Kod
github.com/l4NGEL/rppg

Fikir

Nabız normalde parmağa takılan bir oksimetre ya da göğse yapıştırılan EKG elektrotlarıyla ölçülür. Uzaktan fotopletismografi (rPPG) aynı bilgiyi temas olmadan, sıradan bir kameradan almayı hedefler. Kalp her attığında deri altındaki kılcal damarlardaki kan hacmi artar, kan ışığı çevre dokudan daha fazla soğurduğu için derinin rengi çok az değişir. Bu değişim gözle görülemeyecek kadar küçüktür ama kameranın piksel değerlerinde ölçülebilir bir dalgalanma olarak görünür.

Bu tür bir ölçüm hasta ve yenidoğan takibi, sürücü izleme, egzersiz sırasında takip ve tele-tıp gibi alanlarda kullanılabiliyor.

Yöntem

Kameradan alınan her karede yüz bulunup nabız sinyalinin en güçlü olduğu deri bölgeleri (alın ve yanaklar) seçiliyor. Bu bölgelerin kırmızı, yeşil ve mavi kanal ortalamaları zamana göre bir sinyale dönüşüyor. Ham sinyalde nabzın yanında ışık değişimleri ve baş hareketleri de var; asıl iş, bu karışımdan nabız bileşenini ayırmak.

Bunun için iki yerleşik yöntem kullandık:

Yöntem Nasıl ayırıyor
CHROM (krominans tabanlı) Renk kanallarını parlaklık ve yansıma değişimlerinin etkisini azaltan iki krominans sinyaline dönüştürüp, ağırlıklarını her pencerede sinyallerin varyansına göre ayarlayarak birleştiriyor
POS (plane-orthogonal-to-skin) Normalize edilmiş renk sinyalini, derinin kendi renk yönüne dik bir düzleme izdüşürüyor; ışık şiddetindeki değişim bu düzlemde büyük ölçüde kayboluyor, nabız kaynaklı değişim kalıyor

Elde edilen sinyal, insan nabzının bulunabileceği frekans aralığında filtrelenip frekans alanında en baskın tepe bulunarak dakikadaki atım sayısına çevriliyor.

Kroma

Depodaki Kroma, bu yöntemi tarayıcıda çalıştıran uygulama. Web kamerasındaki yüzün alın ve yanaklarından her karede bir R, G, B üçlüsü çıkarıyor; CHROM ve POS bu iz üzerinde yan yana koşuyor. İki yöntemin sayısı birbirinden ayrışırsa ekran bunu söylüyor. İlk tahmin yaklaşık 6 saniyede geliyor, kararlı değer pencere dolunca oturuyor. Karanlıkta, parlamada ya da tek taraftan gelen ışıkta ölçüm duruyor ve uyarı çıkıyor.

Kamera yalnız localhost üzerinde izin verdiği için sayfa yerel bir sunucuyla açılıyor. Yüz MediaPipe Face Landmarker ile bulunuyor; model ve yazı tipleri CDN’den iniyor, kamera görüntüsü hiçbir yere gönderilmiyor. Tıbbi cihaz değil; çıkan sayı yaklaşık bir nabız tahmini.

Araştırma önerisi

Bu projenin devamı olarak, 2024 güz döneminde TÜBİTAK 2209-A programına dört kişilik ekip olarak bir araştırma önerisi hazırladık: farklı kapatıcılık seviyelerindeki fondötenin kameradan nabız ölçümünü ne kadar bozduğunu incelemek. Makyaj, deriye giren ve geri yansıyan ışığı ince bir filtre gibi azalttığı için rPPG’nin en az çalışılmış hata kaynaklarından biri. Tasarımda makyajsız, az, orta ve çok kapatıcı dört koşul, nabız oksimetresi referans ölçüm olarak ve Bland-Altman, MAE, RMSE ve korelasyonla doğrulama vardı. Öneri destek almadığı için bu deney yapılamadı.

Danışmanımız Prof. Dr. Kemal Fidanboylu’ydu.