paint-brush
Bir Sosyal Medya Kuruluşu için Görüntü Nesnesi Algılama Özelliği Oluşturmak İçin Amazon Rekognition'ı Kullanmaile@aidenwalton
361 okumalar
361 okumalar

Bir Sosyal Medya Kuruluşu için Görüntü Nesnesi Algılama Özelliği Oluşturmak İçin Amazon Rekognition'ı Kullanma

ile Aiden Walton6m2024/04/14
Read on Terminal Reader

Çok uzun; Okumak

Tanıma, doğru, hızlı ve ölçeklenebilir bir görüntü nesnesi algılama özelliğini hızla oluşturmamızı sağladı.
featured image - Bir Sosyal Medya Kuruluşu için Görüntü Nesnesi Algılama Özelliği Oluşturmak İçin Amazon Rekognition'ı Kullanma
Aiden Walton HackerNoon profile picture


Görüntülerden bilgi toplama yeteneği derin bir iş potansiyeline sahiptir. Ve aynı zamanda eğlenceli de olabilir. Bu yazıda, nasıl kullandığımızı ana hatlarıyla anlatacağım. Amazon Tanınması bir sosyal medya girişimi için hızla bir görüntü nesnesi algılama özelliği oluşturmak.

Görüntü Nesnesi Algılama Nedir?

Basitçe söylemek gerekirse, görüntü nesnesi tespiti, belirli bir görüntüdeki varlıklar hakkındaki bilgilerin tespit edilmesi ve çıkarılması işlemidir. Bu, nesnelerin, etkinliklerin, yerlerin, hayvanların, ürünlerin vb. tespit edilmesini içerir.


Görüntü nesnesi algılamanın çeşitli endüstrilerde çok çeşitli kullanım durumları vardır. Bankalar, sigorta, sosyal medya, flört uygulamaları, haber ajansları ve FinTech gibi büyük sektörler, nesne algılamayı şu veya bu şekilde kullanıyor.

Kullanım Durumumuz

Yakın zamanda bir sosyal medya girişimi için görüntü nesnesi algılama özelliği oluşturma görevi aldık. Kullanım durumu basitti; kullanıcılar en sevdikleri fotoğraflardan bazılarını seçebilmeli ve bunları girişimin sosyal medya sayfalarından birinde öne çıkarılmak üzere gönderebilmelidir.


Sosyal medya pazarlama ekibinin, okyanus fotoğrafları, popüler yerler, hayvanlar, müzik konserleri vb. gibi belirli temalar için gönderilen görseller arasında arama yapmanın bir yoluna ihtiyacı vardı.

Derin Öğrenmeyi Kullanarak Görüntü Analizi

Görüntüleri analiz etmek ve bunları görüntüdeki manzaraya ve nesnelere göre sınıflandırmak basit bir iş değildir. İnsan görüşü olağanüstüdür ve beynin nesneleri algılama yeteneğini kopyalayabilen bir uygulama oluşturmak son derece karmaşıktır. Tam da bunu yapmaya adanmış bir bilgisayarlı görüntü endüstrisi var.


Nesne algılamanın sıfırdan gerçekleştirilmesi genellikle aşağıdakileri içeren çok adımlı bir işlemdir:

  • Görüntülerin toplanması ve içindeki nesnelerin etiketlenmesi
  • ML modellerini eğitme
  • Analizi gerçekleştirmek için eğitilmiş modelleri kullanma
  • Performans ayarı
  • Ve tekrar et…


Bu özelliğin amacı, projedeki diğer tüm özellikler gibi, onu hızlı bir şekilde oluşturmak ve üretim ortamında etkinliğini mümkün olan en kısa sürede test etmekti. Ayrıca, mevcut bulut hizmetlerinden yararlanabilecekken, geliştirme kaynaklarını sıfırdan bir çözüm oluşturmaya adamak istemedik.


Cue Sunucusuz — startup'ın tüm arka ucu tamamen Sunucusuzdur ve olay odaklıdır. Bu mimariyle, yalnızca sosyal medya uygulamasını diğerlerinden farklı kılan özelliklere odaklanması gereken geliştirici ekiplerine sahip olabiliyoruz. Sunucusuz aynı zamanda yüksek düzeyde ölçeklenebilir hizmetler oluşturmamıza ve aynı zamanda yalnızca tam olarak kullandığımız kadar ödeme yapmamıza olanak tanır; bu, ölçeklendirme girişimi için önemli bir husustur.


Bu özelliği elde etmek için tamamen Sunucusuz bir görüntü ve video analiz hizmeti olan Amazon Rekognition'ı kullandık. Rekognition'ı kullanarak bu karmaşık ve kritik iş akışını birkaç saat içinde geliştirmeyi başardık. Hadi derinlemesine inceleyelim.

Amazon Tanıma Nedir?

Amazon Rekognition, görüntü ve video analizi gerçekleştirmek için derin öğrenmeyi kullanan bir AWS Sunucusuz teklifidir. Tamamen Sunucusuz olmak, Rekognition ile temeldeki altyapının karmaşıklığı konusunda endişelenmemize gerek olmadığı anlamına gelir; yalnızca kullandığımız kadar ödeme yaparız ve bu bize görüntü ve video analiz görevleri için önceden yazılmış bir yazılım sağlar. Rekognition, resim etiketi algılama, yüz algılama, ünlü algılama, içerik denetimi ve metin algılama dahil olmak üzere bir dizi özellik sunar.


En iyi kısım? Tanıma, derin öğrenme modellerini oluşturma, eğitme ve analiz etmenin ağır yükünü ortadan kaldırır. Minimum kurulum gereksinimiyle görüntü ve video analizi hızlı ve basittir. Hizmetimizin ölçeklenmesi için kendi veri kümelerimizi oluşturma ve eğitme ve sunucu kapasitesi sağlama konusunda endişelenmemize gerek yoktu. Endişelenmemiz gereken tek şey entegrasyondu.

Mimari

Mimari basittir. Mobil uygulamamız, kullanıcıların telefonlarındaki görüntüleri bir S3 klasörüne yükler. Daha sonra S3'e yükleme, Rekognition API'yi çağıran ve sonuçları sorgulama için DynamoDB'de saklayan bir Lambda işlevini tetikler.


AWS kullanarak sunucusuz görüntü nesnesi algılama mimarisi diyagramı

Kod

Kod yazmak eğlencelidir, değil mi? Daha az kod yazmak daha da eğlenceli.


Rekognition, görüntü verilerini gönderdiğiniz, analizi gerçekleştiren ve sonuçları döndüren bir dizi API'yi ortaya çıkarır. Kullanım durumumuz için şunu kullandık: etiketleri tespit et API'dir.


Sunucusuz çerçeve Altyapımızın Kod olarak basitleştirilmiş bir sürümü şu şekilde görünür:

 //serverless.yamlfunctions: imageLabelDetection: handler: image-label-detection.handler events: - s3: bucket: my-image-bucket event: s3:ObjectCreated:* existing: true iamRoleStatements: - Effect: Allow Action: rekognition:DetectLabels Resource: "*" - Effect: Allow Action: s3:GetObject Resource: arn:aws:s3:::my-image-bucket


Lambda kodumuz yalnızca Rekognition API'yi çağırır ve sonuçları DynamoDB'de saklar; ancak kullanım durumunuz için anlamlı olanı kullanabilirsiniz. S3 kova adını ve görüntünün nesne adını S3 olayından alıyoruz ve bunları algılama etiketi işlevine aktarıyoruz. Tanıma SDK'sı .


Ayrıca güven düzeyi eşiğini ve döndürülmesini istediğimiz maksimum etiket sayısını belirtmek için iki isteğe bağlı parametreyi (MaxLabels ve MinConfidence) aktarıyoruz. Aşağıdaki örnekte yanıtta yalnızca 20'ye kadar etiket alacağız ve tüm etiketlerin güven düzeyi %80'in üzerinde olacaktır.


 //image-label-detecion.jsconst AWS = require("aws-sdk");const rekognition = new AWS.Rekognition();exports.handler = async (event) => { const imageDetails = event.Records[0].s3; const bucketName = imageDetails.bucket.name; const objectKey = imageDetails.object.key; const rekognitionResp = await rekognition .detectLabels({ Image: { S3Object: { Bucket: bucketName, Name: objectKey, }, }, MaxLabels: 20, MinConfidence: 80, }) .promise(); // Send to data store, eg DynamoDB // ... };

Köpek resmini kim sevmez? Aşağıda S3 klasörümüze yüklediğimiz bir görselin yanıtı bulunmaktadır. Gördüğünüz gibi Rekognition, bunun açık havada, çakıllı bir yolda yürüyen bir köpeğin resmi olduğunu doğru bir şekilde belirler (ve bize köpeğin resimde nerede olduğunu söyler!).

Tanıma yanıtı (solda), yüklenen resim (sağda).

Son düşünceler

Peki Rekognition'ı üretimde birkaç ay kullandıktan sonra düşüncelerim neler? İşte önemli çıkarımların bir listesi:

  • Tamamen Sunucusuz — Temel altyapı karmaşıklığını yönetmenin getirdiği farklı olmayan ağır yükten kaçının ve önceden oluşturulmuş yazılımları ve önceden eğitilmiş modelleri kullanın.


  • Performans — Tanıma çoğu durumda hızlıdır; yaklaşık 600 ms.


  • Kullanımı kolay — API basit ve entegrasyonu kolaydır.


  • Sürekli iyileştirme — AWS, Rekognition'ı sürekli olarak sürdürüyor ve yineliyor, bu da zamanla giderek daha iyi hale geleceği anlamına geliyor.


  • Doğruluk — Tanıma, Amazon'un geniş müşteri kitlesinden yararlanır; Son derece doğru görüntü etiketi algılamasıyla sonuçlanır.


  • Cömert bir ücretsiz katmana sahiptir, böylece karar vermeden önce deneyebilirsiniz.


  • Maliyet — Yalnızca kullandığımız kadar öderiz. Tanıma, iş ihtiyaçlarına göre ölçeklendirmemizi ve azaltmamızı sağlar.

Özet

TLDR: Rekognition, doğru, hızlı ve ölçeklenebilir bir görüntü nesnesi algılama özelliğini hızla oluşturmamızı sağladı.