Zephyrnet Logosu

AWS Step Functions kullanarak Amazon Rekognition Özel Etiketler modeli eğitimini ve dağıtımını otomatikleştirin

Tarih:

İle Amazon Rekognition Özel Etiketleri, Alabilirsin Amazon Rekognisyon iş gereksinimlerinize özel nesne algılama veya görüntü sınıflandırma için özel bir model eğitin. Örneğin, Rekognition Özel Etiketleri, logonuzu sosyal medya gönderilerinde bulabilir, ürünlerinizi mağaza raflarında tanımlayabilir, bir montaj hattındaki makine parçalarını sınıflandırabilir, sağlıklı ve virüslü bitkileri ayırt edebilir veya videolardaki animasyonlu karakterleri tespit edebilir.

Görüntüleri analiz etmek için bir Rekognition Özel Etiketler modeli geliştirmek, tamamlanması genellikle aylar süren, zaman, uzmanlık ve kaynak gerektiren önemli bir girişimdir. Ek olarak, modele doğru karar vermesi için yeterli veriyi sağlamak için genellikle binlerce veya on binlerce elle etiketlenmiş görüntü gerekir. Bu verilerin oluşturulması aylar alabilir ve büyük etiketleyici ekiplerinin bu verileri makine öğreniminde (ML) kullanıma hazırlamasını gerektirebilir.

Rekognition Özel Etiketleri ile ağır işleri sizin yerinize biz hallederiz. Rekognition Özel Etiketleri, halihazırda pek çok kategoride on milyonlarca görüntü üzerinde eğitilmiş olan Amazon Rekognition'ın mevcut yeteneklerini temel alır. Binlerce görüntü yerine, kullanımı kolay konsolumuz aracılığıyla kullanım durumunuza özel küçük bir dizi eğitim görüntüsü (genellikle birkaç yüz veya daha az) yüklemeniz yeterlidir. Resimleriniz zaten etiketlenmişse Amazon Rekognition yalnızca birkaç tıklamayla eğitime başlayabilir. Değilse, bunları doğrudan Amazon Rekognition etiketleme arabiriminde etiketleyebilir veya Amazon SageMaker Yer Gerçeği onları sizin için etiketlemek için. Amazon Rekognition, görüntü kümenizden eğitime başladıktan sonra, yalnızca birkaç saat içinde sizin için özel bir görüntü analizi modeli üretir. Rekognition Özel Etiketleri perde arkasında eğitim verilerini otomatik olarak yükler ve denetler, doğru makine öğrenimi algoritmalarını seçer, bir model eğitir ve model performans ölçümleri sağlar. Daha sonra Rekognition Custom Labels API aracılığıyla özel modelinizi kullanabilir ve uygulamalarınıza entegre edebilirsiniz.

Bununla birlikte, bir Rekognition Özel Etiketler modeli oluşturmak ve onu gerçek zamanlı tahminler için barındırmak birkaç adımı içerir: bir proje oluşturmak, eğitim ve doğrulama veri kümelerini oluşturmak, modeli eğitmek, modeli değerlendirmek ve ardından bir uç nokta oluşturmak. Model çıkarım için devreye alındıktan sonra, yeni veriler kullanıma sunulduğunda veya gerçek dünyadaki çıkarımdan geri bildirim alındığında modeli yeniden eğitmeniz gerekebilir. Tüm iş akışını otomatikleştirmek, manuel çalışmayı azaltmaya yardımcı olabilir.

Bu yazıda, nasıl kullanabileceğinizi gösteriyoruz. AWS Basamak İşlevleri iş akışını oluşturmak ve otomatikleştirmek için. Step Functions, geliştiricilerin dağıtılmış uygulamalar oluşturmak, süreçleri otomatikleştirmek, mikro hizmetleri düzenlemek ve veri ve makine öğrenimi ardışık düzenleri oluşturmak için AWS hizmetlerini kullanmasına yardımcı olan görsel bir iş akışı hizmetidir.

Çözüme genel bakış

Adım İşlevleri iş akışı aşağıdaki gibidir:

  1. Öncelikle bir Amazon Rekognition projesi oluşturuyoruz.
  2. Paralel olarak, mevcut veri setlerini kullanarak eğitim ve doğrulama veri setlerini oluşturuyoruz. Aşağıdaki yöntemleri kullanabiliriz:
    1. Şuradan bir klasör yapısını içe aktar: Amazon Basit Depolama Hizmeti (Amazon S3) ve etiketleri temsil eden klasörler.
    2. Yerel bir bilgisayar kullanın.
    3. Temel Gerçeği kullanın.
    4. AWS SDK ile mevcut bir veri kümesini kullanarak bir veri kümesi oluşturun.
    5. AWS SDK ile bildirim dosyası içeren bir veri kümesi oluşturun.
  3. Veri kümeleri oluşturulduktan sonra, aşağıdakileri kullanarak bir Özel Etiketler modeli eğitiyoruz: Proje Sürümü Oluştur API. Bunun tamamlanması dakikalardan saatlere kadar sürebilir.
  4. Model eğitildikten sonra, önceki adımdan elde edilen F1 puan çıktısını kullanarak modeli değerlendiririz. Kesinlik ve hatırlama arasında bir denge sağladığı için değerlendirme ölçütümüz olarak F1 puanını kullanıyoruz. Kesinliği veya geri çağırmayı model değerlendirme ölçümleriniz olarak da kullanabilirsiniz. Özel etiket değerlendirme metrikleri hakkında daha fazla bilgi için bkz. Modelinizi değerlendirmek için ölçümler.
  5. Ardından, F1 puanından memnun kalırsak, modeli tahminler için kullanmaya başlarız.

Aşağıdaki şema, Adım İşlevleri iş akışını göstermektedir.

Önkoşullar

İş akışını dağıtmadan önce, mevcut eğitim ve doğrulama veri kümelerini oluşturmamız gerekir. Aşağıdaki adımları tamamlayın:

  1. İlk olarak, bir Amazon Rekognition projesi oluşturun.
  2. Daha sonra, eğitim ve doğrulama veri kümelerini oluşturun.
  3. En sonunda, AWS SAM CLI'yi yükleyin.

İş akışını dağıtın

İş akışını dağıtmak için GitHub deposu:

git clone https://github.com/aws-samples/rekognition-customlabels-automation-with-stepfunctions.git
cd rekognition-customlabels-automation-with-stepfunctions
sam build
sam deploy --guided

Bu komutlar, depoda açıklandığı gibi bir dizi bilgi istemiyle uygulamanızı oluşturur, paketler ve AWS'ye dağıtır.

İş akışını çalıştırın

İş akışını test etmek için, Step Functions konsolunda dağıtılan iş akışına gidin ve ardından Yürütmeyi başlat.

İş akışının tamamlanması birkaç dakika ila birkaç saat sürebilir. Model değerlendirme kriterlerini geçerse Amazon Rekognition'da model için bir uç nokta oluşturulur. Model değerlendirme kriterlerini geçemezse veya eğitim başarısız olursa iş akışı başarısız olur. İş akışının durumunu Step Functions konsolunda kontrol edebilirsiniz. Daha fazla bilgi için bkz. Step Functions konsolunda yürütmeleri görüntüleme ve hata ayıklama.

Model tahminlerini gerçekleştirme

Modele karşı tahminler gerçekleştirmek için, Amazon Rekognition DetectCustomLabels API'si. Bu API'yi çağırmak için arayanın gerekli bilgilere sahip olması gerekir. AWS Kimlik ve Erişim Yönetimi (IAM) izinleri. Bu API'yi kullanarak tahmin gerçekleştirme hakkında daha fazla ayrıntı için bkz. Eğitilmiş bir modelle bir görüntüyü analiz etme.

Ancak, DetectCustomLabels API'sini herkese açık olarak kullanıma açmanız gerekirse, DetectCustomLabels API'yi Amazon API Ağ Geçidi. API Gateway, geliştiricilerin her ölçekte API oluşturmasını, yayınlamasını, bakımını yapmasını, izlemesini ve güvenliğini sağlamasını kolaylaştıran, tam olarak yönetilen bir hizmettir. API Ağ Geçidi, aşağıdaki mimari şemada gösterildiği gibi, DetectCustomLabels API'niz için ön kapı görevi görür.

API Gateway, kullanıcının çıkarım isteğini şuraya iletir: AWS Lambda. Lambda, sunucuları tedarik etmeden veya yönetmeden hemen hemen her tür uygulama veya arka uç hizmeti için kod çalıştırmanıza izin veren, sunucusuz, olay odaklı bir bilgi işlem hizmetidir. Lambda, API isteğini alır ve gerekli IAM izinleriyle Amazon Rekognition DetectCustomLabels API'sini çağırır. API Gateway'i Lambda entegrasyonuyla nasıl kuracağınız hakkında daha fazla bilgi için bkz. API Gateway'de Lambda proxy entegrasyonlarını kurun.

Aşağıda, DetectCustomLabels API'sini çağırmak için örnek bir Lambda işlev kodu verilmiştir:

client = boto3.client('rekognition', region_name="us-east-1")
REKOGNITION_PROJECT_VERSION_ARN = os.getenv( 'REKOGNITION_PROJECT_VERSION_ARN', None) def lambda_handler(event, context): image = json.dumps(event['body']) # Base64 decode the base64 encoded image body since API GW base64 encodes the image sent in and # Amazon Rekognition's detect_custom_labels API base64 encodes automatically ( since we are using the SDK) base64_decoded_image = base64.b64decode(image) min_confidence = 85 # Call DetectCustomLabels response = client.detect_custom_labels(Image={'Bytes': base64_decoded_image}, MinConfidence=min_confidence, ProjectVersionArn=REKOGNITION_PROJECT_VERSION_ARN) response_body = json.loads(json.dumps(response)) statusCode = response_body['ResponseMetadata']['HTTPStatusCode'] predictions = {} predictions['Predictions'] = response_body['CustomLabels'] return { "statusCode": statusCode, "body": json.dumps(predictions) }

Temizlemek

İş akışını silmek için AWS SAM CLI'yi kullanın:

sam delete —stack-name <your sam project name>

Rekognition Özel Etiketler modelini silmek için Amazon Rekognition konsolunu veya AWS SDK'yı kullanabilirsiniz. Daha fazla bilgi için bkz. Amazon Rekognition Özel Etiketler modelini silme.

Sonuç

Bu gönderide, bir veri kümesi oluşturmak ve ardından bir Rekognition Özel Etiketler modelini eğitmek, değerlendirmek ve kullanmak için Adım İşlevleri iş akışını adım adım inceledik. İş akışı, uygulama geliştiricilerin ve makine öğrenimi mühendislerinin herhangi bir bilgisayar görüşü kullanım durumu için özel etiket sınıflandırma adımlarını otomatikleştirmesine olanak tanır. İş akışının kodu açık kaynaklıdır.

Daha fazla sunucusuz öğrenme kaynağı için şu adresi ziyaret edin: Sunucusuz Arazi. Tanıma özel etiketleri hakkında daha fazla bilgi edinmek için şu adresi ziyaret edin: Amazon Rekognition Özel Etiketleri.


Yazar Hakkında

Veda Raman Maryland merkezli makine öğrenimi için Kıdemli Uzman Çözüm Mimarıdır. Veda, verimli, güvenli ve ölçeklenebilir makine öğrenimi uygulamaları tasarlamalarına yardımcı olmak için müşterilerle birlikte çalışır. Veda, müşterilerin Makine öğrenimi için sunucusuz teknolojilerden yararlanmasına yardımcı olmakla ilgileniyor.

spot_img

En Son İstihbarat

spot_img