Phân tích, thiết kế và cài đặt chương trình

Một phần của tài liệu Nghiên cứu nhận dạng và theo dõi chuyển động của mắt người (Trang 53 - 72)

Chương 2. MỘT SỐ PHƯƠNG PHÁP NHẬN DẠNG VÀ THEO DÕI CHUYỂN ĐỘNG CỦA MẮT NGƯỜI

3.2 Phân tích, thiết kế và cài đặt chương trình

Từ trước đến nay đã có rất nhiều công trình nghiên cứu phát hiện mắt và trước khi dự án, các phương pháp trước đây đã được nghiên cứu kỹ lưỡng để

CV

Các hàm về xử lý ảnh và giải thuật về

thị giác máy tính

CXCORE

Các cấu trúc dữ liệu cơ bản, cấu trúc XML, các hàm về đồ họa … MLL

Các thuật toán học máy, bao gồm các bộ phân cụm, phân

loại thống kê

HighGUI Các hàm và thủ tục

làm việc với file ảnh và file video

xác định các phương pháp thực hiện. Bài toán chia làm ba bước tương ứng với ba module: module tiền xử lý và trích chọn đặc trưng, module huấn luyện và module nhận dạng và theo dõi chuyển động của mắt.

Module tiền xử lí và trích chọn đặc trưng:

+ Thu nhận hình ảnh từ camera + Chuẩn hóa dữ liệu

+ Trích chọn đặc trưng

Module huấn luyện sẽ chia thành các bài toán sau đây:

+ Thu thập dữ liệu đầu vào cho quá trình huấn luyện.

+ Tiền xử lý và trích chọn đặc trưng và lưu vào file.

+ Huấn luyện dữ liệu.

+ Lưu trữ vào file dữ liệu để sử dụng trong module nhận dạng.

Module nhận dạng và theo dõi chuyển động sẽ được chia thành các bài toán con sau đây:

+ Thu nhận dữ liệu đầu vào cho quá trình nhận dạng.

+ Tiền xử lý và trích chọn đặc trưng.

+ Dựa vào các đặc trưng đã được huấn luyện và lưu trữ trong những file dữ liệu để nhận dạng khuôn mặt, phát hiện mắt.

+ Tạo vết chuyển động của mắt.

+ Đưa ra kết quả nhận dạng.

3.2.2. Thiết kế hệ thống

Hệ thống được thiết kế từng bước, từ bước xây dựng giao diện cho đến các bước xây dựng các hàm, các module giải quyết các các công việc chính cũng như các bài toán con của hệ thống.

Cài đặt bộ theo dõi

Hoạt động CSDL mắt bộ theo dõi

Chương trình chính 1. Xác định HUE để phát

hiện da

2. Thiết lập vị trí mắt - Thiết lập kiểm tra

- Thiết lập không gian màu 3. Thiết lập các đặc trưng của mắt

- Thiết lập phát hiện mống mắt (không gian màu, ngưỡng, phát hiện cạnh, thuật toán phù hợp)

- Thiết lập đặc trưng nhãn cầu (không gian màu, ngưỡng, phát hiện cạnh, kích hoạt tối thiểu hóa năng lượng hệ số đường viền)

1. Tạo CSDL mắt

2. Quản lí thư mục 1.Phát hiện khuôn mặt 2. Theo dõi mắt

3. Trích chọn đặc trưng mắt

4. Hiển thị kết quả 5. Ghi kết quả

6.Giao diện người dùng 7. Cài đặt Webcam Cấu trúc của hệ thống hoàn chỉnh hoặc có thể phác thảo như hình 3.5:

Hình 3.2. Cấu trúc hoàn chỉnh của hệ thống

Việc thực hiện hệ thống phụ thuộc vào các thiết lập được xác định bởi người sử dụng mặc dù các thông số mặc định có thể cho kết quả tốt. Vì vậy, có chủ yếu là hai tương tác với các thiết lập với người sử dụng;

1) Cài đặt cho các phát hiện

2) Xác định mắt trong cơ sở dữ liệu để phát hiện mắt.

Sơ đồ giải thích quá trình phát hiện và theo dõi mắt được thể hiện trong hình:

Quay lên 1 Nhận tọa độ mắt Chuyển đổi màu không gian

Phát hiện đường biên, cạnh Phát hiện mống mắt Phát hiện mống mắt

Chuyển đổi màu không gian

Tối thiểu hóa năng lượng Phát hiện đường

biên, cạnh

Phù hợp hình elip

Đặc trưng mắt

&

Bắt đầu

Tính biểu đồ của mẫu HUE Ảnh đầu vào từ Camera Chuyển đổi sang không

gian màu HSV Tính toán phân bố xác suất Tìm kiếm vùng khuôn mặt Thuật

toán dịch chuyển

trung bình thích nghi

Xác định số tỷ lệ và thay đổi kích thước cơ sở dữ liệu mắt Đưa thành phần không gian màu

sắc của hình ảnh đầu vào Xác định vùng tìm kiếm để

phát hiện mắt Kiểm tra sai

Sai > giới

Phát hiện mắt sử dụng AdaBoost

Kết thúc tìm kiếm

Phát hiệ mắt

Sai

sai Đúng

1

Hình 3.3. Sơ đồ hệ thống theo dõi mắt

Bước đầu tiên trong hệ thống theo dõi ánh mắt phát hiện vùng mặt vì mắt chiếm một diện tích nhỏ so với tổng số các hình ảnh để phát hiện mắt. Nếu không xác định gương mặt, có lẽ sẽ phát hiện không đúng mắt. Trong nghiên cứu này là đặc trưng dựa trên thuật toán nhận diện khuôn mặt được thực hiện cho mục đích này.

3.2.2.1. Phát hiện khuôn mặt

Các thuật toán nhận diện khuôn mặt thực hiện trong nghiên cứu này là một phương pháp phát hiện khuôn mặt dựa trên tính năng dựa trên phát hiện màu da và sử dụng thuật toán dịch chuyển trung bình thích nghi liên tục.

Chi tiết thực hiện của thuật toán như sau:

1. Để thuật toán dịch chuyển trung bình thích nghi làm việc, phải sử dụng một biểu đồ mẫu HUE để so sánh với hình ảnh. Vì vậy, tại lúc bắt đầu của quá trình theo dõi, người dùng có nhắc đến một phần khuôn mặt của chỉ chứa các màu da được tạo trên màn hình.

Hình 3.4. Ví dụ phân phối tính toán xác suất HUE

2. Sau khi nhận được các hình ảnh mẫu, nó được chuyển đổi từ không gian màu RGB qua không gian màu HSV. HUE là thành phần chỉ quan tâm trong dịch chuyển trung bình thích nghi. Vì vậy, thành phần được chiết xuất HUE và lưu trữ như một mẫu để sử dụng tiếp trong việc xây dựng phân bố xác suất.

Hình 3.5. Biểu đồ các thành phần màu sắc

3. Hình ảnh mới trong khuôn mặt sẽ nằm được chụp từ máy ảnh và chuyển thành không gian màu HSV.

4. Khởi tạo cửa sổ tính toán như hình ảnh toàn bộ

5. Phân phối xác suất và trở lại hình ảnh là một loại dấu hiệu của phân phối xác suất hoặc một hình ảnh màu xám quy mô của hình ảnh đầu vào được hình thành bằng cách so sánh mỗi pixel của ảnh nguồn với các biểu đồ màu sắc xây dựng trong bước 2.

6. Phương thức phân phối khả năng có thể xảy ra và tìm kiếm cỡ cửa sổ nào cho vùng mặt được tính toán.

Hình 3.6. Đầu ra của bộ theo dõi mặt

7. Cửa sổ tính toán cho các khung hình tiếp theo được thiết lập để hiện kích thước cửa sổ tìm kiếm thay vì tính toán tiết kiệm tất cả hình ảnh.

Mục đích trong phần này là theo dõi toàn bộ khuôn mặt, nó phục vụ nguồn thông tin quan trọng cho việc phát hiện và theo dõi mắt dựa trên thành phần phân tích chủ yếu. Nó cung cấp hai thông tin quan trọng:

1. Vị trí của vùng mặt

2. Trung tâm hình ảnh khuôn mặt theo hình ảnh toàn bộ, như vậy chúng ta có thể tính thông tin chiều rộng của khuôn mặt.

Chiều rộng khuôn mặt, chiều cao, tâm, thông tin kích thước của khuôn mặt phát hiện được tính bằng cách sử dụng những khoảnh khắc đầu tiên của hình ảnh chiếu lại. Thông tin chiều rộng của khuôn mặt được xác định và tọa độ của vùng mặt đóng một vai trò quan trọng trong việc thực hiện của các thành phần phát hiện mắt.

3.2.2.2. Phát hiện mắt

Các thuật toán phát hiện mắt thực hiện trong nghiên cứu này được dựa trên cách tiếp cận eigenfaces. Chúng tôi đang sử dụng phương pháp để phát hiện mắt trong khu vực khuôn mặt chúng tôi sẽ sử dụng thuật ngữ "eigeneyes". Cách tiếp cận Eigeneyes sử dụng kỹ thuật phân tích thành phần chính trên một tập đại diện của hình ảnh mắt để giảm không gian mắt.

3.2.2.2.1. Huấn luyện cơ sở dữ liệu mắt

Hình 3.7. CSDL mẫu sử dụng trong phát hiện mắt

Huấn luyện cơ sở dữ liệu phải có những tư thế khác nhau và định hướng của cả hai mắt. Một cơ sở dữ liệu mắt mắt điển hình chứa hình ảnh cho

mắt trái và phải bất kỳ khi nào người đó nhìn chằm chằm vào hướng khác nhau.

Phương pháp Eigeneye là phụ thuộc vào các điều kiện sáng và chiếu sáng hiệu ứng hệ thống tiêu cực. Để có được một hiệu suất tốt hơn; hình ảnh đào tạo mắt có thể chụp trong điều kiện sáng khác nhau. Một lợi thế của việc sử dụng hình ảnh mắt như cơ sở dữ liệu tập huấn là, cơ sở dữ liệu phức tạp được sử dụng trong việc phát hiện khuôn mặt không phải là một yêu cầu như quan điểm của mắt không thay đổi quá nhiều từ người này sang người khác.

3.2.2.2.2. Trích chọn đặc trưng mắt

Một khu vực trong một hình ảnh là một nhóm các điểm ảnh được kết nối với các tính chất tương tự. Khu vực rất quan trọng cho việc giải thích của một hình ảnh vì chúng tương ứng với các lĩnh vực quan tâm trong một cảnh. Vì vậy, xem xét một hình ảnh mắt, vùng mắt có thể được phân chia thành hai khu vực chồng chéo đơn giản mà có thể được chấp nhận là các tính năng của một con mắt cho vấn đề thị giác máy;

Hình 3.8. Vùng mắt người

Vùng 1: Khu vực con ngươi và móng mắt của mắt người.

Vùng 2: Diện tích nhãn cầu nhìn thấy được. Vùng 2 chứa vùng 1.

* Phát hiện vùng 1 của mắt.

Như đã đề cập trước đó, các khu vực hình thành con ngươi của mắt và mống mắt có thể thu được bằng cách tiếp cận dựa trên phát hiện cạnh. Khu vực này có một sự thay đổi đáng kể trong các hình ảnh khi so sánh với các khu vực xung quanh hình thành bởi tròng trắng của mắt và da. Do tiếng ồn và các yếu tố

khác như ánh sáng môi trường xung quanh, một số bước tiền xử lý sẽ được áp dụng cho vùng mắt trước khi phát hiện cạnh.

Các phần của chương trình liên quan đến việc phát hiện các vùng 1 được hiển thị trong hình 3.12

Hình 3.9. Các đặc trưng của mắt (vùng 1)

* Phát hiện vùng 2 của mắt

Phát hiện vùng 2 là một vấn đề khó khăn trong quá trình nghiên cứu của chúng tôi vì nó có chứa vùng 1. Nhưng sử dụng thực tế "toàn bộ vùng mắt có thể được chấp nhận như là khu vực nhãn cầu có thể nhìn thấy được bao quanh bởi làn da bằng cách nào đó để loại bỏ những vùng da sẽ ra vùng nhãn cầu nhìn thấy bởi hệ thống hình ảnh".

Các phần của chương trình liên quan đến việc phát hiện vùng 2 được trình bày trong hình 3.13

Hình 3.10. Các đặc trưng vùng 2 của mắt.

3.2.3. Cài đặt chương trình mô phỏng

Chương trình được cài đặt bằng ngôn ngữ C++ trong bộ Microsoft C++

6.0 kết hợp với một số công cụ hỗ trợ như OpenCV.

OpenCV(Open Source Computer Vision): Là thư viện chứa các hàm lập trình nhằm vào thị giác máy tính thời gian thực được phát triển bởi trung tâm nghiên cứu Intel Nga. Nó là bộ công cụ miễn phí được cung cấp quyền sử dụng dưới dạng mã nguồn mở của BSD. OpenCV tập trung vào việc xử lý hình ảnh thời gian thực tối ưu hóa để tăng tốc độ xử lý.

Một số chức năng trong chương trình được hỗ trợ như:

+ Kết nối webcam để lấy hình ảnh từ thế giới thực hoặc video đã có.

+ Xử lý hình ảnh từ các khung của chuỗi video của camera.

+ Tiền xử lý và trích chọn đặc trưng.

+ Phát hiện khuôn mặt.

+ Phát hiện và theo dõi sự chuyển động của mắt

3.2.3.1. Cấu hình cài đặt

Hệ thống chương trình được thử nghiệm với HP Webcam-101, khung hình có độ phân giải 320x240, yêu cầu về thông số kỹ thuật: Bộ vi xử lý CPU Pentium 4, Ram 1G, HDD 80Gb.

3.2.3.2. Chương trình mô phỏng

Giao diện chính của chương trình được môt tả trong hình như sau:

Hình 3.11. Giao diện chương trình.

Trong giao diện chính gồm hai khung hình khung bên trái dùng để thu tín hiệu hình ảnh từ camera hoặc video còn khung bên phải dùng để thể hiện khoảng cách không gian mắt trái và mắt phải.

3.3. Mô phỏng kỹ thuật nhận dạng theo dõi chuyển động của mắt người Để thực hiện việc mô phỏng kỹ thuật nhận dạng và theo dõi mắt:

Bước 1: Khởi tạo chương trình “Demo-Theo dõi mắt” (hình 3.10). Sau đó lựa chọn danh mục và chọn mục “Cài đặt bộ theo dõi”

Hình 3.12. Các đặc trưng vùng 2 của mắt.

Bước 2: Cài đặt bộ theo dõi

Hình 3.13. Cài đặt bộ theo dõi.

 Đầu vào: video

 Nhấn vào chọn tập tin và chọn tập tin.

 Chọn tuật toán phát hiện khuôn mặt: Haar Face Detection, Camshift.

 Kích chọn “Theo dõi mắt”

 Chọn thuật toán phát hiện mắt:Template Matching hay EigenEye

 Chọn “Số hình ảnh CSDL”, chọn số EigenEye

 Chọn loại vùng màu để sử dụng.

 Cuối cùng chọn “Lưu và thoát”.

Kết quả thực nghiệm

Hình 3.14. Phát hiện và theo dõi chuyển động của mắt 3.3.2. Đánh giá kết quả

Kết quả thực nghiệm bộ dữ liệu mẫu huấn luyện được mô tả và tính toán cụ thể trong Bảng 3.1 sau:

Bảng 3.1. Kết quả phát hiện và theo dõi chuyển động của mắt người Số ảnh huấn luyện Tỷ lệ phát hiện(%) Thời gian thực hiện(s)

3 75 13.84

6 77 14.43

9 91 15.16

12 86 18.34

15 90 19.4

Trung bình 83.8%

Kết quả sau khi thực nghiệm phát hiện và theo dõi chuyển động của mắt người trên bộ dữ liệu mẫu tự tạo từ Bảng 3.1 ta thấy tỷ lệ trung bình trên tất cả các bộ dữ liệu là 83.8%.

3.6. Tiểu kết chương 3

Trong chương 3 chúng tôi đã thực hiện việc cài đặt và mô phỏng chương trình bằng ngôn ngữ lập trình Visual C++ 6.0 của Microsoft, sử dụng thư viện mã nguồn mở OpenCv của Intel để xây dựng hệ thống phát hiện và theo dõi chuyển động của mắt người.

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

Phát hiện và theo dõi chuyển động của mắt là một trong những đề tài nghiên cứu đang dành được nhiều sự quan tâm hiện nay. Có rất nhiều bài báo, các công trình nghiên cứu thử nghiệm về lĩnh vực này. Có rất nhiều phương pháp, kĩ thuật khác nhau. Mỗi phương pháp đều có những ưu nhược riêng của nó, không có phương pháp nào hoàn hảo cả. Có phương pháp phát hiện tốt trong trường hợp này, nhưng lại phát hiện kém trong những tình huống khác. Với những tình huống khác đó, lại đòi hỏi phương pháp khác phù hợp với nó.

1. Các kết quả đạt được

Hệ thống vẫn hoạt động tốt ở điều kiện thử nghiệm cho phép.

Trên cơ sở hệ thống đã hoàn tất, có thể phát triển, mở rộng thêm với nhiều ứng dụng hữu ích và lý thú khác phục vụ công tác học tập, nghiên cứu sâu hơn và ứng dụng thực tiễn.

2. Hạn chế của luận văn

Về vấn đề tốc độ hoạt động chung của hệ thống, do phụ thuộc vào nhiều yếu tố như: tốc độ của thiết bị nhận, tốc độ phân tích ảnh, tốc độ xử lý và ra quyết định, tốc độ dịch chuyển của đối tượng cần phát hiện và theo dõi mắt, ...

nên nhìn chung sẽ có nhiều vấn đề cần xem xét thêm tùy vào hướng phát triển và ứng dụng cụ thể của hệ thống.

Tín hiệu quả của hệ thống có thể được cải thiện tốt hơn bằng cách lập trình linh hoạt hơn và tối ưu về mã code, có tính đến các ưu tiên và xử lý tốt các tình huống ngoài ý muốn, không loại trừ xét đến các số liệu ghi nhận và thống kế để góp phần khắc phục và hoàn thiện hệ thống.

3. Hướng phát triển

Hệ thống cũng có thể phát triển theo hướng nhận dạng và theo dõi mắt của đối tượng, nghĩa là khi phát hiện được đối tượng, sẽ tiếp tục “huấn luyện”

trực tuyến để trích xuất ra được đặc trưng của đối tượng. Từ đó tiếp tục quan sát

và nhận dạng theo dõi mắt của đối tượng đó. Việc nhận dạng theo dõi mắt của đối tượng trong môi trường đa dạng sẽ là một vấn đề thú vị có thể được ứng dụng nhiều.

Hệ thống cũng có thể phát triển để lập trình theo hướng tích hợp vi mạch sử dụng ngôn ngữ lập trình hệ thống nhúng, hệ thống tích hợp trên vi mạch (SoC – System on Chip), ..., sẽ tạo ra một ứng dụng mang tính linh hoạt hơn, vì lúc đó hệ thống không còn nhất thiết phải chạy trên nền tảng máy tính. Nếu được thực hiện như vậy thì đề tài sẽ có tính ứng dụng linh hoạt cao hơn vào các lĩnh vực thực tế cuộc sống và các hoạt động khác.

Đây là một lĩnh vực hay, lý thú, có nhiều ứng dụng thực tế và bên cạnh đó vẫn có nhiều vấn đề cần hoàn thiện thêm. Vì khả năng có hạn và thời gian không nhiều cho nên luận văn không khỏi tránh những thiếu sót và nhầm lẫn. Xin Quý Thầy Cô và các anh chị học viên cũng như các bạn thông cảm. Mong rằng với những ai ham thích có hứng thú với hướng nghiên cứu này có thể chia sẽ với tôi để cùng nhau tiếp tục tìm hiểu, phát triển thêm để nâng cao tính hữu dụng thực tế cho đề tài. Đó cũng là một trong những mục tiêu chủ chốt và lợi ích của ngành học.

Lời cuối cùng kết lại của nội dung cuốn luận văn này, tôi xin chân thành cảm ơn đến tất cả quý thầy cô giáo, các anh chị học viên và các đồng nghiệp đã quan tâm góp ý giúp tôi hoàn thành.

Một phần của tài liệu Nghiên cứu nhận dạng và theo dõi chuyển động của mắt người (Trang 53 - 72)

Tải bản đầy đủ (PDF)

(72 trang)