Thử nghiệm ứng dụng tìm người

People Finder được chia thành 2 phần: trang Master - nơi bạn có thể xóa bộ sưu tập các khuôn mặt được biết, thêm các khuôn mặt mưới và cũng có thể xem danh sách các khuôn mặt đã biết và lần cuối cùng khuôn mặt đó được nhận diện; trang thứ 2 là trang Detector mô phỏng một camera từ xa có thể được đặt ở một vị trí cụ thể xung quanh ngôi nhà.

  1. Từ trang chủ website, chọn People Finder - Master

Recognise Master

  1. Nếu bạn đã thêm các khuôn mặt vào bộ sưu tập và bạn muốn giữ chúng, đừng chọn Clear Rekognition Collection. Nếu bạn muốn xóa tất cả các khuôn mặt đã biết, hãy nhấp vào Clear Rekognition Collection
  2. Bạn có thể thêm các khuôn mặt mới vào bộ sưu tập bằng cách sử dụng bảng điều khiển Add face to Rekognition Collection. Nếu bạn đã có các khuôn mặt trong bộ sưu tập và không cần thêm các khuôn mặt khác, bạn có thể bỏ qua phần đó.
  3. Trong phần Faces detected, nhấp vào Start polling DynamoDB table để bắt đầu bộ đếm thời gian sẽ truy vấn DynamoDB để biết kết quả và hiển thị chúng trong danh sách.
  4. Sau một vài giây, danh sách sẽ bắt đầu tự động làm mới. Bạn sẽ thấy tên, tuổi, vị trí và cảm xúc của từng khuôn mặt và thời điểm chúng được phát hiện lần cuối. Vị trí, tình cảm và thời gian được phát hiện sẽ không hợp lệ tại thời điểm này, vì bạn chưa chạy ứng dụng dò tìm.

Recognise Master

Triển khai hàm Lambda cho bộ xử lý dò tìm

  1. Tải mã nguồn tập tin DetectorImageProcessor-Skeleton.zip và giải nén.
  1. Mở project trong Eclipse IDE bằng cách sử dụng File | Open projects from filesystem…
  2. Việc triển khai vẫn chưa hoàn tất. Bạn có một danh sách những việc cần làm như sau:
//************************************************************************************
// TODO:
//
// 1. Phát hiện khuôn mặt trong hình ảnh. Giả sử chỉ có một khuôn mặt được cung cấp
//    Bạn có thể sử dụng hàm getImageUtil() đã được cung cấp để tạo một Image object phù hợp cho Rekognition
//
// 2. Với khuôn mặt đầu tiên trong danh sách kết quả, lấy bộ sưu tập cảm xúc.  Lặp lại bộ sưu tập và tạo một chuỗi chứa tất cả 
//    các cảm xúc hiện có.
//    Nếu không có cảm xúc, hãy đặt một chuỗi cảm xúc là 'Indeterminate'
//    Chỉ lấy cảm xúc có confidence factor > 30
//
// 3. Tìm Rekognition collection để tìm các kết quả phù hợp với khuôn mặt, sử dụng searchFacesByImage().
//    Sử dụng FACE_MATCH_THRESHOLD đã được cung cấp
//
// 4. Nếu bạn tìm thấy một kết quả phù hợp, hãy sử dụng faceId đó để cập nhật DynamoDB table. If you find a match, use 
//    the faceId of the match to update the DynamoDB table.
//    Vì thứ tự xử lý hình ảnh trong S3 là không xác định, bạn không nên cập nhật DynamoDB table nếu hình ảnh cũ hơn bản cập // 
//    nhật cuối cùng lên DynamoDB. 
//    Bạn có thể sử dụng biến DiscoveryDate được trích xuất từ object metadata ở trên cho mục đích đó
//
//************************************************************************************

Bạn có thể sử dụng giải pháp đã được cập nhật đầy đủ tại tập tin sau:

Triển khai hàm Lambda và kích hoạt nó khi tải lên S3

  1. Truy cập AWS Lambda, chọn Create Function

Lambda Function

  1. Chọn Author from scratch, nhập tên Function là DetectorImageProcessor, chọn Runtime Java 8
  2. Chọn Create function

Lambda Function

  1. Truy cập lambda function vừa tạo, tại mục Code, chọn Upload from|.zip file

Lambda Function

  1. Chọn tập tin DetectorImageProcessor-Full.zip và chọn Save

Lambda Function

  1. Tại mục Function overview, chọn Add trigger

Lambda Function

  1. Chọn S3 và chọn bucket facerecognitionS3bucket

Lambda Function

Chạy trang detetor để phát hiện khuôn mặt

  1. Truy cập trang web đã tạo ở các bước trước, chọn People Finder - Detector
  2. Chọn một vị trí từ danh sách - vị trí này là tùy ý, nhưng cho phép bạn chạy nhiều detector được chỉ định cho các vị trí khác nhau để bạn có thể theo dõi nơi ở của nhữung người trong bản demo.
  3. Hãy thêm CORS policy sau vào bucket facerecognitions3bucket.
[
    {
        "AllowedHeaders": [
            "*"
        ],
        "AllowedMethods": [
            "PUT",
            "POST",
            "DELETE"
        ],
        "AllowedOrigins": [
            "https://m7www.s3.<YOUR-REGION>.amazonaws.com"
        ],
        "ExposeHeaders": [
            "x-amz-server-side-encryption",
            "x-amz-request-id",
            "x-amz-id-2"
        ],
        "MaxAgeSeconds": 3000
    }
]

CORS policy

  1. Nhấp vào Start webcam. Trang sẽ bắt đầu gửi hình ảnh đến S3 bucket, điều này sẽ kích hoạt chức năng Lambda để xử lý hình ảnh bằng cách sử dụng Rekognition và cập nhật bảng DynamoDB.

Lambda Function

S3 bucket