Ứng dụng Analytics về tỷ lệ kín phòng trong Vertex AI Vision có tính năng quản lý sự kiện

1. Mục tiêu

Tổng quan

Lớp học lập trình này sẽ tập trung vào phần tạo ứng dụng Vertex AI Vision một cách toàn diện để gửi sự kiện có tính năng quản lý sự kiện. Chúng tôi sẽ sử dụng Số liệu phân tích về tỷ lệ kín phòng của mô hình chuyên biệt được huấn luyện trước các tính năng tích hợp sẵn để tạo sự kiện dựa trên việc ghi lại những nội dung sau:

  • Đếm số lượng phương tiện và người băng qua đường tại một đường nhất định.
  • Đếm số lượng phương tiện/người trên một khu vực cố định trên đường.
  • Phát hiện ùn tắc ở bất kỳ đoạn nào trên đường.

Kiến thức bạn sẽ học được

  • Cách nhập video để phát trực tiếp
  • Cách tạo ứng dụng trong Vertex AI Vision
  • Các tính năng có trong Số liệu phân tích về tỷ lệ kín phòng và cách sử dụng
  • Cách triển khai ứng dụng
  • Cách tìm video trong kho lưu trữ của Vertex AI Vision.
  • Cách tạo một Hàm đám mây để xử lý dữ liệu của mô hình Số liệu phân tích về tỷ lệ kín phòng.
  • Cách tạo chủ đề Pub/Sub và của bạn.
  • Cách thiết lập quản lý sự kiện để gửi sự kiện thông qua Chủ đề Pub/Sub.

2. Trước khi bắt đầu

  1. Trong bảng điều khiển Google Cloud, trên trang bộ chọn dự án, hãy chọn hoặc tạo một dự án Google Cloud. Lưu ý: Nếu bạn không định giữ lại tài nguyên mà bạn tạo trong quy trình này, hãy tạo một dự án thay vì chọn một dự án hiện có. Sau khi hoàn tất những bước này, bạn có thể xoá dự án, đồng thời xoá tất cả tài nguyên được liên kết với dự án. Chuyển đến bộ chọn dự án
  2. Đảm bảo rằng bạn đã bật tính năng thanh toán cho dự án trên Google Cloud. Tìm hiểu cách kiểm tra xem tính năng thanh toán có được bật trên một dự án hay không.
  3. Bật Compute Engine và Vision AI API. Bật API

Tạo tài khoản dịch vụ:

  1. Trong bảng điều khiển Google Cloud, hãy chuyển đến trang Tạo tài khoản dịch vụ. Chuyển đến trang Tạo tài khoản dịch vụ
  2. Chọn dự án của bạn.
  3. Trong trường Tên tài khoản dịch vụ, hãy nhập tên. Bảng điều khiển Google Cloud sẽ điền vào trường Mã tài khoản dịch vụ theo tên này. Trong trường Mô tả tài khoản dịch vụ, hãy nhập nội dung mô tả. Ví dụ: Tài khoản dịch vụ để bắt đầu nhanh.
  4. Nhấp vào Tạo và tiếp tục.
  5. Để cấp quyền truy cập vào dự án của bạn, hãy cấp(các) vai trò sau cho tài khoản dịch vụ của bạn: Vision AI > Người chỉnh sửa Vision AI, Compute Engine > Quản trị viên của phiên bản điện toán (thử nghiệm), Bộ nhớ > Trình xem đối tượng lưu trữ † . Trong danh sách Chọn vai trò, hãy chọn một vai trò. Để có các vai trò khác, hãy nhấp vào Thêm vai trò khác rồi thêm từng vai trò. Lưu ý: Trường Vai trò ảnh hưởng đến những tài nguyên mà tài khoản dịch vụ của bạn có thể truy cập trong dự án. Bạn có thể thu hồi các vai trò này hoặc cấp thêm vai trò sau này. Trong môi trường phát hành công khai, không được cấp vai trò Chủ sở hữu, Người chỉnh sửa hoặc Người xem. Thay vào đó, hãy cấp một vai trò được xác định trước hoặc vai trò tuỳ chỉnh đáp ứng nhu cầu của bạn.
  6. Nhấp vào Tiếp tục.
  7. Nhấp vào Xong để hoàn tất việc tạo tài khoản dịch vụ. Đừng đóng cửa sổ trình duyệt. Bạn sẽ dùng chỉ mục này trong bước tiếp theo.

Tạo khoá tài khoản dịch vụ:

  1. Trong bảng điều khiển Google Cloud, hãy nhấp vào địa chỉ email của tài khoản dịch vụ mà bạn đã tạo.
  2. Nhấp vào Khoá.
  3. Nhấp vào Thêm khoá, rồi nhấp vào Tạo khoá mới.
  4. Nhấp vào Tạo. Một tệp khoá JSON được tải xuống máy tính của bạn.
  5. Nhấp vào Đóng.
  6. Cài đặtkhởi động Google Cloud CLI.

† Chỉ cần có vai trò nếu bạn sao chép tệp video mẫu từ một bộ chứa Cloud Storage.

3. Truyền dẫn tệp video để phát trực tuyến

Bạn có thể sử dụng vaictl để truyền dữ liệu video đến ứng dụng phân tích về tỷ lệ kín phòng.

Bắt đầu bằng cách kích hoạt Vision AI API trong Cloud Console

Đăng ký một sự kiện phát trực tiếp mới

  1. Thẻ Lượt nhấp vào luồng trên bảng điều khiển bên trái của Vertex AI Vision.
  2. Nhấp vào Đăng ký
  3. Trong tên luồng, hãy nhập "traffic-stream"
  4. Trong khu vực, hãy nhập "us-central1"
  5. Đăng ký lượt nhấp

Quá trình đăng ký sẽ mất vài phút.

Chuẩn bị một video mẫu

  1. Bạn có thể sao chép video mẫu bằng lệnh GCR cp sau. Thay thế biến sau:
  • NGUỒN: Vị trí của tệp video sẽ sử dụng. Bạn có thể sử dụng nguồn tệp video của riêng mình (ví dụ: gs://BUCKET_NAME/FILENAME.mp4) hoặc sử dụng video mẫu (gs://cloud-samples-data/vertex-ai-vision/street_vehicles_people.mp4 )(video có người và xe cộ, nguồn)
export SOURCE=gs://cloud-samples-data/vertex-ai-vision/street_vehicles_people.mp4
gsutil cp $SOURCE .

Nhập dữ liệu vào luồng của bạn

  1. Để gửi tệp video trên máy này đến luồng đầu vào của ứng dụng, hãy sử dụng lệnh sau. Bạn phải thực hiện các thay thế biến sau:
  • PROJECT_ID: Mã dự án trên Google Cloud của bạn.
  • LOCATION_ID: ID vị trí của bạn. Ví dụ: us-central1. Để biết thêm thông tin, hãy xem bài viết Vị trí đám mây.
  • LOCAL_FILE: Tên tệp của tệp video cục bộ. Ví dụ: Street_vehicles_people.mp4.
  • – cờ lặp: Không bắt buộc. Lặp lại dữ liệu tệp để mô phỏng hoạt động truyền trực tuyến.
export PROJECT_ID=<Your Google Cloud project ID>
export LOCATION_ID=us-central1
export LOCAL_FILE=street_vehicles_people.mp4
  1. Lệnh này truyền trực tuyến tệp video đến một luồng. Nếu bạn sử dụng cờ –loop, video sẽ được lặp lại trong luồng cho đến khi bạn dừng lệnh. Chúng ta sẽ chạy lệnh này dưới dạng một công việc trong nền để nó tiếp tục truyền trực tuyến.
  • ( thêm nohup ở đầu và '&' ở cuối để tạo công việc trong nền)
nohup vaictl -p $PROJECT_ID \
    -l $LOCATION_ID \
    -c application-cluster-0 \
    --service-endpoint visionai.googleapis.com \
send video-file to streams 'traffic-stream' --file-path $LOCAL_FILE --loop &

Có thể mất khoảng 100 giây từ khi bắt đầu thao tác nhập vaictl đến khi video xuất hiện trong trang tổng quan.

Sau khi có quy trình truyền dẫn sự kiện phát trực tiếp, bạn có thể xem nguồn cấp dữ liệu video trong thẻ Luồng của trang tổng quan Vertex AI Vision bằng cách chọn luồng lưu lượng truy cập.

Chuyển đến thẻ Bảng tin

Chế độ xem video trực tiếp đang được phát trực tuyến trong giao diện người dùngChế độ xem trực tiếp của video được nhập vào sự kiện phát trực tiếp trong bảng điều khiển Google Cloud. Ghi nhận quyền tác giả của video: Elizabeth Mavor trên Pixabay (đã thêm pixel).

4. Tạo một hàm đám mây

Chúng ta cần có một Hàm đám mây để phân tích dữ liệu và tạo các sự kiện mà sau đó sẽ được gửi qua kênh sự kiện.

Bạn có thể tìm hiểu thêm về Chức năng đám mây tại đây

Tạo một Hàm đám mây theo dõi mô hình của bạn

  1. Chuyển đến trang tạo giao diện người dùng Cloud Function.
  2. Đặt tên hàm mà sau này sẽ được dùng để gọi Hàm đám mây này trong phần cài đặt Quản lý sự kiện.
  3. Hãy đảm bảo rằng khu vực này phù hợp với đơn đăng ký của bạn.
  4. Điều chỉnh rồi lưu chế độ cài đặt của điều kiện kích hoạt.
  5. Nhấp vào nút tiếp theo để chuyển "mã" phần. Không tải được ví dụ về cách tạo Hàm đám mây
  6. Chỉnh sửa chức năng đám mây của bạn. Dưới đây là một ví dụ về thời gian chạy Node.js.
/**
* Responds to any HTTP request.
*
* @param {!express:Request} req HTTP request context.
* @param {!express:Response} res HTTP response context.
*/
exports.hello_http = (req, res) => {
 // Logging statement can be read with cmd `gcloud functions logs read {$functionName}`.
 // For more about logging, please see https://cloud.google.com/functions/docs/monitoring

 // The processor output will be stored in req.body.
 const messageString = constructMessage(req.body);

 // Send your message to operator output with res HTTP response context.
 res.status(200).send(messageString);
};

function constructMessage(data) {
 /**
  * Typically, your processor output should contains appPlatformMetadata & it's designed output.
  * For example here, if your output is of tyoe OccupancyCountingPredictionResult, you will need
  * to construct the return annotation as such. 
  */

 // access appPlatformMetat.
 const appPlatformMetadata = data.appPlatformMetadata;

 // access annotations.
 const annotations = data.annotations.map(annotation => {
  // This is a mock OccupancyCountingPredictionResult annotation.
  return {"annotation" : {"track_info": {"track_id": "12345"}}};
 });

 const events = [];
 for(const annotation of annotations) {
   events.push({
       "event_message": "Detection event",
       "payload" : {
         "description" : "object detected"
       },
       "event_id" : "track_id_12345"
     });
 }

  /**
   * Typically, your cloud function should return a string represent a JSON which has two fields:
   * "annotations" must follow the specification of the target model.
   * "events" should be of type "AppPlatformEventBody".
   */
 const messageJson = {
   "annotations": annotations,
   "events": events,
 };
 return JSON.stringify(messageJson);
}
  1. Nhấp vào "Triển khai" để triển khai chức năng.

5. Tạo chủ đề Pub/Sub và gói thuê bao

Chúng tôi cần cung cấp chủ đề Pub/Sub cho ứng dụng mà chủ đề đó có thể gửi sự kiện đến. Để nhận các sự kiện này, gói thuê bao Pub/Sub cần phải đăng ký cáp quang đã định cấu hình.

Bạn có thể tìm hiểu thêm về chủ đề Pub/Sub tại đây và cách đăng ký tại đây.

Tạo chủ đề Pub/Sub

Để tạo một chủ đề Pub/Sub, bạn có thể sử dụng gcloud CLI: (Bạn nên thay thế SUBSCRIPTION_ID bằng giá trị thực từ thông tin thiết lập của mình)

gcloud pubsub topics create TOPIC_ID

Ngoài ra, bạn có thể dùng giao diện người dùng Pub/Sub

Tạo gói thuê bao Pub/Sub

Để tạo gói thuê bao Pub/Sub, bạn có thể sử dụng gcloud CLI: (Bạn nên thay thế SUBSCRIPTION_ID và TOPIC_ID bằng giá trị thực từ thông tin thiết lập của mình)

gcloud pubsub subscriptions create SUBSCRIPTION_ID \
    --topic=TOPIC_ID \

Ngoài ra, bạn có thể dùng giao diện người dùng Pub/Sub

6. Tạo ứng dụng

Bước đầu tiên là tạo một ứng dụng xử lý dữ liệu của bạn. Ứng dụng có thể được coi là một quy trình tự động kết nối những thông tin sau:

  • Nhập dữ liệu: Nguồn cấp dữ liệu video được nhập vào luồng.
  • Phân tích dữ liệu: Bạn có thể thêm mô hình AI(Tầm nhìn máy tính) sau khi nhập dữ liệu.
  • Lưu dữ liệu: Hai phiên bản của nguồn cấp dữ liệu video (luồng gốc và luồng do mô hình AI xử lý) có thể được lưu trữ trong kho nội dung nghe nhìn.

Trong bảng điều khiển Google Cloud, ứng dụng được biểu thị dưới dạng biểu đồ.

Tạo một ứng dụng trống

Để có thể điền biểu đồ ứng dụng, trước tiên, bạn phải tạo một ứng dụng trống.

Tạo một ứng dụng trong bảng điều khiển Google Cloud.

  1. Truy cập vào bảng điều khiển của Google Cloud.
  2. Mở thẻ Ứng dụng trên trang tổng quan Vertex AI Vision.

Chuyển đến thẻ Ứng dụng

  1. Nhấp vào nút thêm Tạo.
  2. Nhập traffic-app làm tên ứng dụng rồi chọn khu vực của bạn.
  3. Nhấp vào Tạo.

Thêm nút thành phần ứng dụng

Sau khi tạo ứng dụng trống, bạn có thể thêm 3 nút vào biểu đồ ứng dụng:

  1. Nút truyền dẫn: Tài nguyên luồng nhập dữ liệu.
  2. Nút xử lý: Mô hình phân tích số người lưu trú hoạt động dựa trên dữ liệu được nhập.
  3. Nút bộ nhớ: Kho nội dung nghe nhìn lưu trữ các video đã xử lý và đóng vai trò là kho lưu trữ siêu dữ liệu. Kho siêu dữ liệu có chứa thông tin phân tích về dữ liệu video đã nhập và thông tin do các mô hình AI suy luận.

Thêm các nút thành phần vào ứng dụng trong bảng điều khiển.

  1. Mở thẻ Ứng dụng trên trang tổng quan Vertex AI Vision. Chuyển đến thẻ Ứng dụng
  2. Trong dòng ứng dụng quản lý lưu lượng truy cập, hãy chọn Xem biểu đồ. Thao tác này sẽ đưa bạn đến hình ảnh trực quan hoá biểu đồ của quy trình xử lý.

Thêm nút nhập dữ liệu

  1. Để thêm nút luồng đầu vào, chọn tùy chọn Luồng trong phần Trình kết nối của menu bên.
  2. Trong phần Nguồn của trình đơn Luồng mở ra, hãy chọn Thêm luồng.
  3. Trong trình đơn Thêm luồng, hãy chọn Đăng ký luồng mới rồi thêm luồng lưu lượng truy cập làm tên luồng.
  4. Để thêm luồng vào biểu đồ ứng dụng, hãy nhấp vào Thêm luồng.

Thêm nút xử lý dữ liệu

  1. Để thêm nút mô hình về số người lưu trú, hãy chọn mục số liệu phân tích về số người lưu trú trong mục Mô hình chuyên biệt của trình đơn bên.
  2. Giữ nguyên các lựa chọn mặc định là NgườiXe.
  3. Thêm dòng tại giao cắt đường. Sử dụng công cụ đường đa điểm để vẽ các đường mà bạn cần phát hiện xe ô tô hoặc người đi vào.
  4. Vẽ các khu vực đang hoạt động để đếm số người/phương tiện trong khu vực đó.
  5. Thêm chế độ cài đặt cho thời gian ở để phát hiện tình trạng tắc nghẽn nếu bạn vẽ một vùng đang hoạt động.
  • (hiện khu vực hoạt động và đường giao nhau không được hỗ trợ đồng thời. Mỗi lần chỉ sử dụng một tính năng.)

3acdb6f1e8474e07.pngs ce63449d601995e9.png

194c54d2bbcf7e8a.png.

Thêm nút lưu trữ dữ liệu

  1. Để thêm nút đích đến đầu ra (bộ nhớ lưu trữ), hãy chọn tuỳ chọn Kho nội dung nghe nhìn của Vertex AI Vision trong phần Trình kết nối của trình đơn bên.
  2. Trong trình đơn Kho phương tiện của Vertex AI Vision, hãy nhấp vào Kết nối kho hàng.
  3. Trong trình đơn Kết nối kho hàng, hãy chọn Tạo kho hàng mới. Đặt tên cho kho giao thông-kho hàng và để thời hạn TTL là 14 ngày.
  4. Nhấp vào nút Tạo để thêm kho hàng.

7. Thiết lập tính năng quản lý sự kiện

Thời lượng 02:00

Chúng ta sẽ kết nối mô hình với Hàm đám mây đã tạo trước đó để xử lý hậu kỳ, trong đó Hàm đám mây có thể tự do phân tích kết quả của mô hình và tạo các sự kiện phù hợp với nhu cầu của bạn. Sau đó, chúng ta sẽ định cấu hình kênh sự kiện bằng cách định cấu hình Chủ đề Pub/Sub đã tạo trước đó làm mục tiêu. Bạn cũng có thể đặt khoảng thời gian tối thiểu để tránh việc một sự kiện làm quá tải kênh sự kiện của bạn trong một khoảng thời gian ngắn.

Chọn Hàm đám mây để xử lý hậu kỳ

  1. Nhấp vào nút xử lý dữ liệu(số liệu phân tích về tỷ lệ kín phòng) trên biểu đồ ứng dụng để mở trình đơn bên.
  2. Chọn Hàm đám mây (được xác định theo tên hàm) trong trình đơn thả xuống Xử lý hậu kỳ.
  3. Biểu đồ ứng dụng sẽ tự động lưu các thay đổi của bạn.

Không tải được ví dụ về cách định cấu hình xử lý hậu kỳ

Định cấu hình kênh sự kiện

  1. Nhấp vào nút xử lý dữ liệu(số liệu phân tích về tỷ lệ kín phòng) trên biểu đồ ứng dụng để mở trình đơn bên.
  2. Nhấp vào "THIẾT LẬP THÔNG BÁO SỰ KIỆN" trong phần Thông báo sự kiện. Không tải được ví dụ về Thông báo sự kiện
  3. Chọn Chủ đề Pub/Sub của bạn trong trình đơn thả xuống.
  4. (không bắt buộc) đặt khoảng thời gian/tần suất tối thiểu để xuất bản sự kiện.

Không tải được ví dụ về hộp thoại Thông báo sự kiện

8. Triển khai ứng dụng để sử dụng

Sau khi bạn đã tạo ứng dụng hoàn chỉnh với tất cả các thành phần cần thiết, bước cuối cùng để sử dụng ứng dụng là triển khai ứng dụng đó.

  1. Mở thẻ Ứng dụng trên trang tổng quan Vertex AI Vision. Chuyển đến thẻ Ứng dụng
  2. Chọn Xem biểu đồ bên cạnh ứng dụng quản lý lưu lượng truy cập trong danh sách.
  3. Trên trang trình tạo biểu đồ ứng dụng, hãy nhấp vào nút Deploy (Triển khai).
  4. Trong hộp thoại xác nhận sau đây, hãy chọn Triển khai. Hoạt động triển khai có thể mất vài phút để hoàn tất. Sau khi triển khai xong, dấu kiểm màu xanh lục sẽ xuất hiện bên cạnh các nút. ee78bbf00e5db898.png

9. Xác minh sự kiện/tin nhắn trong gói thuê bao Pub/Sub

Sau khi bạn nhập dữ liệu video vào ứng dụng xử lý, Hàm đám mây sẽ tạo sự kiện sau khi mô hình phân tích về tỷ lệ kín phòng đưa ra chú thích. Sau đó, các sự kiện đó sẽ được xuất bản dưới dạng thông báo thông qua chủ đề Pub/Sub và mà gói thuê bao của bạn nhận được.

Các bước sau giả định rằng bạn có một gói thuê bao kéo.

  1. Mở danh sách Gói thuê bao Pub/Sub trên dự án của bạn và tìm gói thuê bao tương ứng. Chuyển đến trang danh sách gói thuê bao Pub/Sub
  2. Chuyển đến "Tin nhắn" .
  3. Nhấp vào "Kéo" .
  4. Xem thông báo của bạn trong bảng. lỗi khi tải hình ảnh thông báo đăng ký pub/sub

Ngoài ra, bạn có thể tìm hiểu cách nhận thông báo khi không có giao diện người dùng. Chuyển đến trang gói thuê bao

10. Xin chúc mừng

Xin chúc mừng, bạn đã hoàn thành phòng thí nghiệm!

Dọn dẹp

Để tránh làm phát sinh chi phí cho các tài nguyên được sử dụng trong hướng dẫn này trong tài khoản Google Cloud của bạn, hãy xoá dự án chứa các tài nguyên đó, hoặc giữ lại dự án và xoá từng tài nguyên riêng lẻ.

Xoá dự án

Xoá từng tài nguyên

Tài nguyên

https://cloud.google.com/vision-ai/docs/overview

https://cloud.google.com/vision-ai/docs/occupancy-count-tutorial

Phản hồi

Nhấp vào đây để cung cấp ý kiến phản hồi

Khảo sát

Bạn sẽ sử dụng hướng dẫn này như thế nào?

Chỉ có thể đọc Đọc và hoàn thành bài tập

Lớp học lập trình này có hữu ích không?

Rất hữu ích hữu ích vừa phải