paint-brush
Sử dụng Amazon Rekognition để xây dựng tính năng phát hiện đối tượng hình ảnh cho một công ty khởi nghiệp trên mạng xã hộitừ tác giả@aidenwalton
367 lượt đọc
367 lượt đọc

Sử dụng Amazon Rekognition để xây dựng tính năng phát hiện đối tượng hình ảnh cho một công ty khởi nghiệp trên mạng xã hội

từ tác giả Aiden Walton6m2024/04/14
Read on Terminal Reader

dài quá đọc không nổi

Rekognition cho phép chúng tôi nhanh chóng xây dựng tính năng phát hiện đối tượng hình ảnh một cách chính xác, nhanh chóng và có thể mở rộng.
featured image - Sử dụng Amazon Rekognition để xây dựng tính năng phát hiện đối tượng hình ảnh cho một công ty khởi nghiệp trên mạng xã hội
Aiden Walton HackerNoon profile picture


Khả năng thu thập thông tin từ hình ảnh có tiềm năng kinh doanh sâu sắc. Và, à, nó cũng có thể là niềm vui. Trong bài viết này, tôi sẽ phác thảo cách chúng tôi sử dụng Nhận dạng Amazon để nhanh chóng xây dựng tính năng phát hiện đối tượng hình ảnh cho một công ty khởi nghiệp về truyền thông xã hội.

Phát hiện đối tượng hình ảnh là gì?

Nói một cách đơn giản, phát hiện đối tượng hình ảnh là quá trình phát hiện và trích xuất thông tin về các thực thể trong một hình ảnh nhất định. Điều này liên quan đến việc phát hiện các đồ vật, hoạt động, địa điểm, động vật, sản phẩm, v.v.


Phát hiện đối tượng hình ảnh có nhiều trường hợp sử dụng trong nhiều ngành khác nhau. Các lĩnh vực chính như ngân hàng, bảo hiểm, truyền thông xã hội, ứng dụng hẹn hò, hãng tin tức và FinTech sử dụng tính năng phát hiện đối tượng dưới hình thức này hay hình thức khác.

Trường hợp sử dụng của chúng tôi

Gần đây, chúng tôi được giao nhiệm vụ xây dựng tính năng phát hiện đối tượng hình ảnh cho một công ty khởi nghiệp về mạng xã hội. Trường hợp sử dụng rất đơn giản — người dùng có thể chọn một số ảnh yêu thích của họ và gửi chúng để xuất hiện trên một trong các trang truyền thông xã hội của công ty khởi nghiệp.


Nhóm tiếp thị truyền thông xã hội cần một cách để tìm kiếm thông qua các hình ảnh được gửi cho một số chủ đề nhất định - chẳng hạn như ảnh về đại dương, các địa danh nổi tiếng, động vật, buổi hòa nhạc, v.v.

Phân tích hình ảnh bằng Deep Learning

Phân tích hình ảnh và phân loại chúng dựa trên khung cảnh và vật thể trong ảnh không phải là một công việc đơn giản. Thị giác của con người không có gì đáng chú ý và việc xây dựng một ứng dụng có thể tái tạo khả năng phát hiện vật thể của não là vô cùng phức tạp. Có cả một ngành công nghiệp thị giác máy tính dành để làm việc đó.


Thực hiện phát hiện đối tượng từ đầu thường là một quá trình gồm nhiều bước bao gồm:

  • Thu thập hình ảnh và dán nhãn các đồ vật bên trong
  • Đào tạo các mô hình ML
  • Sử dụng các mô hình đã được huấn luyện để thực hiện phân tích
  • Điều chỉnh hiệu suất
  • Và lặp lại…


Mục đích của chúng tôi đối với tính năng này, giống như tất cả các tính năng khác trong dự án, là xây dựng nó một cách nhanh chóng và kiểm tra tính hiệu quả của nó trong môi trường sản xuất càng sớm càng tốt. Hơn nữa, chúng tôi không muốn dành nguồn lực phát triển để xây dựng giải pháp ngay từ đầu khi chúng tôi có thể tận dụng các dịch vụ đám mây hiện có.


Cue Serverless — toàn bộ phần phụ trợ của phần khởi động hoàn toàn không có máy chủ và hướng đến sự kiện. Với kiến trúc này, chúng tôi có thể có các nhóm nhà phát triển chỉ cần tập trung vào các tính năng giúp phân biệt ứng dụng mạng xã hội với các ứng dụng khác. Serverless cũng cho phép chúng tôi xây dựng các dịch vụ có khả năng mở rộng cao trong khi chỉ trả tiền cho chính xác những gì chúng tôi sử dụng — một điều quan trọng cần cân nhắc khi khởi nghiệp mở rộng quy mô.


Vì vậy, để đạt được tính năng này, chúng tôi đã sử dụng Amazon Rekognition — một dịch vụ phân tích video và hình ảnh Serverless hoàn toàn. Bằng cách sử dụng Rekognition, chúng tôi có thể phát triển quy trình làm việc phức tạp và quan trọng này chỉ trong vài giờ . Hãy đi sâu vào nó.

Nhận thức lại Amazon là gì?

Amazon Rekognition là một dịch vụ AWS Serverless sử dụng deep learning để thực hiện phân tích hình ảnh và video. Hoàn toàn không có máy chủ có nghĩa là với Rekognition, chúng ta không cần phải lo lắng về sự phức tạp của cơ sở hạ tầng cơ bản; chúng tôi chỉ trả tiền cho những gì chúng tôi sử dụng nó cung cấp cho chúng tôi phần mềm viết sẵn cho các tác vụ phân tích hình ảnh và video. Rekognition cung cấp một loạt tính năng, bao gồm phát hiện nhãn hình ảnh, nhận diện khuôn mặt, phát hiện người nổi tiếng, kiểm duyệt nội dung và phát hiện văn bản.


Phần tốt nhất? Rekognition loại bỏ bớt gánh nặng trong việc xây dựng, đào tạo và phân tích các mô hình deep learning. Phân tích hình ảnh và video nhanh chóng và đơn giản, chỉ cần thiết lập tối thiểu. Chúng tôi không cần phải lo lắng về việc xây dựng và đào tạo bộ dữ liệu của riêng mình cũng như cung cấp năng lực máy chủ để dịch vụ của chúng tôi có thể mở rộng quy mô. Tất cả những gì chúng tôi cần lo lắng là việc tích hợp.

Ngành kiến trúc

Kiến trúc rất đơn giản. Ứng dụng di động của chúng tôi tải hình ảnh từ điện thoại của người dùng lên bộ chứa S3. Sau đó, việc tải lên S3 sẽ kích hoạt hàm Lambda, hàm này gọi API Rekognition và lưu trữ kết quả trong DynamoDB để truy vấn.


Sơ đồ kiến trúc phát hiện đối tượng hình ảnh phi máy chủ bằng AWS

Mật mã

Viết code thật thú vị phải không? Chà, viết ít mã hơn thậm chí còn thú vị hơn.


Rekognition hiển thị một bộ API mà bạn gửi dữ liệu hình ảnh để thực hiện phân tích và trả về kết quả. Đối với trường hợp sử dụng của chúng tôi, chúng tôi đã sử dụng nhãn phát hiện API.


Một phiên bản đơn giản hóa của Cơ sở hạ tầng khung máy chủ của chúng tôi dưới dạng tệp Mã trông như thế này:

 //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


Mã Lambda của chúng tôi chỉ gọi API Rekognition và lưu trữ kết quả trong DynamoDB, nhưng bạn có thể sử dụng bất cứ thứ gì phù hợp với trường hợp sử dụng của mình. Chúng tôi lấy tên vùng lưu trữ S3 và tên đối tượng của hình ảnh từ sự kiện S3 rồi chuyển chúng vào hàm detectLabels của SDK công nhận .


Chúng tôi cũng chuyển vào hai tham số tùy chọn (MaxLabels và MinConfidence) để chỉ định ngưỡng mức độ tin cậy và số lượng nhãn tối đa mà chúng tôi muốn trả về. Trong ví dụ bên dưới, chúng tôi sẽ chỉ nhận được tối đa 20 nhãn trong phản hồi và tất cả các nhãn sẽ có mức độ tin cậy trên 80%.


 //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 // ... };

Ai lại không thích hình ảnh một con chó? Dưới đây là phản hồi cho một hình ảnh mà chúng tôi đã tải lên bộ chứa S3 của mình. Như bạn có thể thấy, Rekognition xác định chính xác rằng đó là hình ảnh một con chó trên con đường trải sỏi ngoài trời (và cho chúng ta biết con chó ở đâu trong hình ảnh!).

Phản hồi Rekognition (trái), hình ảnh được tải lên (phải).

suy nghĩ cuối cùng

Vậy tôi nghĩ gì sau khi sử dụng Rekognition trong sản xuất được vài tháng? Dưới đây là danh sách các điểm chính:

  • Hoàn toàn không có máy chủ - Tránh gánh nặng không khác biệt trong việc quản lý độ phức tạp của cơ sở hạ tầng cơ bản và sử dụng phần mềm dựng sẵn cũng như các mô hình được đào tạo trước.


  • Hiệu suất — Rekognition diễn ra nhanh chóng, trong hầu hết các trường hợp, khoảng 600 mili giây.


  • Dễ sử dụng - API đơn giản và dễ tích hợp.


  • Cải tiến liên tục — AWS liên tục duy trì và cải tiến Rekognition, nghĩa là nó sẽ ngày càng trở nên tốt hơn theo thời gian.


  • Độ chính xác — Rekognition tận dụng được lượng khách hàng rộng lớn của Amazon; dẫn đến phát hiện nhãn hình ảnh có độ chính xác cao.


  • Có cấp độ miễn phí hào phóng, vì vậy bạn có thể dùng thử trước khi quyết định.


  • Chi phí - Chúng tôi chỉ trả tiền cho những gì chúng tôi sử dụng. Rekognition cho phép chúng tôi mở rộng quy mô dựa trên nhu cầu kinh doanh.

Bản tóm tắt

TLDR: Rekognition cho phép chúng tôi nhanh chóng xây dựng tính năng phát hiện đối tượng hình ảnh một cách chính xác, nhanh chóng và có thể mở rộng.