AWS Rekognition SearchFacesByImage: 'No Faces' Hatası Nasıl Çözülür
AWS Rekognition'ın SearchFacesByImage fonksiyonu, yüz tanıma uygulamalarında sık karşılaşılan bir sorunla başa çıkmanız gerekir: "There are no faces in the image" hatası.
Sorunun kökü şu: SearchFacesByImage, gönderdiğin görüntüdeki en büyük yüzü algılamaya çalışır. Eğer hiç yüz bulamazsa, InvalidParameterException fırlatır. Test ortamında çalışan bir selfie-arama özelliği, gerçek kullanıcılar devreye girince patlar. Neden? Çünkü insanlar oda karşısından çekilen fotoğraflar, sıkı kırpılmış selfiler, aşırı baş açısında veya kötü aydınlatmada çekilen resimler yüklerler.
Hatanın sebebini bulmak için önce DetectFaces çağrısı yap. Aynı görüntü baytlarında bu fonksiyonu çalıştırırsan, yüzün algılanıp algılanmadığını ve neden başarısız olduğunu görebilirsin. Yüz çok küçükse, kırpma çok sıkıysa, baş açısı uçsa veya fotoğraf bulanıksa DetectFaces da yakalayacak.
Pratik çözümler: Grup fotoğraflarında yüzü çevreleyen bir marjınla kırp. Kullanıcıya "başka bir fotoğraf dene" mesajı göster; 500 hatası yerine bu, çok daha iyi bir deneyim. Kodu şu şekilde yazabilirsin:
1try {2searchFacesByImage(imageBytesFromUser);3} catch (InvalidParameterException e) {4if (e.getMessage().contains("no faces")) {5return "Fotoğrafta net bir yüz görünmüyor. Başka bir dene."6}7}Bu hata, her selfie-arama özelliğinin ilk hafta gerçek trafikle karşılaştığı bir sorun. Test ettiğin fotoğraflar iyi kalite, ama gerçek dünyada insanlar kötü açıdan, kötü ışıkta, çok uzaktan çekiyor. Hata yönetimi ve DetectFaces ön kontrolü eklemen, uygulamanı çok daha güvenilir hale getirecek.
Bu konuda daha detaylı bilgi için Ashish Sikka'nın yazısını okuyabilirsin.
0 yorum