Amazon Rekognition - Phân tích hình ảnh và video với machine learning (Part 2 - Sử dụng)
Nếu các bạn chưa đọc bài trước của mình thì mình xin giới thiệu lại, bài trước mình Giới thiệu về Amazon Rekognition. HAY CỰC NUÔN, các bạn vào link dưới đây nhé ↓

Bài này mình sẽ nói từng bước cài đặt và sử dụng Amazon Rekognition (dùng NodeJS) nhé. Nội dung sau đây, mình sẽ tập trung vào việc Labels Detection trong ảnh hoặc video.
Bước 1: Tạo folder của project và chạy lệnh khởi tạo
mkdir rekognition_demo
cd rekognition_demo
npm init
Bước 2: Cài đặt aws-sdk package
npm install aws-sdk
Bước 3: Import package và sử dụng
// AWS rekognition
const AWS = require('aws-sdk');
var rekognition = new AWS.Rekognition({
region: 'us-east-1',
apiVersion: '2017-11-27'
});
// End AWS rekognition
Bước 4: Viết hàm xử lý
Trong phần xử lý có 2 loại: xử lý ảnh, và xử lý video.
1. Xử lý ảnh từ URL
// Using node-fetch package
const fetch = require('node-fetch');
// Detect labels from image
const processImageFromURL = (imageUrl) => {
return new Promise(async (resolve, reject) => {
const response = await fetch(imageUrl, {});
if (!response.ok) {
reject(`Could not fetch image, (status ${response.status}`);
}
const file = await response.arrayBuffer();
var params = {
Image: {
Bytes: file
},
MinConfidence": 80
};
rekognition.detectLabels(params, function (err, data) {
if (err) reject(err); // an error occurred
else {
resolve(data);
}
});
});
}
2. Xử lý video, tương tự logic xử lý ảnh chỉ khác parameter truyền vào rekognition như sau:
var params = {
Video: {
S3Object: {
Bucket: "bucket",
Name: "video.mp4"
}
},
MinConfidence": 80
};
Lưu ý: Có bạn nào đặt câu hỏi tại sao phần 1, trong biến params mình lại truyền vào là bytes, còn phần 2 mình lại truyền S3Object không? Lý do là nếu bạn chưa có file ở trên S3 thì bạn phải upload file lên Rekognition để nó phân tích, còn nếu bạn có rồi thì nó sẽ reference đến S3Object đó luôn. Đương nhiên, trường hợp 2 xử lý nhanh hơn, vì file đó đã tồn tại trên S3 rồi Amazon Rekognition chỉ cần refer đến object đó để phân tích thôi.
Bước 5: Sử dụng kết quả sau khi phân tích
Sau khi phân tích Amazon Rekognition sẽ trả về một chuỗi JSON như sau:
{
{
"Labels": [
{
"Name": "Vehicle",
"Confidence": 99.15271759033203,
"Instances": [],
"Parents": [
{
"Name": "Transportation"
}
]
},
{
"Name": "Transportation",
"Confidence": 99.15271759033203,
"Instances": [],
"Parents": []
},
{
"Name": "Person",
"Confidence": 98.9914321899414,
"Instances": [
{
"BoundingBox": {
"Width": 0.19360728561878204,
"Height": 0.2742200493812561,
"Left": 0.43734854459762573,
"Top": 0.35072067379951477
},
"Confidence": 98.9914321899414
},
{
"BoundingBox": {
"Width": 0.03801717236638069,
"Height": 0.06597328186035156,
"Left": 0.9155802130699158,
"Top": 0.5010883808135986
},
"Confidence": 85.02790832519531
}
],
"Parents": []
}
],
"LabelModelVersion": "2.0"
}
}
Như các bạn thấy, kết quả sẽ được đánh giá Confidence tức là độ tự tin đối với từ khoá khi được phân tích bởi Rekognition.
Do vậy, tuỳ mục đích sử dụng mà chúng ta lọc kết quả này cho hợp lý.
Tổng kết
Sau khi thực hành xong demo này, chắc chắn bạn vẫn chưa thể biết đâu là ruồi đực ruồi cái. Vậy nên hãy tìm hiểu thêm hoặc đón đọc phần tiếp theo nhé.
Hẹn gặp lại!!!