Bộ phát hiện và bộ đếm con người bằng Python với sự trợ giúp của Khoa học dữ liệu

Tram Ho

Giới thiệu

Đếm người trong một khu vực nhất định là một nhiệm vụ quan trọng trong nhiều lĩnh vực, chẳng hạn như an ninh, bán lẻ và giao thông vận tải. Tuy nhiên, đếm người theo cách thủ công là một công việc tẻ nhạt và tốn thời gian. Do đó, việc phát triển một hệ thống đếm người tự động có thể mang lại lợi ích to lớn cho các ngành này. Trong bài viết này, chúng ta sẽ khám phá cách xây dựng bộ phát hiện và truy cập con người bằng Python với sự trợ giúp của khoa học dữ liệu.

Phát hiện con người

Bước đầu tiên trong việc xây dựng bộ đếm con người là phát hiện sự hiện diện của con người trong luồng hình ảnh hoặc video. Điều này có thể đạt được bằng cách sử dụng các kỹ thuật phát hiện đối tượng. Một kỹ thuật phát hiện đối tượng phổ biến là sử dụng mạng thần kinh tích chập (CNN). CNN là các mô hình học sâu đã được chứng minh là có hiệu quả trong các nhiệm vụ phát hiện đối tượng. Có một số mô hình CNN được đào tạo trước có thể được sử dụng để phát hiện con người, chẳng hạn như YOLO (Bạn chỉ nhìn một lần), R-CNN nhanh hơn (Mạng thần kinh chuyển đổi dựa trên khu vực) và SSD (Phát hiện một lần chụp). Những mô hình này có thể phát hiện con người trong thời gian thực với độ chính xác cao. Khi mô hình phát hiện con người được chọn, chúng ta cần triển khai nó bằng Python. Ngôn ngữ lập trình Python có một số thư viện có thể được sử dụng để phát hiện đối tượng, chẳng hạn như OpenCV, TensorFlow và PyTorch. Trong bài viết này, chúng tôi sẽ sử dụng API phát hiện đối tượng TensorFlow, đây là một khung mạnh mẽ và dễ sử dụng để xây dựng các mô hình phát hiện đối tượng. Để sử dụng API phát hiện đối tượng TensorFlow, trước tiên chúng ta cần cài đặt các phụ thuộc bắt buộc, bao gồm TensorFlow, protobuf và gối. Sau khi các phần phụ thuộc được cài đặt, chúng ta có thể tải xuống mô hình được đào tạo trước và các tệp cấu hình từ Sở thú mô hình phát hiện đối tượng TensorFlow. Bước tiếp theo là viết tập lệnh Python sử dụng mô hình được đào tạo trước để phát hiện con người trong luồng hình ảnh hoặc video. Tập lệnh sẽ tải mô hình được đào tạo trước và các tệp cấu hình, sau đó sử dụng chúng để thực hiện phát hiện đối tượng trên khung hình ảnh hoặc video đầu vào. Đầu ra của mô hình phát hiện đối tượng phải là một danh sách các hộp giới hạn chứa những người được phát hiện.

Đếm người

Sau khi chúng tôi phát hiện có người trong luồng hình ảnh hoặc video, bước tiếp theo là đếm họ. Có một số cách để đếm người, nhưng một trong những phương pháp đơn giản và hiệu quả nhất là sử dụng theo dõi trung tâm. Theo dõi trọng tâm là một kỹ thuật theo dõi các đối tượng theo trọng tâm của chúng. Trọng tâm là tâm khối lượng của một vật thể, có thể được tính bằng cách lấy giá trị trung bình của các tọa độ x và y của nó. Để sử dụng theo dõi trọng tâm, trước tiên chúng ta cần trích xuất các hộp giới hạn chứa những người được phát hiện từ đầu ra của mô hình phát hiện đối tượng. Sau đó, chúng ta có thể tính toán trọng tâm của mỗi hộp giới hạn và sử dụng các trọng tâm này để theo dõi chuyển động của mỗi người. Đối với mỗi khung hình của luồng video, chúng tôi có thể so sánh trọng tâm của những người được phát hiện với trọng tâm của những người được phát hiện trước đó. Nếu khoảng cách giữa một trọng tâm hiện tại và một trọng tâm trước đó nằm dưới một ngưỡng nhất định, thì chúng ta có thể giả định rằng trọng tâm hiện tại tương ứng với cùng một người với trọng tâm trước đó. Nếu khoảng cách vượt quá ngưỡng, chúng ta có thể cho rằng một người mới đã bước vào hiện trường. Để triển khai tính năng theo dõi trọng tâm trong Python, chúng ta có thể sử dụng thư viện OpenCV, thư viện này cung cấp một số chức năng để làm việc với các đường viền và trọng tâm. Chúng ta có thể viết một tập lệnh Python để đọc luồng video đầu vào, thực hiện phát hiện con người bằng cách sử dụng API Phát hiện đối tượng TensorFlow, sau đó sử dụng tính năng theo dõi trung tâm để đếm số lượng người trong mỗi khung hình của video.

Kết luận

Trong bài viết này, chúng ta đã khám phá cách xây dựng bộ phát hiện và truy cập con người bằng Python với sự trợ giúp của khoa học dữ liệu. Chúng ta đã biết cách sử dụng các kỹ thuật phát hiện đối tượng để phát hiện sự hiện diện của con người trong luồng hình ảnh hoặc video và cách sử dụng tính năng theo dõi trọng tâm để đếm số lượng người. Bằng cách kết hợp các kỹ thuật này, chúng ta có thể xây dựng một hệ thống đếm người tự động có thể mang lại lợi ích lớn cho các ngành như an ninh, bán lẻ.

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo