WE ARE CEE

CENTER ELECTRICAL ENGINEERING

Mobile, Embedded System, PCB Layout, Robotics and UAV

Nghiên cứu & Chuyển giao CN

MỘT PHƯƠNG PHÁP DỰ ĐOÁN KHOẢNG CÁCH CÓ HIỆU CHUẨN TỪ CẢM BIẾN ẢNH ĐẾN MẶT NGƯỜI

Khoảng cách từ mặt người đến máy ảnh là một giá trị có nhiều ứng dụng trong các hệ thống thị giác máy tính. Giá trị này có thể được sử dụng để triển khai giao diện người máy thân thiện hơn với người dùng. Trong các hệ thống thị giác máy hoạt động nhờ vào giao tiếp với con người, rất khó để ra lệnh cho các hoạt động của hệ thống nếu các hành động của con người không được máy ảnh thu nhận đầy đủ và rõ ràng ở trong một khoảng cách nhất định đủ để hệ thống có thể phát hiện được con người trong ảnh. Để ước tính khoảng cách từ đối tượng đến máy ảnh, việc phát hiện và theo dõi một đối tượng phải được giải quyết đầu tiên. Trong nghiên cứu này, đối tượng cần theo dõi là khuôn mặt của người đứng hoặc chuyển động qua lại hoặc tới lui trước ống kính máy ảnh. Có nhiều phương pháp phát hiện khuôn mặt như Haar-like Adaboost (HA) tìm khuôn mặt dựa trên sự kết hợp của 4 thành phần: Haar-like xác định đặc trưng, Integral Image tính toán các đặc trưng, sử dụng bộ lọc Adaptive Boost và Cascade nhằm tăng tốc độ phân loại [1]. Phương pháp này cho kết quả nhận diện khá nhanh nhưng lại dễ bị ảnh hưởng bởi ánh sáng môi trường xung quanh và chỉ phù hợp với khuôn mặt ở góc chính diện [2,3]. Tiếp theo là phương pháp Histogram of Oriented Gradians (HOG) dù ít bị ảnh hưởng bởi ánh sáng môi trường nhưng cho kết quả không tốt đối với một phần khuôn mặt bị phủ lấp [4]. Tiếp cận Deformable Part Models (DPM), một dạng của mô hình Markov ẩn, cũng đã thu được hiệu suất vượt trội, tuy nhiên mô hình này yêu cầu chi phí tính toán cao, đặc biệt là trong giai đoạn huấn luyện [5]. Mạng nơ-ron tích chập CNN (Convolutional Neural Networks) là mô hình học sâu (Deep Learning) hiệu quả, được dùng trong nhiều bài toán phát hiện và nhận diện khuôn mặt, phân tích video, ảnh MRI,…Hầu hết các CNN cơ bản đều thích hợp và giải quyết tốt các bài toán dạng này [6-8]. Mạng MTCNN được phát triển từ CNN [9]. Mô hình này cho phép xác định khuôn mặt ở nhiều góc độ khác nhau, ít bị ảnh hưởng bởi ánh sáng của môi trường xung quanh và nhận diện ngay cả trong trường hợp một phần khuôn khuôn mặt bị che khuất [9-11]. Trong nghiên cứu này chúng tôi áp dụng mạng nơ-ron tích chập xếp chồng – MTCNN để phát hiện vùng chứa khuôn mặt trong ảnh. MTCNN là một trong những công cụ nhận diện khuôn mặt phổ biến và chính xác nhất hiện nay. Nó bao gồm 3 mạng nơ-ron được kết nối trong một tầng, là mô hình học sâu hiện đại, cho phép xác định khuôn mặt ở nhiều góc nghiêng khác nhau, ngay cả trong trong điều kiện thiếu sáng và một phần khuôn mặt bị che khuất. Đối với bài toán ước lương khoảng cách bằng xử lý ảnh trong qua phát hiện khuôn mặt trong ảnh thì cũng đã có những nghiên cứu như [12,13]. Các nghiên cứu này cũng áp dụng phương pháp tính tiêu cự của máy ảnh nhờ vào một ảnh khuôn mặt ban đầu được chụp ở khoảng cách cho trước. Tuy nhiên độ chính xác sẽ bị giảm đi nếu thay vào là một người khác với khuôn mặt khác. Do đó, trong bài báo này chúng tôi đề xuất thêm một phương pháp hiệu chuẩn để tăng độ xác khi có sự thay đổi người trong ảnh.

Bài báo được trình bày trong 5 phần. Sau phần giới thiệu thì trong phần 2, khuôn mặt sau khi được phát hiện nhờ vào mạng MTCNN sẽ nằm trong một bouding box là một hình vuông với 4 cạnh, tiếp theo đó một điểm tâm nằm ở cạnh trên của hình vuông sẽ được tìm thấy cùng với cạnh bên được xem là chiều cao của khuôn mặt trong ảnh. 2 giá trị quan trọng này sẽ được sử dụng để đưa vào giải thuật dự đoán khoảng cách từ khuôn mặt của người đến máy ảnh. Ở phần 3, một giải thuật dự đoán khoảng cách sẽ được trình bày kèm với phương pháp hiệu chuẩn nhằm tăng độ chính xác mỗi khi có sự thay đổi con người trong ảnh. Ở phần 4 là một số kết quả thực nghiệm đánh giá độ chính xác của chương trình và phần 5 là các kết luận.

II. Phát hiện khuôn mặt trong ảnh dựa trên mạng Nơ-ron tích chập xếp chồng

Ở môi trường thực tế sẽ thường có nhiều người xuất hiện trước ống kính máy ảnh, điều này dẫn đến sẽ có nhiều khuôn mặt trong ảnh. Ngoài ra, các vùng chứa khuôn mặt trong ảnh sẽ có kích thước khác nhau. Do đó, cần phải có phương thức để tìm thấy toàn bộ số vùng ảnh đó với kích thước của chúng. MTCNN sử dụng phép thay đổi kích thước ảnh để tạo một loạt các bản sao từ ảnh gốc với kích cỡ khác nhau, từ lớn đến nhỏ tạo ra một đối tượng như mô tả ở hình 1, gọi là image pyramid [14].

Với mỗi một bản sao từ ảnh gốc, sử dụng kernel 12x12 pixel và stride=2 dò qua toàn bộ bức ảnh để tìm khuôn mặt. Mạng tích chập có thể dễ dàng nhận biết được các khuôn mặt với kích thước khác nhau nhờ vào kích thước ảnh, mặc dù chỉ dùng 1 kernel với kích thước cố định. Tiếp theo, đưa những kernels được cắt ra từ trên và truyền qua mạng P-Net (Proposal Network). Kết quả như thể hiện ở hình 2 là một tổ hợp các bounding boxes nằm trong mỗi kernel, mỗi bounding boxes sẽ chứa tọa độ 4 góc để xác định vị trí trong kernel chứa nó (đã được normalize về khoảng từ (0,1) và điểm confident (điểm tự tin) tương ứng.

 

Để loại bỏ các kernels các bounding boxes trên các ảnh, ta sử dụng hai phương pháp chính là dùng NMS (Non-Maximum Suppression) để xóa các box có tỷ lệ trùng nhau (Intersection Over Union) vượt qua một mức threshold nào đó lập mức Threshold confident – để xóa các box có mức confident thấp. Hình 3 là minh họa cho phép NMS, các box giống nhau sẽ bị loại bỏ và giữ lại một box có mức confident lớn nhất.

 

Sau khi tìm và xóa các box không phù hợp, việc tiếp theo là chuyển tọa độ của các box về tọa độ gốc của ảnh thật. Sau khi tọa độ của box đã được normalize về khoảng (0,1) giống với kernel, ta tính toán độ dài, rộng của kernel dựa vào ảnh gốc và nhân tọa độ đã được normalize của box với kích thước của kernel rồi cộng với tọa độ của các góc kernel tương ứng. Kết quả đầu ra là những tọa độ của box tương ứng ở trên ảnh lúc đầu. Sau cùng, ta thực hiện việc resize lại các box về dạng hình vuông, lấy tọa độ mới của các box và feed vào mạng tiếp theo, chính là mạng R.

Tiếp theo, tại mạng R (Refine Network) như hình 4, tiến trình thực hiện các bước vẫn tương tự như mạng P. Tuy nhiên, R còn sử dụng một phương pháp gọi là padding để thực hiện việc chèn thêm các điểm ảnh rỗng (zero-pixels) vào các phần thiếu của bounding box khi bounding box bị vượt quá biên của ảnh. Toàn bộ các bounding box lúc này  được resize về kích thước 24x24 và xem như một kernel và feed vào mạng R. Kết quả thu được cũng là những tọa độ mới của các box còn lại và lại được đưa vào mạng tiếp theo, mạng O.

 

Cuối cùng, tại mạng O (Output Network) như hình 5, tiến hành thay đổi kích thước bounding box thành 48x48. Kết quả đầu ra lúc này 3 giá trị bao gồm: 4 tọa độ của bounding box (out[0]), tọa độ của 5 điểm landmark trên khuôn mặt được thể hiện ở hình 6, bao gồm 1 mũi, 2 mắt, 2 bên miệng (out[1]) và điểm confident của mỗi box (out[2]). Tất cả sẽ được lưu vào thành 1 dictionary với 3 keys kể trên.

 

Sau khi xác định được tọa độ của bouding box cuối cùng là nơi bao phủ khuôn mặt, một bước cần thiết là xác định kích thước của bouding box bao gồm chiều rộng và chiều cao nhằm mục đích phục vụ cho việc dự đoán khoảng cách ở phần tiếp theo. 

 

Theo hình 7, bouding box bao phủ khuôn mặt có tạo độ (x,y) và kích thước h*w trong đó h là chiều cao và w là độ rộng (tính theo pixel) của vùng ảnh. Như đã trình bày ở phần đầu của bài báo, chúng tôi sử dụng ngôn ngữ Python và thư viện lập trình OpenCV cho việc thử nghiệm thuật toán, dó đó hoàn toàn có thể trích xuất được các giá trị này từ đối tượng detector trong gói thư viện MTCNN ở nghiên cứu [15].

III. Kỹ thuật dự đoán khoảng cách từ máy ảnh đến khuôn mặt

1. Dự đoán khoảng cách

Như đã nói, bài báo này nhằm mục đích phát triển một phương pháp dự đoán khoảng cách từ máy ảnh đến người đứng trước nó nhờ vào tính đồng dạng của hai tam giác. Theo đó, đồng dạng là một khái niệm của hình học mà trong đó các hình có hình dạng và cấu trúc giống nhau nhưng khác nhau về kích thước. Nói một cách chính xác hai hay nhiều hình đồng dạng là kết quả của các phép biến hình hình học. Trong nghiên cứu này, tính đồng dạng được thể hiện thông qua tính chất của cảm biến ảnh trên máy ảnh. Máy ảnh g ảnh là cạnh còn lại của 2 tam giác đối nhau thì chúng ta sẽ có 1 cặp tam giác đồng dạng nằm đối xứng nhau qua trục tung như hình 9 :

 

Áp dụng tính chất trên vào bài toán, chúng tôi xác định một mô hình dự đoán khoảng cách từ cảm biến ảnh đến khuôn mặt của người đứng trước máy ảnh. Giả sử ta có một người mẫu có khuôn mặt với chiều cao đã biết h (đo bằng phương pháp thủ công sử dụng thước đo) đứng cách máy ảnh khoảng cách d cho trước được thể hiện như ở hình 10:

 

Theo hình 10, góc  của tam giác tạo bởi 2 cạnh d và h. Khi đó ta có công thức để tính tiêu cự  f  như sau:

 

Khi đó tiêu cự f sẽ được tính toán như sau : f=ah/d 

Trong đó:

  • a: chiều cao của mặt người trong ảnh;
  • f: tiêu cự;
  • h: chiều cao của khuôn mặt người thực tế;
  • d: khoảng cách từ người đến lăng kính máy ảnh;

Tiếp theo, ở hình 11, người mẫu đi về gần hoặc xa hơn máy ảnh một khoảng cách nhất định, áp dụng nguyên lý đồng dạng của tam giác để xác dịnh khoảng cách d1 theo công thức:

Khi đó khoảng cách d1 được tính là :d1=hf/a1

Trong đó:

  • a1: chiều cao của mặt người trong ảnh;
  • f: tiêu cự;
  • h: chiều cao của khuôn mặt người thực tế;
  • d1: khoảng cách từ người đến máy ảnh;

 

2. Phương pháp hiệu chuẩn

Với phương pháp dự đoán khoảng cách như trên, chúng tôi nhận thấy vẫn tồn tại một yếu tố dẫn đến sai số ở kết quả. Cụ thể là với mỗi người khác nhau sẽ có khuôn mặt khác nhau. Khi đó ở cùng một khoảng cách trước máy ảnh thì kích thước khuôn mặt của mỗi người trong ảnh cũng sẽ khác nhau do khuôn mặt mỗi người là khác nhau. Như vậy, trong thực nghiệm sẽ dẫn đến sai số về kết quả. Vì vậy để hạn chế sai số này chúng tôi đưa ra một giải thuật nhằm hiệu chuẩn lại giá trị của tiêu cự f ở công thức số 1. Về nguyên lý  f  là giá trị không đổi trong mọi trường hợp. Tuy nhiên trong nghiên cứu này f  được tính nhờ vào hai tham số là khoảng cách và chiều cao của khuôn mặt được cung cấp lần đầu. Do đó chúng tôi cần thiết phải tính lại f sau một chu kỳ 10 lần đo bằng cách yêu cầu người dùng tiến đến trước máy ảnh ở khoảng cách 1m để hiệu chuẩn lại tham số f.

IV. Thực nghiệm

Trong thử nghiệm đầu tiên, chúng tôi tiến hành thử nghiệm chương trình ở 3 mức khoảng cách là 1.2m; 1.8m và 2.4m. Chương trình không áp dụng bước hiệu chuẩn. Với mỗi mức khoảng cách chúng tôi thực hiện 10 lần đo và lấy số liệu trung bình. Kết quả đo được thể hiện ở bảng 1.

Bảng 1. Kết quả các lần đo thực nghiệm của chương trình không hiệu chuẩn

Lần đo

Khoảng cách thực tế

Khoảng cách dự đoán trung bình

Sai số trung bình

Phần trăm sai số trung bình

1-10

1.2

1.19

0.01

0.83 %

11-20

1.8

1.73

0.07

3.89 %

21-30

2.4

2.01

0.39

16.25 %

Theo bảng 1, các kết quả đo cho thấy ở khoảng cách càng ngắn thì phần trăm sai số càng thấp chứng tỏ độ chính xác của phép đo càng cao. Sai số trung bình của 30 lần đo là 6.99.

Trong thử nghiệm thứ 2, chúng tôi tiến hành thử nghiệm chương trình ở 3 mức khoảng cách tương tự, đồng thời áp dụng thêm phương pháp hiệu chỉnh. Kết quả được thể hiện ở bảng 2:

Bảng 2. Kết quả các lần đo thực nghiệm của chương trình có hiệu chuẩn

Lần đo

Khoảng cách thực tế

Khoảng cách dự đoán trung bình

Sai số trung bình

Phần trăm sai số trung bình

1-10

1.2

1.18

0.02

1.67 %

11-20

1.8

1.76

0.04

2.22 %

21-30

2.4

2.14

0.26

2.67 %

Theo bảng 2, sai số trung bình của 30 lần đo là 3.52. Đặc biệt các kết quả cho thấy sau khi áp dụng bổ sung phương pháp hiệu chỉnh bằng cách tính lại giá trị  f  thì độ chính xác trung bình của 30 lần thử nghiệm đã tăng lên dù rằng mức tăng không quá rõ rệch, tuy nhiên kết quả vẫn chứng mình rằng việc hiệu chuẩn là cần thiết với các phép đo này. Bên cạnh đó, ở các lần đo từ 1 đến 10 trong khoảng cách 1.2m (khoảng cách ngắn nhất trong 3 mức) thì độ sai số là không thay đổi nhiều, cho thấy rằng việc áp dụng thêm phương pháp hiệu chuẩn sẽ chỉ có hiệu quả rõ rệch khi khoảng cách đo lớn. Trong một thử nghiệm khác chúng tôi cũng xác định rằng chương trình của chúng tôi chỉ có thể đo được trong phạm vi từ 0.5m đến 4m, trong đó ở khoảng cách 4m thì khuôn mặt không còn được tìm thấy trong ảnh.

V. Kết luận

Một phương pháp dự đoán khoảng cách từ cảm biến ảnh đến mặt người sử dụng tính chất đồng dạng của hai tam giác đã được mô tả trong bài báo này. Thuật toán có  yêu cầu hiệu chuẩn và được chứng minh là khá hiệu quả trong việc xác định khoảng cách. Quá trình thử nghiệm và đo đạc chúng tôi cũng nhận thấy rằng độ chính xác của thuật toán tăng lên khi có hiệu chuẩn. Đây cũng là một thách thức và là vấn đề cần tiếp tục được quan tâm nghiên cứu.

                                                                                                               Th.S Trần Lê Thăng Đồng

 

 

 

 

BÀI VIẾT LIÊN QUAN:

Energy-Efficient Unmanned Aerial Vehicle (UAV) Surveillance Utilizing Artificial Intelligence (AI)

Recently, unmanned aerial vehicles (UAVs) have enhanced connectivity and ...

Preparation of Papers in Two Column Format for the ICSES Transactions and Conferences

Today, airports are quickly deploying self-service technologies as a ...

Robot Navigation Using FPGA Based Moving Object Tracking System

The paper describes an object tracking robot system implemented on FPGA. The ...

Trajectory Tracking Control of the Nonholonomic Mobile Robot using Torque Method and Neural Network

This paper deals with the problem of tracking control of the mobile robot with ...