Cách thức nhận diện và tạo tín hiệu cảnh báo

Một phần của tài liệu Ứng dụng xử lý ảnh trong nhận diện điều khiển ô tô (Trang 36 - 41)

3.3.1 Thu nhận hình ảnh và tiền xử lý

Hình 3.5 miêu tả camera thu nhận hình ảnh. Hình ảnh đầu vào được thu nhận, sau đó phân tách video thành các khung hình và chuyển tất cả hình ảnh về thang độ xám.

22

Hình 3.5: Mơ phỏng camera thu nhận hình ảnh (Nguồn internet)

Cơng nghệ được sử dụng:  Ngơn ngữ lập trình Python.

 Thư viên mã nguồn mở OpenCV 3.0+.

3.3.2 Nhận diện

a. Nhận diện khn mặt

Khởi tạo bộ dị tìm khn mặt.

Mã nguồn mở OpenCV đã tích hợp nhiều phân loại phục vụ cho việc huấn luyện nhận dạng khuôn mặt, mắt, nụ cười...

Ở hình 3.6 chương trình OpenCV đang thực hiện quét khuôn mặt để cho ra dữ liệu.

23

Hình 3.6: Ứng dụng OpenCV qt khn mặt (Nguồn internet) b. Thực hiện dị tìm khn mặt

Phương pháp nhận diện khuôn mặt dựa vào đặc trưng Haar-like kết hợp Adaboost được cài sẵn trong bộ thư viện OpenCV. Để sử dụng phương pháp này trong OpenCV, chương trình đã sử dụng hàm DetectMultiScale. [4]

Ở hình 3.7 đang thực hiện dị tìm khn mặt để bắt đầu thực hiện chương trình.

24

Hàm DetectMultiScale sau khi tìm kiếm xong sẽ trả về bộ giá trị gồm tọa độ gốc của khung chứa khuôn mặt x,y, chiều dài, rộng của khung w,h. Các giá trị này nằm trong mảng faces. Sử dụng cấu trúc lặp để duyệt qua toàn bộ giá trị này, với mỗi bộ giá trị ta dùng hàm rectangle để vẽ một hình chữ nhật lên ảnh ban đầu img với tọa độ 2 điểm trái trên và phải dưới: (x,y), (x+w, y+h).(0,255,0) là màu sẽ vẽ hình chữ nhật. [4]

c. Nhận dạng đôi mắt

Sau khi xác định được khn mặt, việc tìm kiếm mắt được thực hiện trên các khn mặt, việc tìm kiếm mắt được thực hiện trên các khn mặt đã tìm thấy chứ khơng phải qt tồn bộ ảnh ban đầu như tìm kiếm mặt. Tương tự, tìm kiếm và vẽ khung hình chữ nhật chứa mắt với một màu khác. [4]

Ở hình 3.8 camera đang nhận dạng đơi mắt và truyền dữ liệu về cho thiết bị.

Hình 3.8: Mơ phỏng hệ thống cảnh báo ngủ gật trên xe Lexus (Nguồn internet) 3.3.3 Cảnh báo

a. Phát hiện trạng thái nhấp nháy của mắt

Để phát hiện trạng thái nháy mắt cần biết trạng thái hiện tại của mắt là đang mở hay nhắm (open/closed).

25

Trong hệ thống này, q trình đó sẽ được thực hiện như sau:

 Nếu đôi mắt thay đổi từ trạng thái nhắm mắt sang mở mắt, thì hệ thống sẽ xác định đó là một cái nháy mắt.

 Và nếu trạng thái của mắt liên tục nhắm trong một khoảng thời gian nhất định thì mắt sẽ được phát hiện là nhắm. [4]

OpenCV hỗ trợ một số bộ phận traning có thể phát hiện đơi mắt trong hai trạng thái khác nhau:

 Phát hiện mắt ở trạng thái nhắm hoặc mở.  Chỉ phát hiện mắt ở trạng thái đang mở.

b. Phát hiện và cảnh báo

Chương trình sẽ thực hiện thuật tốn xác định trạng thái nháy mắt trên suốt thời gian thực để có thể cảnh báo nếu người lái xe rơi vào trạng thái buồn ngủ hay mất tập trung. Bất cứ khi nào phát hiện người lái xe đang nhắm mắt hẳn, hệ thống sẽ kích hoạt âm thanh cảnh báo và đồng thời tiếp tục theo dõi. Sau đó trạng thái mở mắt của người lái xe được phát hiện trở lại, chương trình sẽ ngừng tiếp tục theo dõi. [4]

26

Hình 3.9 thể hiện quá trình hoạt động của camera cho đến lúc phát tín hiệu cảnh báo.

 Bước 1: Camera quét khuôn mặt.

 Bước 2: Thiết bị sẽ tách hình ảnh thu được thành các khung hình.  Bước 3: Nhận dạng khuôn mặt, mắt.

 Bước 4: Tạo điểm cho khuôn mặt và mắt.  Bước 5: Xác định các trạng thái mệt mỏi.  Bước 6: Phát tín hiệu cảnh báo.

Một phần của tài liệu Ứng dụng xử lý ảnh trong nhận diện điều khiển ô tô (Trang 36 - 41)

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

(181 trang)