Phát hiện đối tượng (Object Detection) được coi là một trong những lĩnh vực quan trọng nhất trong phát triển của học sâu (Deep Learning) và xử lý hình ảnh (Image Processing).
Các mô hình phát hiện đối tượng thường được đào tạo để phát hiện sự hiện diện của các đối tượng cụ thể trong hình ảnh, video hoặc hoạt động thời gian thực (real time). Ngay cả trước khi có phương pháp học sâu và công nghệ xử lý hình ảnh hiện đại, việc phát hiện đối tượng vẫn được quan tâm rất nhiều. Khi đó người ta thường ứng dụng một số phương pháp xử lý ảnh như SIFT và HOG với kỹ thuật trích xuất cạnh của vật thể.
Với sự ra đời của mạng nơ-ron tích chập (CNN) và những tiến bộ của công nghệ thị giác máy tính (Computer Vision), đã mang đến nhiều cách tiếp cận cũng như nhiều thuật toán phát hiện đối tượng hiệu quả hơn. Trong bài viết này, chúng ta sẽ khám phá các thuật toán phát hiện đối tượng và các cơ sở dữ liệu hữu ích trong việc phát triển những thuật toán này.
Nhận diện đối tượng thường được sử dụng để làm gì?
Công nghệ phát hiện đối tượng tồn tại xung quanh chúng ta. Ứng dụng có thể nhìn thấy rõ ràng nhất chính là phần mềm mở khóa bằng nhận diện khuôn mặt trên điện thoại, hoặc các hệ thống camera giám sát an ninh tại các hệ thống cửa hàng, kho bãi.
Dưới đây là một số ứng dụng chính của công nghệ phát hiện đối tượng:
- Nhận dạng biển số – sử dụng cả công nghệ phát hiện đối tượng và nhận dạng ký tự quang học (OCR) để nhận dạng các ký tự chữ và số trên biển số xe. Tính năng phát hiện đối tượng được sử dụng thông qua việc lưu giữ lại hình ảnh và phát hiện các đối tượng cụ thể như xe cộ, phương tiện đi lại trên bức ảnh đó. Sau khi đã xác định được tọa độ của phương tiện trên ảnh, chúng ta có thể sử dụng các mô hình Object Detection khác để phát hiện biển số xe và các ký tự trên biển số. Từ đó, áp dụng các mô hình OCR hoặc image classification để nhận dạng ký tự trên hình, ánh xạ từ dạng dữ liệu hình ảnh sang dạng chữ (text).
- Phát hiện và nhận dạng khuôn mặt – một trong những ứng dụng chính của phát hiện đối tượng là nhận diện và phát hiện khuôn mặt. Với sự trợ giúp của các thuật toán hiện đại, chúng ta có thể phát hiện khuôn mặt người trong một hình ảnh hoặc video.
- Theo dõi đối tượng – Công nghệ này có thể ứng dụng để theo dõi chuyển động của một đối tượng hay đồ vật cụ thể. Chẳng hạn, trong khi xem một trận bóng chày hoặc cricket, quả bóng có thể bị đập ra xa. Trong những tình huống này, thuật toán giúp chúng ta phát hiện, nhận dạng và theo dõi (tracking) vị trí và đường bay của quả bóng hiện tại.
- Ô tô tự lái – đối với ô tô tự lái, điều quan trọng là phải nghiên cứu các yếu tố môi trường xung quanh ô tô khi lái xe. Một mô hình phát hiện đối tượng được đào tạo trên nhiều đối tượng để phát hiện các thực thể khác nhau cản trở việc lái xe nhằm đảo bảo an toàn cho người lái.
- Người máy – Hiện nay thuật toán phát hiện đối tượng thường được ứng dụng trong robot để nhận diện và di chuyển các vật nặng, giảm thiểu những công việc về thể chất cho con người và tự động hóa công việc.
Các thuật toán phát hiện đối tượng phổ biến
Kể từ những năm 2010, khi học sâu ngày càng phát triển, chất lượng của các thuật toán phát hiện đối tượng cũng liên tục được nâng cấp và cải tiến. Dưới đây là một số thuật toán phổ biến nhất, phương thức hoạt động và ưu nhược điểm của chúng khi vận hành.
1. Phương pháp mô tả đặc trưng (Histogram of Oriented Gradients – HOG)
Phương pháp mô tả đặc trưng (Histogram of Oriented Gradient – HOG) là một trong những phương pháp phát hiện đối tượng lâu đời nhất. Nó được giới thiệu lần đầu tiên vào năm 1986. HOG được sử dụng như 1 thuật toán trích chọn đặc trưng của đối tượng trong ảnh.
Mục đích của HOG là trừu tượng hóa đối tượng bằng cách trích xuất ra những đặc trưng của đối tượng đó và bỏ đi những thông tin không hữu ích. Vì vậy, HOG được sử dụng chủ yếu để mô tả hình dạng và sự xuất hiện của một đối tượng trong ảnh. HOG dựa trên việc chia ảnh đầu vào thành các ảnh con, tính toán histogram của ảnh để tổng hợp và trích rút ra các vector gọi là vector đặc trưng ứng với từng đối tượng.
Kiến trúc hệ thống HOG để phát hiện đối tượng.
Bản chất của phương pháp HOG là sử dụng thông tin về sự phân bố của các cường độ gradient (intensity gradient) hoặc của hướng biên (edge directions) để mô tả các đối tượng cục bộ trong ảnh. Các toán tử HOG được cài đặt bằng cách chia nhỏ một bức ảnh thành các vùng con, được gọi là cell và với mỗi cell, ta sẽ tính toán một histogram về các hướng của gradients cho các điểm nằm trong cell. Ghép các histogram lại với nhau ta sẽ có một biểu diễn cho bức ảnh ban đầu. Để tăng cường hiệu năng nhận dạng, các histogram cục bộ có thể được chuẩn hóa về độ tương phản bằng cách tính một ngưỡng cường độ trong một vùng lớn hơn cell, gọi là các khối (blocks) và sử dụng giá trị ngưỡng đó để chuẩn hóa tất cả các cell trong khối. Kết quả sau bước chuẩn hóa sẽ là một vector đặc trưng có tính bất biến đối với các thay đổi về điều kiện ánh sáng.
2. Mạng nơ-ron tích chập theo vùng (R-CNN)
Mạng nơ-ron tích chập theo vùng (R-CNN) là một cải tiến mới trong kỹ thuật phát hiện đối tượng từ các phương pháp trước đây của HOG và SIFT. Trong các mô hình R-CNN thường trích xuất các đặc trưng cần thiết nhất của đối tượng (thường là khoảng 2000 đặc trưng) bằng cách sử dụng 1 giải thuật chọn lọc (gọi là selective search). Quá trình lựa chọn các đặc trưng quan trọng nhất có thể được tính toán với sự trợ giúp của thuật toán tìm kiếm chọn lọc.
Chu trình phát hiện đối tượng với Mạng nơ-ron tích chập dựa trên khu vực (R-CNN)
Với R-CNN, việc trích xuất các vùng region proposal được thực hiện thông qua thuật toán Selective Search để trích chọn ra các vùng có khả năng chứa đối tượng (khoảng 2000 vùng). Sau đó, các vùng (ảnh) này được resize về 1 kích thước cố định và đưa qua 1 pretrained CNN model (imagenet), rồi từ đó tiến hành xác định offset và nhãn đối tượng. Tuy nhiên, việc đưa các vùng region proposal qua mạng CNN 2000 lần khiến tốc độ thực thi của model cực kì chậm!
3. Faster R-CNN
Mặc dù mô hình R-CNN có thể thực hiện tính toán phát hiện đối tượng và đạt được hiệu quả nhưng vẫn tồn đọng nhiều điểm bất cập, điển hình là tốc độ mô hình. Vì vậy, một số phương pháp đã được phát triển để giải quyết vấn đề này và xử lý các nhược điểm của R-CNN. Trong số đó nổi bật nhất chính là mô hình Fast R-CNN và Faster R-CNN.
Với Faster-RCNN, thay vì việc sử dụng Selective Search, mô hình được thiết kế thêm 1 mạng con gọi là RPN (Region Proposal Network) để trích rút các vùng có khả năng chứa đối tượng của ảnh. Nhìn chung, sau khi thực hiện RPN, các bước xử lý sau tương tự như Fast-RCNN nhưng nhanh hơn nhiều (vì không sử dụng Selective Search) và được thiết kế như 1 mạng end-to-end trainable network!
Minh họa mô hình Faster R-CNN
Mô hình Faster R-CNN là một trong những phiên bản tốt nhất trong Fast R-CNN và cải thiện tốc độ hoạt động rất nhiều so với các phiên bản tiền nhiệm. Trong khi mô hình R-CNN và Fast R-CNN sử dụng thuật toán tìm kiếm chọn lọc để tính toán các đề xuất vùng, thì phương pháp Faster R-CNN sẽ thay thế phương pháp hiện có này bằng một mạng đề xuất các vùng đặc trưng (Region Proposal Network – RPN).
Mạng RPN giảm thời gian tính toán để trích chọn đặc trưng, thường là 10ms cho mỗi hình ảnh. Mạng này bao gồm các lớp tích hợp mà từ đó chúng ta có thể thu được các đặc trưng cần thiết thông qua từng lớp tích chập liên tiếp nhau. Để đưa ra các vùng đặc trưng, chúng ta sử dụng các hộp neo (anchor box) với các tỉ lệ, kích thước và độ lớn khác nhau. Đối với mỗi anchor box tại RPN, chúng ta thực hiện 1 binary classifier để phân loại vùng trích chọn đó có khả năng chứa đối tượng hay không, và dự đoán ra các hộp giới hạn (bounding box) tương ứng.
Sau đó, các vùng trích chọn sẽ được đưa qua 1 bộ lọc gọi là Non maximum suppression (NMS) để loại bỏ các bounding box dư thừa. Đầu ra của NMS được cho qua 1 lớp gọi là RoI Align (Region of Interest) để cố định kích thước đầu ra của các vùng đặc trưng đã trích chọn được. Sau đó, phần xử lý tiếp theo của mô hình sẽ tương tự như mô hình Fast-RCNN
Trên đây là 3 thuật toán phát hiện đối tượng phổ biến, được nhiều nhà nghiên cứu và phát triển sản phẩm trong lĩnh vực thị giác máy tính ưu tiên sử dụng. Trong thời đại không ngừng phát triển của các giải pháp công nghệ cao, kỳ vọng mở ra một kỷ nguyên kỹ thuật số hiện đại, ngày càng nhiều thuật toán tiên tiến hơn ra đời, mang lại nhiều ứng dụng thiết thực và hữu ích hơn trong đa lĩnh vực.
Phát hiện đối tượng là một trong những tính năng nổi bật được phát triển trong sản phẩm VisionAI. Hiện nay VisionAI đang sở hữu 4 nhóm tính năng thông minh, bao gồm: Thống kê lưu lượng người, Nhận diện khuôn mặt, Nhận diện vât thể, Phân tích đặc điểm và hành vi, với nhiều đột phá về công nghệ như: cho kết quả chính xác tới 99%, đồng thời vô cùng linh hoạt, dễ dàng triển khai tích hợp với bên thứ 3, tùy chỉnh theo nhu cầu khách hàng.