AWS Rekognition, görüntü veya video verilerini analiz edebilen bir bulut tabanlı hizmettir. Bu hizmet, görüntü ve video analizi konusunda güçlü yapay zeka özellikleri sunar. Özellikle güvenlik, medya ve eğlence, e-ticaret gibi birçok farklı endüstri için önemlidir.
Bu yazımda, AWS Rekognition’ın temel işlevlerini, kullanım senaryolarını bir örnek uygulama ile nasıl kullanılacağınızı ayrıntılı olarak açıklayacağım.
Şekil 1 AWS Rekognition
AWS Kimlik Bilgilerini Ayarlama
Şekil 1’de gösterildiği gibi AWS Management Console’a giriş yapın ve AWS Rekognition hizmetine erişim sağlayın. Amazon Rekognition’a python ile erişebilmek için AWS kimlik bilgilerinizi ayarlamanız gerekmektedir. Bu işlemi bir IAM kullanıcısı oluşturarak ve bir erişim anahtarı ile gizli anahtar alarak gerçekleştirebilirsiniz.
- AWS Yönetim Konsolu’na giriş yapın.
- IAM paneline gidin.
- Programlı erişimle yeni bir IAM kullanıcısı oluşturun.
- IAM kullanıcısı için access key ve secret key bilgilerini not edin.
Gerekli Kütüphanelerin Kurulumu
Başlamak için gereken kütüphaneleri kurmanız gerekecektir:
pip install boto3 pillow
Yüz Analizi Yapma
import boto3
from PIL import Image
import io
# AWS'den aldığınız bilgileri buradaki 'your_region', 'your_access_key' ve 'your_secret_key' bilgileri ile değiştirin.
rekognition_client = boto3.client('rekognition', region_name='your_region', aws_access_key_id='your_access_key', aws_secret_access_key='your_secret_key')
image_file_path = 'path_to_your_image.jpg'
# Dosyadan resmi okuyun
with open(image_file_path, 'rb') as image_file:
image_bytes = image_file.read()
# rekognition servisine resmi gönderin
response = rekognition_client.detect_faces(
Image={
'Bytes': image_bytes
},
Attributes=['ALL'] # Resim üzerinde nelerin bulunacağını spesifik olarak belirtebilirsiniz.('ALL', 'DEFAULT', 'AGE', 'GENDER', 'EMOTION')
)
# Sonuç çıktılarının gösterilmesi
for face_detail in response.get('FaceDetails', []):
print(f"Age: {face_detail.get('AgeRange', {}).get('Low')} - {face_detail.get('AgeRange', {}).get('High')}")
print(f"Gender: {face_detail.get('Gender', {}).get('Value')}")
print(f"Emotions:")
for emotion in face_detail.get('Emotions', []):
print(f"{emotion.get('Type')}: {emotion.get('Confidence')}%")
print("----------------------")
Bu kodumuzu bir de Şekil 2’deki örnek resim üzerinde gösterelim.
Şekil 2 Örnek Resim
‘ALL’ Seçeneğini seçtiğimiz için rekognition bize resim ile ilgili aşağıdaki gibi tüm bilgileri dönmektedir.
Age: 37 - 45
Gender: Male
Emotions:
HAPPY: 99.01817321777344%
SURPRISED: 6.309852123260498%
FEAR: 5.911846160888672%
SAD: 2.1603987216949463%
CONFUSED: 0.2645522952079773%
DISGUSTED: 0.22894439101219177%
ANGRY: 0.1428459733724594%
CALM: 0.08611113578081131%
----------------------
AWS Rekognition Özelleştirilmiş Etiketler
Özelleştirilmiş etiketler kullanıcılara özel kullanım durumlarına uygun nesneleri veya sahneleri tanımlama yeteneği verir ve önceden eğitilmiş modeller yerine kendi modellerinizi oluşturabilirsiniz.
Bu bölümde, AWS’nin Şekil 3’de gösterilen örnek projelerinden resim sınıflandırma projesi olan rooms projesi üzerinden bir örnek yapacağız. Öncelikli olarak dataseti ve modelin kayıt olabilimesi için bir s3 bucket alanı oluşturuyoruz.
Şekil 3- Örnek Projeler
Etiketli olmayan resimleri etiketlemek için öncelikle etiketlemek istediğimiz resmi seçiyoruz ve draw bounding boxes seçeneğine basıyoruz. Şekil 4’de etiketleme editörümüzü görmekteyiz. Bu editörde daha önce tanımladığımız etiketleri seçerek resim üzerinde belirli bir alana çerçeve çizerek tanımlıyoruz.
Şekil4-Etiket Editörü
Son olarak train model diyerek modelimizin eğitimini başlatıyoruz. Eğitilen modelimiz s3 bucket içerisine kaydolmaktadır. Eğitim süresi 30 dakika ile 24 saat arasında değişebilmektedir. Amazon Rekognition servisinin fiyatlandırma bilgisine link üzerinden ulaşabilirsiniz.
AWS Rekognition Demoları
AWS Rekognition’ın belgelerinde ve konsolunda çeşitli demo uygulamaları ve örnek kodlar sunulmaktadır. Deneyebileceğiniz bazı demolar şunlardır:
- Rekognition ile İmge Analizi: Bu demo, bir resmi yüklemenize olanak tanır ve resim içinde algılanan etiketleri, yüzleri ve metni görüntüler.
- Yüz Karşılaştırma ve Tanıma: İki resimdeki yüzleri karşılaştırabilir ve eşleşip eşleşmediğini belirleyebilirsiniz. Bu, kimlik doğrulama ve güvenlik uygulamalarında kullanılır.
- Özel Etiketler: Kendi özel nesnelerinizi tanıtmak için Rekognition’ı eğitebilirsiniz, bu da belirli bir nesne tanıma göreviniz için faydalıdır.
Amazon Rekognition, Python uygulamalarınızda yüz analizi yapmayı kolaylaştırır. Bu rehberde, AWS kimlik bilgilerinizi ayarlamaktan gerekli kütüphaneleri kurmaya ve bir resimde yüz analizi yapmaya kadar temelleri ele aldık. Bu kodu kendi özel kullanım durumunuza uyarlayabilirsiniz.
Daha fazla gelişmiş özellikler ve seçenekler için Amazon Rekognition belgelerini inceleyebilirsiniz.