Màn hình LCD theo dõi hoạt động của hệ thống

Một phần của tài liệu Thiết kế hệ thống cảnh báo tài xế ngủ gật trên ô tô – thi công, lắp đặt và thực nghiệm hệ thống (Trang 54)

45

4.3 Thiết kế thuật toán và phần mềm phát hiện ngủ gật

4.3.1 Thiết kế các thuật toán xác định trạng thái buồn ngủ của lái xe

Để giảm bớt sai số do nhận dạng từ tập ảnh, giải thuật toán được thiết kế tiến hành nhận dạng trực tiếp khn mặt, con ngươi, mí mắt,… kết hợp với những xử lý ảnh bổ sung trong những trường hợp khó khăn do đặc điểm của người lái xe cụ thể (ánh sáng phản chiếu khn mặt, màu da, tóc rủ, đội mũ,…). Với sự nhận dạng bổ sung các phần của đầu lái xe, quá trình nhận dạng sẽ nhanh hơn, tránh được những trường hợp xử lý kéo dài vì khó phân biệt hình ảnh.

4.3.1.1 Xác định khuôn mặt lái xe

Xác định gốc tọa độ khuôn mặt hay tư thế lái xe ở vị trí tiêu chuẩn khi phát hiện mặt ở vị trí ổn định. Trong xử lý ảnh thì gốc tọa độ của frame ảnh sẽ được biểu diễn theo hệ trục tọa độ sau (Hình 4.12):

Hình 4.12: Gốc tọa độ của frame ảnh trong hệ trục tọa độ

46

Ta gọi O0 (x, y) là gốc tọa độ khuôn mặt ở vị trí tiêu chuẩn của lái xe. Gốc tọa độ này sẽ được xác định khi lái xe ngồi vào vị trí lái xe trong khoảng thời gian 10 giây và vị trí tương đối ổn định (Hình 4.13).

Để xác định vị trí khn mặt lái xe cần dựa vào độ lệch của khn mặt tại vị trí hiện tại so với khn mặt ở vị trí tiêu chuẩn nhờ công thức sau:

Trục Ox biểu diễn cho trục ngang (bên trái, bên phải) ta có: ∆Fx1 = FLux − F0Lux; ∆Fx2 = FRux − F0Rux Trong đó:

∆Fx1 và ∆Fx2 là độ lệch của đầu lái xe so với vị trí tiêu chuẩn.

FLux: là tọa độ x của cạnh trên bên trái của khn mặt ở vị trí hiện tại. F0Lux: là tọa độ x của cạnh trên bên trái của khn mặt ở vị trí tiêu chuẩn. FRux: là tọa độ x của cạnh trên bên phải của khn mặt ở vị trí hiện tại. F0Rux: là tọa độ x của cạnh trên bên phải của khn mặt ở vị trí tiêu chuẩn. Nếu ∆Fx1 < width * α và ∆Fx2 < width * α thì khn mặt quay sang bên trái, với α = 0,25 là tỉ lệ độ lệch vị của khn mặt so với vị trí tiêu chuẩn do thực nghiệm có được (Hình 4.14).

Hình 4.14: Khn mặt quay sang trái

Nếu ∆Fx1 > width * α và ∆Fx2 > width * α thì khn mặt quay sang bên phải, với α = 0,25 là tỉ lệ độ lệch vị của khn mặt so với vị trí tiêu chuẩn do thực nghiệm có được (Hình 4.15).

47

Hình 4.15: Khn mặt đang quay sang bên phải

Trục Oy biểu diễn cho trục dọc (lên, xuống) nên:

∆Fy1 = FLdy − F0Ldy; ∆Fy2 = FRdy − F0Rdy Trong đó:

∆Fy1 và ∆Fy2là độ lệch của đầu lái xe so với vị trí tiêu chuẩn.

FLdy: là tọa độ y của cạnh dưới bên trái của khn mặt ở vị trí hiện tại. F0Ldy: là tọa độ y của cạnh dưới bên trái của khn mặt ở vị trí tiêu chuẩn. FRdy: là tọa độ x của cạnh dưới bên phải của khn mặt ở vị trí hiện tại. F0Rdy: là tọa độ x của cạnh dưới bên phải của khn mặt ở vị trí tiêu. Nếu ∆Fy1 < height * β và ∆Fy2 < height * β thì khn mặt hướng lên trên, ngửa ra phía sau, với β = 0,2 là tỉ lệ độ lệch vị của khn mặt theo trục Oy so với vị trí tiêu chuẩn do thực nghiệm có được (hình 4.16).

48

Nếu ∆Fy1 > height * β và ∆Fy2 > height * β thì khn mặt hướng cúi xuống dưới, ngửa ra phía sau, với β = 0,2 là tỉ lệ độ lệch vị của khn mặt theo trục Oy so với vị trí tiêu chuẩn do thực nghiệm có được (hình 4.17).

Hình 4.17: Khn mặt cúi xuống dưới

Trong trường hợp có nhiều khuôn mặt nằm trong vùng quan sát của camera, sử dụng thuật tốn tính tọa độ và diện tích những khn mặt phát hiện được sau đó xác định khn mặt lớn nhất, thực hiện thuật tốn tìm vùng mắt và xác định con ngươi trên khuôn mặt lớn nhất nhằm khử nhiễu những khn mặt ngồi phía sau hay bên cạnh lái xe.

Để tính diện tích khn mặt phát hiện được dùng cơng thức (Hình 4.18):

49

Trong đó:

Area: diện tích của khn mặt phát hiện được.

Face.width, Face.height: lần lượt là chiều rộng và chiều cao vùng khuôn mặt phát hiện được.

Sau khi xác định được khn mặt lớn nhất thì thực hiện thuật tốn tìm vùng mắt và con ngươi ở dưới.

4.3.1.2 Xác định vùng mắt, mí mắt và con ngươi

Dựa trên vùng mặt và vùng mũi sau khi phóng ảnh xác định được vùng mắt và con ngươi, từ đó xác định được trạng thái nhắm mở của mắt để đưa ra cảnh báo buồn ngủ trong trường hợp mắt nhắm.

Để xác định mắt nhắm hay mở trước tiên xác định được vùng mắt sau đó xác định con ngươi. Vị trí con ngươi khi mắt mở và mắt nhắm được mơ tả trên hình 4.19 và hình 4.20 với các thơng số đặc trưng.

Hình 4.19: Vị trí con ngươi trong trường hợp mắt đang mở

50

Dựa vào vùng mặt và vùng mũi phóng lớn thì cơng thức xác định vùng mắt được tính như sau: Chiều rộng và cao vùng mắt: He = Fheight * α * 0,01 We = Fwidth * β * 0,01 hoặc: He = Nheight * α * 0,01 We = Nwidth * β * 0,01 Trong đó: α = 35; β = 30

He; We lần lược là chiều cao, chiều rộng vùng mắt. Fheight; Fwidth lần lượt là chiều cao, chiều rộng vùng mặt.

Nheight; Nwidth lần lượt là chiều cao, chiều rộng vùng mũi phóng lớn để xác định vùng mặt.

Với α * 0,01 và β * 0,01 là tỉ lệ vùng mắt so với vùng mặt xác định được, tỉ lệ này có được nhờ thực nghiệm.

Xác định vị trí con ngươi theo tỉ lệ vùng mắt vừa xác định được. Nếu con ngươi nằm giữa vùng mí mắt trên tới chân mày thì mắt đang ở trạng thái đóng (nhắm mắt), nếu con ngươi nằm trong vùng mắt chứa con ngươi thì mắt đang ở trạng thái mở (Hình 4.21).

51

Hạn chế: Khoảng cách từ thiết bị tới vùng mắt phải gần khoảng từ 20cm – 30cm

thì độ chính xác lớn, do khoảng cách càng xa thì vùng con ngươi càng bé nên khơng thể phát hiện chính xác con ngươi.

Cách khắc phục: Có thể sử dụng lens để phóng lớn vùng mặt sau đó xác định

con ngươi để kết luận lái xe đang nhắm hay mở mắt đưa ra cảnh báo lái xe đang ngủ gật.

4.3.1.3 Xác định trạng thái gục đầu của lái xe theo thuật toán xác định vùng mũi

Trong trường hợp lái xe ngủ gục đầu thì khơng thể áp dụng thuật tốn tìm con ngươi để xác định xem lái xe đang ngủ hay thức vì khi ngủ gục vùng mắt đã bị khuất so với vùng quan sát của camera, khi đó vùng mũi vẫn nằm trong vùng quan sát của camera. Vì vậy, cần sử dụng thuật tốn tìm vùng mũi để xác định trạng thái ngủ gật của lái xe. Sau khi phát hiện được vùng mũi thì xác định được số lần gục đầu trong một khoảng thời gian nhất định thì cảnh báo lái xe ngủ gục sẽ được bật.

4.3.2 Thiết kế phần mềm phát hiện ngủ gật bằng các thuật toán đã đề xuất

Phần mềm nhúng được thiết kế hiện thực giải thuật lên thiết bị theo sơ đồ giải thuật tổng quát như sau (Hình 4.22).

Khi thiết bị được cấp nguồn, camera của thiết bị sẽ được khởi động và lấy hình ảnh về cho board xử lí chính, yêu cầu người lái xe giữ nguyên vị trí tiêu chuẩn trong 10 giây để xác định vị trí chuẩn của khn mặt so với thiết bị, Thuật toán phát hiện khuôn mặt sẽ chạy, kiểm tra điều kiện phát hiện khuôn mặt.

Trường hợp phát hiện được khuôn mặt: tiến hành thực hiện tìm kiếm vùng

mắt và xác định con ngươi trong vùng khuôn mặt vừa phát hiện được.

− Nếu xác định được vùng mắt và con ngươi: tiến hành kiểm tra mắt đang ở trạng thái nhắm hay mở nếu mắt đang ở trạng thái nhắm thì bật chế độ cảnh báo âm thanh, ngược lại quay về thực thi thuật tốn phát hiện khn mặt. − Khi không xác định được vùng mắt và con ngươi: Thực hiện thuật toán xác

định vị trí hiện tại của đầu người lái xe so với vị trí tiêu chuẩn ban đầu. Nếu vị trí hiện tại của đầu người lái xe đang nằm lệch trái, phải hoặc ngửa hay cúi

52

gục thì bật chế độ cảnh báo lái xe đang không tập trung. Ngược lại vị trí hiện tại của đầu người lái xe gần với vị trí tiêu chuẩn thì tiếp tục quay lại thực thi thuật tốn tìm kiếm khn mặt.

Trường hợp không phát hiện được khuôn mặt: Tiến hành thực thi thuật tốn

tìm kiếm vùng mũi (do vùng mũi là một trong những đặc trưng trên khuôn mặt có vị trí tỉ lệ bất biến trên khn mặt vậy nên trong trường hợp khuôn mặt bị che khuất một phần hoặc do nhiễu ánh sáng, ... dẫn đến thuật tốn phát hiện khn mặt bị nhiễu).

Trường hợp phát hiện được vùng mũi: Thực hiện xác định vùng mặt nhờ

thuật tốn phóng ảnh (từ tọa độ vùng mũi có được xác định được tọa độ vùng mặt), sau khi xác định được vùng mặt thực thi thuật toán tìm kiếm vùng mắt và con ngươi.

− Nếu xác định được vùng mắt và con ngươi: Tiến hành kiểm tra mắt đang ở trạng thái nhắm hay mở nếu mắt đang ở trạng thái nhắm thì bật chế độ cảnh báo âm thanh, ngược lại quay về thực thi thuật tốn phát hiện khn mặt. − Nếu không xác định được vùng mắt và con ngươi: Thực hiện thuật tốn xác

định vị trí hiện tại của đầu người lái xe so với vị trí tiêu chuẩn ban đầu. Nếu vị trí hiện tại của đầu người lái xe đang nằm lệch trái, phải hoặc ngửa hay cúi gục thì bật chế độ cảnh báo lái xe đang khơng tập trung. Ngược lại vị trí hiện tại của đầu người lái xe gần với vị trí tiêu chuẩn thì tiếp tục quay lại thực thi thuật tốn tìm kiếm khn mặt.

53

Hình 4.22: Lưu đồ chương trình tổng quát phát hiện buồn ngủ của lái xe

Trường hợp không phát hiện được vùng mũi: Thực thi thuật toán phát hiện

vùng tai để xác định lái xe đang không tập trung.

Trường hợp phát hiện được vùng tai (vùng tai trái hoặc phải) trong một

khỗng thời gian nhất định thì bật chế độ cảnh báo âm thanh báo lái xe đang không tập trung.

54

Ngược lại không phát hiện được vùng tai thì thực thi lại thuật tốn tìm kiếm

khn mặt.

Ghi chú: Khoảng thời gian nhất định ở đây nhằm giảm nhiễu tránh trường hợp có nhiều phát hiện trạng thái không tập trung hoặc ngủ gật đã bật cảnh báo âm thanh.

Lưu đồ thuật tốn xác định vị trí hiện tại của đầu người lái xe so với vị trí tiêu chuẩn trình bày trên Hình 4.23.

Khi thuật tốn xác định vị trí hiện tại của đầu người lái xe được gọi, chương trình sẽ thực hiện tìm kiếm khn mặt xác định vị trí hiện tại. Trong đó X là độ lệch giữa vị trí hiện tại của đầu người lái xe so với vị trí tiêu chuẩn theo trục Ox để xác định lệch trái hay phải, Y độ lệch giữa vị trí hiện tại của đầu người lái xe so với vị trí tiêu chuẩn theo trục Oy để xác định lái xe gục hay ngửa đầu ra sau,biến a và b là hai giá trị ngưỡng độ lệch từ thực nghiệm có được.

55

Nếu độ lệch X lớn hơn ngưỡng a = width * α (width là chiều rộng của khn mặt; α = 0,25 được tính ở trên) thì đưa ra cảnh báo lái xe khơng tập trung, ngược lại tiếp tục thực hiện thuật tốn phát hiện khn mặt.

Nếu độ lệch Y lớn hơn ngưỡng b = height * β (height là chiều cao của khn mặt; β = 0,2 được tính ở trên) thì đưa ra cảnh báo lái xe không tập trung, ngược lại tiếp tục thực hiện thuật tốn phát hiện khn mặt.

Lưu đồ thuật toán xác vùng mặt từ thuật tốn phát hiện vùng mũi trình bày trên Hình 4.24.

56

Khi thuật toán phát xác định vùng mặt từ thuật tốn phát hiện vùng mũi được gọi, thì sau khi xác định được tọa độ vùng mũi từ tọa độ vùng mũi này sẽ được tính tốn theo các công thức đã nêu ở phần trên để xác định tọa độ vùng mặt nhằm mục đích từ vùng mặt này xác định vùng mắt và con ngươi.

Trường hợp xác định thành công vùng mắt và con ngươi: Kiểm tra trạng thái mắt người lái xe đang nhắm hay mở. Nếu mắt nhắm đưa ra cảnh báo lái xe đang ngủ gật ngược lại chuyển qua thuật tốn phát hiện khn mặt.

Trường hợp xác định vùng mắt và con ngươi khơng thành cơng chuyển qua thuật tốn xác định vùng tai.

Lưu đồ thuật toán xác định vùng mắt và con ngươi trình bày trên Hình 4.25.

Hình 4.25: Lưu đồ thuật tốn xác định vùng mắt và con ngươi

Do vùng mắt là một trong những đặc trưng của khn mặt nên vị trí vùng mắt có tỉ lệ nhất định trên vùng mặt, vì vậy, sau khi xác định được vùng mặt nhờ thuật toán phát hiện khn mặt, việc xác định vùng mắt được tính tốn theo các cơng thức đã nêu ở phần trên. Sau đó xác định vị trí con ngươi xác định trạng thái mắt đang nhắm hay mở nếu mắt nhắm đưa ra cảnh báo, ngược lại tiếp tục thực thi thuật toán phát hiện mặt.

57 4.4 Cài đặt phần mềm vào bộ xử lý trung tâm

− Tiến hành Cài đặt chương trình (Hình 4.26).

Hình 4.26: Cài đặt chương trình

− Xây dựng và nạp code xuống thiết bị (Hình 4.27 và Hình 4.28).

58

Hình 4.28: Nạp code xuống thiết bị

− Chạy chương trình, trên màn hình máy tính hiển thị (Hình 4.29).

59

Hình ảnh thực nghiệm và kết quả ghi nhận trong code chương trình trên màn hình máy tính (Hình 4.30):

Hình 4.30: Hình ảnh và Code xác định trạng thái của tài xế 4.5 Kết luận 4.5 Kết luận

Đề tài lựa chọn thiết kế tổng thể, phân tích các yêu cầu kỹ thuật, cấu hình và chức năng của thiết bị. Thiết kế thuật toán xác định trạng thái buồn ngủ thông qua xác định khn mặt, xác định vùng mắt, mí mắt và con ngươi, xác định trạng thái gục đầu qua vùng mũi và thiết kế phần mềm phát hiện ngủ gật của tài xê ô tô.

Đưa các thiết bị phần cứng để sử dụng cho mơ hình thử nghiệm hệ thống, cũng như đã đưa ra các yêu cầu giải thuật để phục vụ quá trình tạo cơ sở dữ liệu phần mềm, đảm bảo hệ thống hoạt động đạt được mục tiêu đề ra ban đầu.

60 Chương 5

THI CÔNG, LẮP RÁP VÀ THỰC NGHIỆM

5.1 Thi công lắp ráp hệ thống cảnh báo tài xế ngủ gật lên xe ô tô 5.1.1 Lắp camera hồng ngoại 5.1.1 Lắp camera hồng ngoại

Hình 5.1: Lắp camera hồng ngoại 5.1.2 Lắp màn LCD theo dõi hoạt động của hệ thống 5.1.2 Lắp màn LCD theo dõi hoạt động của hệ thống

Hình 5.2: Lắp màn hình LCD 5.1.3 Lắp khối cảnh báo âm thanh 5.1.3 Lắp khối cảnh báo âm thanh

61 5.1.4 Lắp bộ xử lý trung tâm

Hình 5.4: Lắp bộ xử lý trung tâm 5.1.5 Vị trí lấy nguồn 5.1.5 Vị trí lấy nguồn

Hình 5.5: Vị trí lấy nguồn hệ thống 5.1.6 Mơ hình sau khi lắp hồn thiện 5.1.6 Mơ hình sau khi lắp hồn thiện

Hình 5.6: Mơ hình hệ thống sau khi lắp đặt hoàn thiện Bộ xử lý trung tâm Bộ xử lý trung tâm

62 5.2 Xây dựng các trường hợp thực nghiệm

Để kiểm tra thiết bị cảnh báo trạng thái buồn ngủ của lái xe cần phải xây dựng các trường hợp hợp lý cho phép đánh giá đầy đủ các thông số của máy theo các tiêu

Một phần của tài liệu Thiết kế hệ thống cảnh báo tài xế ngủ gật trên ô tô – thi công, lắp đặt và thực nghiệm hệ thống (Trang 54)

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

(99 trang)