Phát hiện vật thể là một vấn đề thuộc thị giác máy tính đã được nghiên cứu rất kỹ lưỡng, song đa số công trình đều chỉ tập trung vào dự đoán các vật thể 2D. Trong khi việc dự đoán này bị bó hẹp trong các hộp 2D, thì ở 3D, con người có thể biết được kích cỡ, vị trí, và xu thế của vật thế trên thế giới, mang lại nhiều ứng dụng hơn cho các ngành robot học, xe tự lái, phục chế hình ảnh và thực tế ảo tăng cường. Hiện tại, công nghệ phát hiện vật thể 2D đã rất phát triển và được ứng dụng rộng rãi, trong khi phát hiện vật thể 3D từ hình ảnh 2D còn là một thử thách. Điều này là do sự thiếu hụt về dữ liệu, đa dạng về bề ngoài và hình dạng của các vật thể thuộc cùng phạm trù.

Bài viết hôm nay sẽ công bố sự ra đời của MediaPipe Objectron, một pipeline phát hiện vật thể 3D di động cho các vật thể thường gặp. Pipeline này có khả năng phát hiện vật thể trên hình ảnh 2D, sau đó dự kiến dáng và kích thước của vật thể đó qua một mô hình machine learning (ML), được huấn luyện sử dụng một bộ dữ liệu 3D mới tạo. Objectron được ứng dụng trong MediaPipe, một khung đa nền tảng mở được sử dụng cho xây dựng các pipeline xử lý dữ liệu góc từ nhiều mô hình khác nhau. Cụ thể, Objectron sẽ tổng hợp ra các hộp 3D của vật thể trên thời gian thực trên các thiết bị di động.

Phát hiện vật thể 3D chỉ từ một hình ảnh. MediaPipe Objectron có khả năng xác định vị trí, xu thế, và kích thước của các vật dụng thường dùng trên thời gian thực thông qua các thiết bị di động.

Thu thập dữ liệu huấn luyện về vật thể 3D thực

Có rất nhiều dữ liệu 3D về khung cảnh đường phố, do việc nghiên cứu về xe tự lái có ứng dụng tới công nghệ cảm ứng 3D (như LIDAR) là rất phổ biến. Tuy nhiên, lại hiếm có bộ dữ liệu nào có nhãn cụ thể về những đồ vật hằng ngày. Để khắc phục khó khăn này, chúng tôi đã phát triển một pipeline dữ liệu mới, sử dụng dữ liệu thu thập thông qua công nghệ thực tế ảo tăng cường (AR) trên thiết bị di động. Hiện nay, với sự xuất hiện của ARCore và ARKIT, đã có hàng triệu smartphone được tích hợp công nghệ AR, cũng như khả năng thu thập thêm thông tin mỗi lần sử dụng công nghệ này, như vị trí máy ảnh, điểm point cloud 3D phân bố rộng, ánh sáng dự kiến và các mặt phẳng không gian.

Để đánh nhãn giá trị thật dữ liệu, ta cần phải xây dựng một công cụ dán nhãn mới cho các phiên dữ liệu AR, cho phép công cụ có thể nhanh chóng đánh nhãn các hộp 3D cho vật thể. Công cụ này sẽ sử dụng chế độ chia màn hình để chiếu các khung video 2D, được đè bởi hộp 3D ở phía bên phải, chiếu các điểm point cloud 3D, vị trí camera và mặt phẳng được xác định ở phía bên trái. Công cụ cũng sẽ vẽ hộp 3D trên video 3D, đồng thời xác minh vị trí của nó bằng cách kiểm tra lại hình ảnh trên khung video 2D. Đối với vật thể tĩnh, ta sẽ chỉ cần đánh nhãn vật thể trên một khung hình duy nhất, sau đó lan truyền nhãn này lên tất cả các khung hình khác bằng thông tin lấy từ camera giá trị thật từ phiên dữ liệu AR, qua đó tăng hiệu quả qui trình.

Dữ liệu đánh nhãn thực dùng cho phát hiện vật thể 3D. Bên phải: Hộp 3D được đánh nhãn trên hình ảnh 3D, cùng với các mặt phẳng và point cloud được phát hiện. Bên trái: Hình chiếu hộp 3D được đánh nhãn, đè trên khung hình video, khiến ta dễ xác định độ chính xác của nhãn hơn.

Tổng hợp dữ liệu AR nhân tạo

Một phương pháp phổ biến được sử dụng là bổ sung dữ liệu thực với các dữ liệu nhân tạo, nhằm tăng độ chính xác khi dự đoán. Tuy nhiên, các thử nghiệm phương pháp này thường cho kết quả là các dữ liệu không chính xác và phi thực tế. Trong kết xuất đồ họa ảnh thực (photorealistic rendering), điều này sẽ cần tới rất nhiều công sức và khả năng xử lý. Chính vì vậy, chúng tôi đã sử dụng một cách tiếp cận mới gọi là Tổng hợp dữ liệu AR nhân tạo (AR Synthetic Data Generation), cho phép ta tác động tới góc máy ảnh, phát hiện mặt phẳng không gian, cũng như ước tính ánh sáng, từ đó tổng hợp ra các vị trí khả dụng, với ánh sáng phù hợp vào quang cảnh. Cách tiếp cận này sẽ cho kết quả là những dữ liệu nhân tạo có chất lượng cao, với các vật thể được kết xuất phù hợp với dạng hình học và tương thích với nền ảnh. Như vậy, thông qua kết hợp dữ liệu thật và dữ liệu nhân tạo AR, độ chính xác đã được nâng lên tới khoảng 100%.

Ví dụ về tổng hợp dữ liệu AR nhân tạo. Hộp ngũ cốc ảo đã được kết xuất vào hình ảnh thật, bên cạnh một cuốn sách thật màu xanh.

Pipeline ML cho phát hiện vật thể 3D

Chúng tôi đã xây dựng mô hình 1 bước để xác định dáng và kích thước vật lý của một vật thể, chỉ thông qua một hình ảnh RGB duy nhất. Xương sống của mô hình này là kiến trúc encoder-decoder, được xây dựng trên MobileNetv2. Chúng tôi cũng áp dụng phương thức học đa tác vụ (multi-task), tức kết hợp các tác vụ bao gồm dự đoán hình dạng vật thể, phát hiện, và hồi quy. Trong đó, tác vụ dự đoán hình dạng sẽ dựa trên nhãn giá trị thật. Tuy nhiên, việc này là không bắt buộc nếu không có nhãn hình dạng trong dữ liệu huấn luyện. Còn về tác vụ phát hiện, ta sẽ sử dụng các hộp đánh nhãn, thêm phân phối chuẩn, lấy tâm là trọng tâm của hộp, và độ lệch chuẩn tương thích với kích thước hộp. Mục tiêu của việc phát hiện sau đó sẽ là dự đoán phân phối, trong đó mức cao nhất sẽ biểu hiện cho vị trí trọng tâm của hình dạng. Cuối cùng, tác vụ hồi quy sẽ ước tính ảnh chiếu 3D lên 8 đỉnh hộp. Để xác định tọa độ 3D của hộp này, ta sẽ sử dụng một thuật toán ước tính dáng vững  (well established pose estimation algorithm – EPnP), thông qua đó khôi phục lại hộp 3D của vật thể, dù không có trước bất cứ thông tin nào về các chiều của vật thể đó. Sau đó, từ hộp 3D, ta sẽ có thể xác định dáng vào kích thước của vật thể này. Đồ thị dưới đây sẽ biểu thị cho cấu trúc mạng và hậu kỳ xử lý. Mô hình được sử dụng cũng đủ nhẹ để chạy ở chế độ thời gian thực trên các thiết bị di động (cụ thể là 26 FPS trên một GPU điện thoại Adreno 650).

Cấu trúc mạng và hậu kỳ xử lý phát hiện vật thể 3D.
Kết quả mẫu của mạng nói trên – Trái: ảnh 2D gốc với hộp ước tính, Giữa: phát hiện vật thể bằng phân phối chuẩn, Phải: mask phân phối dự đoán.

Phát hiện và Theo dõi trong MediaPipe

Khi mô hình được áp dụng vào từng khung ảnh được thu trên thiết bị di động, nó có thể cho kết quả trễ khi hộp 3D được ước tính không rõ ràng. Để giảm thiểu điều này, ta áp dụng một khung phát hiện và theo dõi, được giới thiệu trong giải pháp phát hiện và theo dõi vật thể 2D mới đây của chúng tôi. Khung này sẽ làm giảm nhu cầu phải chạy mạng này trên từng khung hình, đồng thời cho phép sử dụng các mô hình nặng hơn, chính xác hơn, trong khi vẫn đảm bảo chế độ thời gian thật trên các thiết bị di động. Ngoài ra, ứng dụng này cũng sẽ lưu lại phát hiện vật thể, đảm bảo tính đồng nhất qua mỗi khung hình, cũng như giảm độ trễ.

Nhằm tăng hiệu quả mô hình, cứ một vài khung hình ta mới thực hiện phân tích mô hình một lần. Tiếp theo, ta sẽ lấy kết quả dự đoán và theo dõi nó theo thời gian, sử dụng một phương thức từng được giới thiệu trước đây về theo dõi chuyển động tức thời và Chuyển động tĩnh. Khi xuất hiện một dự đoán mới, chúng tôi sẽ thống nhất kết quả phát hiện bằng những dữ liệu này, dựa trên độ trùng lặp.

Với mong muốn khuyến khích các nhà nghiên cứu và phát triển thử nghiệm pipeline của chúng tôi, chúng tôi sẽ phát hình pipeline ML này trong MediaPipe, trong đó bao gồm một bản demo end-to-end cho ứng dụng di động và mô hình được huấn luyện cho hai phạm trù cụ thể: giày và ghế. Hy vọng rằng, việc chia sẻ giải pháp này tới cộng đồng nghiên cứu và phát triển sẽ giúp phát sinh nhiều use case, ứng dụng và công trình nghiên cứu hơn. Dự kiến, trong tương lai chúng tôi sẽ mở rộng quy mô mô hình trên nhiều phạm trù hơn, cũng như cải thiện hiệu quả khi sử dụng trên thiết bị.

Ví dụ về sử dụng giải pháp phát hiện vật thể 3D tại nơi hoang dã.

Lời cảm ơn

Nghiên cứu này được thực hiện bởi Adel Ahmadyan, Tingbo Hou, Jianing Wei, Matthias Grundmann, Liangkai Zhang, Jiuqiang Tang, Chris McClanahan, Tyler Mullen, Buck Bourdon, Esha Uboweja, Mogan Shieh, Siarhei Kazakou, Ming Guang Yong, Chuo-Ling Chang, và James Bruce. Ngoài ra, xin trân trọng cảm ơn Aliaksandr Shyrokau và đội ngũ đánh nhãn vì các nhãn chất lượng cao, được đánh tỉ mỉ của họ.

Theo Google AI Blog

 

 

Tin liên quan: