Hướng dẫn sử dụng eyeLike: Công cụ theo dõi đồng tử thông minh dựa trên OpenCV
eyeLike là một công cụ thực hiện theo dõi đồng tử qua webcam dựa trên OpenCV, sử dụng thuật toán gradient hình ảnh do Fabian Timm đề xuất để phát hiện và định vị trung tâm đồng tử mắt người. Bài viết này sẽ giới thiệu chi tiết các tính năng, bước cài đặt và ứng dụng thực tế của công cụ mã nguồn mở này, giúp bạn nhanh chóng bắt đầu với công cụ thị giác máy tính mạnh mẽ này.
eyeLike: Tính năng cốt lõi và Nguyên lý kỹ thuật
Điểm mạnh cốt lõi của eyeLike nằm ở thuật toán theo dõi trung tâm đồng tử chính xác. Công cụ này phân tích sự thay đổi gradient của hình ảnh mắt, có thể định vị trung tâm đồng tử theo thời gian thực, cung cấp dữ liệu cơ sở cho nghiên cứu theo dõi chuyển động mắt. Dự án chủ yếu thực hiện các chức năng quan trọng sau:
- Phát hiện mắt thời gian thực: Sử dụng phân loại cấp độ Haar nhanh chóng nhận diện vùng mặt và mắt
- Định vị trung tâm đồng tử: Tính toán chính xác điểm trung tâm đồng tử dựa trên thuật toán gradient hình ảnh
- Hỗ trợ đa nền tảng: Tương thích với các hệ điều hành Linux, macOS và Windows
Về mặt kỹ thuật, eyeLike chủ yếu dựa vào thư viện thị giác máy tính OpenCV, thuật toán cốt lõi được thực hiện trong các tệp src/findEyeCenter.cpp và src/findEyeCorner.cpp. Dự án sử dụng hệ thống xây dựng CMake để đảm bảo tính nhất quán biên dịch đa nền tảng.
Yêu cầu hệ thống và Chuẩn bị cài đặt
Trước khi bắt đầu cài đặt eyeLike, hãy đảm bảo hệ thống của bạn đáp ứng các yêu cầu sau:
- Trình biên dịch hỗ trợ tiêu chuẩn C++11 trở lên
- OpenCV phiên bản 2.4 hoặc cao hơn
- CMake phiên bản 3.0 hoặc cao hơn
- Webcam (có tích hợp hoặc bên ngoài)
Bạn có thể lấy mã nguồn dự án thông qua lệnh sau:
git clone https://gitcode.com/gh_mirrors/ey/eyeLike
cd eyeLike
️ Bước cài đặt nhanh
Cài đặt trên Linux/macOS
Đối với người dùng Linux hoặc macOS, nên sử dụng Make để xây dựng:
# Tạo thư mục build
mkdir build
cd build
# Tạo Makefile
cmake ../
# Biên dịch dự án
make
# Chạy tệp thực thi
./bin/eyeLike
Phương pháp riêng cho người dùng macOS XCode
Nếu bạn là người dùng macOS và thích sử dụng môi trường phát triển XCode, có thể thực hiện các lệnh sau:
mkdir build
./cmakeBuild.sh
Sau đó, tìm và mở tệp dự án XCode trong thư mục build, bạn có thể biên dịch và chạy chương trình trong XCode.
Cài đặt trên Windows
Người dùng Windows cần sử dụng CMake để tạo tệp dự án tương ứng, các bước cụ thể như sau:
- Cài đặt CMake và thêm vào biến môi trường hệ thống
- Mở dấu nhắc lệnh, điều hướng đến thư mục dự án
- Thực hiện các lệnh cmake tương tự như trên Linux để tạo dự án Visual Studio
- Mở dự án bằng Visual Studio và biên dịch
Hướng dẫn sử dụng và Trình diễn chức năng
Sau khi chạy eyeLike, chương trình sẽ tự động khởi động webcam và bắt đầu theo dõi mắt thời gian thực. Bạn sẽ thấy nhiều cửa sổ gỡ lỗi, bao gồm:
- Hình ảnh webcam gốc
- Kết quả phát hiện khuôn mặt
- Cận cảnh vùng mắt
- Đánh dấu điểm trung tâm đồng tử
Các cửa sổ này minh họa cách thuật toán từ hình ảnh gốc dần dần định vị và theo dõi điểm trung tâm đồng tử. Hiện tại, eyeLike vẫn chưa có thể thực hiện chức năng theo dõi ánh mắt (gaze tracking) đầy đủ, nhưng nó đã có thể phát hiện ổn định điểm trung tâm đồng tử, cung cấp nền tảng vững chắc cho các phát triển tiếp theo.
Phát triển nâng cao và Mở rộng
Cấu trúc dự án eyeLike rõ ràng, các tệp mã nguồn chính nằm trong thư mục src/, bao gồm:
- src/main.cpp: Điểm nhập của chương trình, xử lý đầu vào webcam và hiển thị cửa sổ
- src/findEyeCenter.cpp: Thuật toán phát hiện trung tâm đồng tử cốt lõi
- src/findEyeCorner.cpp: Thực hiện phát hiện góc mắt
- src/helpers.cpp: Các hàm chức năng hỗ trợ
- src/constants.h: Định nghĩa hằng số dự án
Nếu bạn muốn mở rộng chức năng của eyeLike, có thể xem xét các hướng sau:
- Thêm ước tính tư thế đầu, thực hiện theo dõi chuyển động mắt không gian ba chiều
- Tối ưu hóa thuật toán để tăng cường khả năng chống chịu trong các điều kiện ánh sáng khác nhau
- Tích hợp mô hình học sâu, nâng cao độ chính xác phát hiện đặc điểm mắt
Tài liệu thuật toán thuật toán
Thuật toán cốt lõi của eyeLike dựa trên kết quả nghiên cứu của Fabian Timm và Erhardt Barth:
Timm and Barth. Accurate eye centre localisation by means of gradients. In Proceedings of the Int. Conference on Computer Theory and Applications (VISAPP), volume 1, pages 125-130, Algarve, Portugal, 2011. INSTICC.
Bạn có thể tìm hiểu thêm về chi tiết thực hiện thuật toán qua các bài viết blog của dự án.
Phát triển tương lai và Đóng góp cộng đồng
Hiện tại eyeLike vẫn đang trong giai đoạn phát triển, mặc dù hiệu quả theo dõi trung tâm đồng tử đã tốt, nhưng vẫn chưa thực hiện chức năng theo dõi ánh nhìn đầy đủ. Tác giả dự án đang tìm kiếm sự giúp đỡ từ cộng đồng, đặc biệt ở các lĩnh vực sau:
- Phương pháp ước tính tư thế đầu
- Thuật toán theo dõi điểm tham chiếu
- Tính toán điểm nhìn màn hình
Nếu bạn có kinh nghiệm hoặc ý tưởng liên quan, hãy tham gia đóng góp qua kho dự án, cùng thúc đẩy sự phát triển của công cụ mã nguồn mở này.