AWS Rekognition ile Görüntü ve Video Analizi

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. 

  1. AWS Yönetim Konsolu’na giriş yapın. 
  1. IAM paneline gidin. 
  1. Programlı erişimle yeni bir IAM kullanıcısı oluşturun. 
  1. 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.