Tải bản đầy đủ (.pdf) (25 trang)

Phát triển một số kỹ thuật phát hiện lái xe ngủ gật dựa trên trạng thái mắt và hành vi gật lắc (tt)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.56 MB, 25 trang )

1

MỞ ĐẦU
1. Phát biểu vấn đề và mục tiêu nghiên cứu
Tai nạn giao thông là một vấn nạn đe dọa nghiêm trọng tính mạng con
người, không chỉ là vấn nạn ở Việt Nam ta mà là một hiện tượng mang
tính toàn cầu. Nhiều nghiên cứu trên thế giới cho thấy rằng một trong
những nguyên nhân chính gây ra tai nạn giao thông là do lái xe ngủ gật.
Ngủ gật là hành vi do sự mệt mỏi của cơ thể, có biểu hiện đầu gục
xuống giống như tư thế cúi gằm mặt, mắt lim dim trong giây lát, rồi bất
chợt tỉnh lại; trong khoảng thời gian ngắn ngủi ấy, cơ thể rơi vào trạng
thái vô thức, tài xế mất đi khả năng điều khiển xe, chạy không ổn định,
lấn làn; và lái xe không kịp phản xạ để tránh tình huống nguy hiểm khi
tới gần chướng ngại vật hoặc phương tiện giao thông khác.
Hiện nay, việc sử dụng các hệ thống trợ giúp theo dõi mức độ cảnh
giác của lái xe và cảnh báo lái xe lúc mệt mỏi, ngủ gật được đặc biệt
quan tâm nhằm giảm thiểu vấn nạn này. Tuy nhiên, việc phát hiện lái xe
ngủ gật gặp khó khăn khi mặt người trong tình trạng nghiêng so với
camera thu nhận. Ngoài ra, trạng thái lắc lư của xe hay chớp mắt của lái
xe càng gây khó khăn cho việc giải quyết bài toán này.
Do đó, để góp phần làm giảm thiểu tai nạn giao thông do tình trạng
ngủ gật của lái xe, tác giả chọn nghiên cứu đề tài “Phát triển một số kỹ
thuật phát hiện lái xe ngủ gật dựa trên trạng thái mắt và hành vi gật
lắc” để thực hiện Luận án này bởi vì một hệ thống phát hiện buồn ngủ
hiệu quả và thân thiện có thể giúp dành lại cuộc sống cho nhiều người
và làm cho thế giới trở thành một nơi tốt hơn để sống..
Mục tiêu của Luận án này là phát triển một số kỹ thuật phát hiện hỗ
trợ đánh thức lái xe trong trạng thái ngủ gật dựa trên nền tảng các kỹ
thuật thị giác máy tính.
2. Các công trình liên quan
Gần đây, các phương pháp phát hiện buồn ngủ sử dụng trí tuệ nhân


tạo đã và đang được nhiều nhà nghiên cứu đặc biệt quan tâm nhằm tích
hợp cơ chế tự động phát hiện ngủ gật và cảnh báo lái xe, ngăn ngừa tai
nạn xảy ra. Các phương pháp phát hiện được chia thành ba nhóm chính:
(1) Dựa vào phương tiện; (2) Dựa vào hành vi của lái xe; và (3) Dựa vào


2

sinh lý của lái xe.
a) Phương pháp dựa vào phương tiện
Các phương pháp thuộc loại này sử dụng các cảm biến đặt ở các
thành phần của xe như vô-lăng, bàn đạp ga để đo lường một số đại lượng
như: độ lệch khỏi vị trí làn đường, khoảng cách giữa xe của lái xe và xe
trước nó, chuyển động của vô-lăng, áp lực lên bàn đạp ga, v.v... Các đại
lượng này được giám sát một cách liên tục để có thể thực hiện cảnh báo
khi có sự thay đổi nào vượt ngưỡng cho phép.Tuy nhiên, chúng phụ
thuộc chất lượng đường, ánh sáng, và chỉ có thể hoạt động tốt trong các
tình huống hạn chế. Và, các hệ thống này không thể phát hiện được sự
buồn ngủ khi nó chưa ảnh hưởng đến tình trạng của xe.
b) Phương pháp dựa vào tín hiệu sinh lý của lái xe
Nhóm này sử dụng các tín hiệu điện não đồ (EEG) và điện tâm đồ
(ECG) để phát hiện buồn ngủ; trong đó, ECG là tín hiệu sinh lý được sử
dụng phổ biến nhất. Ngoài ra, nhịp tim và độ biến thiên nhịp tim cũng
thường được sử dụng để phát hiện buồn ngủ.
c) Phương pháp dựa vào hành vi của lái xe
Các phương pháp thuộc nhóm này sử dụng ánh sáng hồng ngoại (IR)
và ánh sáng ban ngày trong các hệ thống giám sát gương mặt bằng cách
ghi lại những hình ảnh từ vẻ mặt của người lái xe và chiết xuất ra các
triệu chứng của sự mệt mỏi và mất tập trung từ mắt, miệng và đầu như:
tỷ lệ phần trăm đóng mí mắt theo thời gian (PERCLOSE), khoảng cách

mí mắt tỷ lệ chớp mắt, tốc độ chớp mắt, hướng ánh mắt, sự chuyển động
đột ngột của mắt, ngáp, gật đầu, hướng đầu, v.v… do đó, chúng không
gây khó chịu hay xáo trộn nào đối với lái xe.
3. Đối tượng, phạm vi và phương pháp nghiên cứu
a) Đối tượng nghiên cứu của Luận án: trạng thái (hành vi) ngủ gật,
dựa trên trạng thái mắt và hành vi gật lắc đầu của lái xe.
b) Phạm vi nghiên cứu: đầu vào là ảnh đã tiền xử lý và phương pháp
xử lý là trên cơ sở thị giác máy tính.
c) Phương pháp: Để phát hiện lái xe buồn ngủ, Luận án đề xuất thuộc
nhóm dựa vào trạng thái lái xe sử dụng thị giác máy tính. Các kỹ thuật
phát hiện buồn ngủ được phát triển trong Luận án này bao gồm:


3

• Kỹ thuật dựa vào trạng thái mắt;
• Kỹ thuật dựa vào hành vi gật lắc đầu;
• Kỹ thuật kết hợp dựa vào trạng thái mắt và hành vi gật lắc.
Việc phát triển kỹ thuật dựa trên hành vi gật lắc cần có phương pháp ước
lượng hướng đầu. Phương pháp ước lượng hướng đầu đề xuất trong
Luận án được thiết kế dựa trên kỹ thuật xác định vị trí khuôn mặt người,
kết hợp với giải thuật Mô hình ngoại quan tích cực (Active Appearance
Model - AAM) và Mô hình pháp tuyến khuôn mặt. Khi ngủ gật thì
hướng đầu thường ở trạng thái nghiêng, tức là khuôn mặt không thẳng
với camera thu nhận. Đây là một vấn đề thách thức cần được giải quyết
mới có thể phát hiện ngủ gật một cách hiệu quả. Để giải quyết vấn đề
này, Luận án đề xuất việc kết hợp kỹ thuật ước lượng hướng đầu dựa
trên Mô hình pháp tuyến khuôn mặt.
Luận án này đề xuất kỹ thuật phát hiện lái xe ngủ gật bằng cách kết
hợp hai kỹ thuật: dựa vào trạng thái mắt và dựa vào hành vi gật lắc. Kỹ

thuật kết hợp này được thực hiện sau khi xác định được mối quan hệ
giữa các yếu tố như trạng thái mắt, hành vi gật lắc và trạng thái ngủ gật
bằng cách phân tích thống kê dùng mô hình hồi qui tuyến tính và hồi qui
logistic nhị phân. Hệ thống tích hợp kỹ thuật kết hợp này của Luận án
có thể phát hiện chính xác cao trạng thái ngủ gật của lái xe.
4. Bố cục của Luận án
Ngoài phần Mở đầu giới thiệu chung và phần Kết luận về đề tài nghiên
cứu, nội dung chính của Luận án này được trình bày trong 4 chương:
• Chương 1 – Tổng quan
• Chương 2 – Kỹ thuật phát hiện trạng thái mắt và ngủ gật
• Chương 3 – Kỹ thuật phát hiện hành vi gật lắc và trạng thái ngủ gật;
• Chương 4 – Hệ thống tích hợp phát hiện lái xe trong trạng thái ngủ
gật;


4

CHƯƠNG 1 – CƠ SỞ LÝ THUYẾT VỀ KỸ THUẬT
PHÁT HIỆN LÁI XE NGỦ GẬT
1.1 Tổng quan về kỹ thuật phát hiện lái xe ngủ gật
1.1.1 Sinh lý giấc ngủ và hành vi ngủ gật
Ngủ là tình trạng cơ thể nghỉ ngơi, tự tu bổ để phục hồi. Ngủ đầy đủ
đem lại cảm giác khoẻ mạnh sảng khoái vào buổi sáng, đầu óc minh mẫn,
sáng suốt. Ngược lại, thiếu ngủ làm ta cảm thấy mệt mỏi, dễ nhầm lẫn,
trí nhớ kém, trở nên khó chịu, cáu gắt, năng suất làm việc kém, quan hệ
với người chung quanh cũng trở nên khó khăn. Đặc biệt là sự xuất hiện
của hành vi ngủ gật.
Theo quan điểm sinh lý học và tâm lý học, các khái niệm của sự mệt
mỏi và buồn ngủ là khác nhau, nhưng trong cơ sở lý thuyết liên quan
trong lĩnh vực công nghệ thông tin, mệt mỏi và buồn ngủ là những thuật

ngữ đồng nghĩa. Cho tới nay, chưa có một định nghĩa chính xác và khoa
học nào cho khái niệm “sự mệt mỏi”; do đó, không có bất kỳ tiêu chí
định lượng để đo lường nó. Tuy vậy, nhiều nghiên cứu đã chỉ ra mối liên
hệ giữa sự mệt mỏi/buồn ngủ và nhiệt độ cơ thể, mắt chuyển động, nhịp
thở, nhịp tim và hoạt động của não, và có mối quan hệ chặt chẽ giữa mệt
mỏi và tỷ lệ đóng mắt, v.v...
1.1.2 Các phương pháp phát hiện ngủ gật
Hiện nay, có nhiều loại công nghệ có thể phát hiện sự mệt mỏi và
ngủ gật của lái xe. Người ta thường dùng các camera để giám sát hành
vi của một người nói chung và của lái xe nói riêng; chẳng hạn như vị trí
con ngươi, ngáp, vị trí đầu, bản đồ mắt (eye map) và đường viền miệng
(mouth contour), và một loạt các yếu tố khác. Các phương pháp phát
hiện buồn ngủ có thể được chia thành ba nhóm chính: (1) Dựa vào
phương tiện; (2) Dựa vào hành vi; và (3) Dựa vào sinh lý. Cụ thể là:
a) Các phương pháp dựa vào phương tiện
Một vài đại lượng đo lường như độ lệch khỏi vị trí làn đường, chuyển
động của vô-lăng, áp lực trên bàn đạp tăng tốc, v.v... được giám sát một
cách liên tục. Bất kỳ sự thay đổi nào vượt ngưỡng cho phép sẽ báo hiệu
khả năng xảy ra tình trạng lái xe ngủ gật.
b) Các phương pháp dựa vào hành vi


5

Các hành vi của lái xe như ngáp, đóng cửa mắt, mắt nhấp nháy, đầu
nghiêng, v.v... được giám sát thông qua một máy ảnh và chương trình
điều khiển sẽ có tín hiệu cảnh báo nếu bất cứ triệu chứng buồn ngủ được
phát hiện.
c) Các phương pháp dựa vào sinh lý
Buồn ngủ được phát hiện thông qua xung nhịp mạch máu, nhịp tim

và thông tin điện não. Các kỹ thuật cơ bản thường được dùng trong việc
phát hiện buồn ngủ gồm có: ECG & EEG, Chuyển động của vô-lăng,
Kỹ thuật quang học, và Kỹ thuật thống kê.
1.1.3 Các bài toán liên quan đến phát hiện ngủ gật
Trong phạm vi nghiên cứu của đề tài, Luận án xem xét hai kỹ thuật
chính: (1) nhận dạng trạng thái mắt; và (2) phát hiện hành vi gật lắc. Để
thực hiện được hai kỹ thuật đó, Luận án cần xem xét đến hai bài toán
liên quan như: (1) phát hiện khuôn mặt; và (2) phát hiện mắt. Các bài
toán này liên hệ với nhau trong hệ thống phát hiện lái xe trong trạng thái
ngủ gật như Hình 2.1.


6

Hình 2.1: Hệ thống nhận dạng trạng thái ngủ gật
Hình ảnh đầu vào được thu nhận qua một trong các loại camera: (1)
loại camera ống chuẩn CCIR; (2) loại camera số hoá; (3) loại camera
quét dòng. Chất lượng của ảnh phụ thuộc nhiều vào chất lượng camera,
môi trường xung quanh (ánh sáng, sự vật, thời gian, v.v...).
Sau khi được thu nhận, hình ảnh sẽ được đưa vào bộ tiền xử lý để
nâng cao chất lượng nhằm giúp cho việc tìm kiếm các đặc trưng yêu cầu
được dễ dàng hơn và chính xác hơn. Trong giai đoạn tiền xử lý, kích cỡ
giữa ảnh trong cơ sở dữ liệu và ảnh cần tìm cũng như vị trí, tư thế ảnh
mặt sẽ được chuẩn hóa, độ sáng/tối của ảnh cũng được hiệu chỉnh phù
hợp; nhiễu sẽ được lọc tối đa, v.v...
Trích chọn đặc trưng là kỹ thuật sử dụng các thuật toán để lấy ra
những thông tin cơ bản của mặt người để hệ thống có thể phát hiện chính
xác đâu là mặt người trong ảnh. Sau khi phát hiện được khuôn mặt người,
Luận án sẽ xác định vị trí mắt thông qua bài toán phát hiện mắt người
trong ảnh cũng như xác định được trạng thái đóng/mở của mắt. Cũng từ

trạng thái mắt đã được xác định, Luận án có thể thiết lập các thông số
liên quan để xác định xem lái xe có rơi vào tình trạng ngủ gật hay không.
Đồng thời, hệ thống sẽ xác định hướng mặt của lái xe để phát hiện hành
vi gật lắc. Hệ thống sẽ đưa ra cảnh báo tình trạng ngủ gật khi một trong
ba tình huống sau xảy ra:
• Mắt rơi vào trạng thái ngủ gật bất kể sự thay đổi của hướng mặt;
• Có sự thay đổi hướng mặt đột ngột trong khi mắt vẫn trong trạng thái
mở; điều này xảy ra khi lái xe rơi vào trạng thái “ngủ trong ruột”;
• Việc kết hợp trạng thái mắt và hành vi gật lắc đạt đến một ngưỡng
được đặt ra cho việc xác định trạng thái ngủ gật.
1.2 Một số vấn đề lý thuyết cơ sở
1.2.1 Nhận dạng mẫu
Tất cả các đối tượng (phần tử) có cùng chung một số tính chất đặc
trưng điển hình và được nhóm lại thành các “lớp”. Các tính chất đặc
trưng đó được thể hiện thông qua một phần tử đại diện để phản ánh các
phần tử khác trong lớp đó, được gọi là “mẫu”. Vậy, “nhận dạng” chính


7

là quá trình phân loại các đối tượng được biểu diễn theo một mô hình
nào đó và gán chúng một tên dựa theo những quy luật và mẫu chuẩn.
1.2.2 Các bước cơ bản trong xây dựng hệ nhận dạng
Hệ nhận dạng trong khoa học máy tính được thực hiện trên một số
bước cơ bản như: (1) mã hóa mỗi đại lượng vật lý đo được từ một đối
tượng cần được nhận dạng thành một bộ các dấu hiệu đặc trưng cho dạng
và dạng sẽ được đồng nhất với một bộ các dấu hiệu đặc trưng cho chúng;
(2) Sau khi dạng được mã hóa, lựa chọn các dấu hiệu đặc trưng điển
hình, loại bỏ các dấu hiệu phụ để giảm bớt kích thước của dạng cũng
như mức độ phức tạp trong tính toán; (3) Đánh giá các thông số đặc

trưng của dạng để có thể xác định dạng của đối tượng trước khi tiến hành
so khớp để nhận dạng chính xác.
1.2.3 Các khái niệm cơ sở
a) Không gian biểu diễn dạng (X): là tập hợp các dạng có thể có (có thể
là hữu hạn hoặc vô hạn) của đối tượng.
b) Không gian diễn dịch: là tập hợp các tên gọi của các dạng được xác
định trong không gian biểu diễn dạng.
c) Bài toán nhận dạng: Từ hai khái niệm trên, ta có thể biểu diễn toán
học của bài toán nhận dạng như sau: f : X → Ω ; trong đó, ánh xạ f là
tập hợp các quy luật, tiêu chuẩn để xác định một phần tử thuộc X ứng
với một phần tử Ω.
1.2.4 Các phương pháp học trong nhận dạng
a) Học có giám sát (Supervised learning): Đây là kỹ thuật phân loại nhờ
kiến thức biết trước được thể hiện qua một thư viện các mẫu chuẩn. Mẫu
cần nhận dạng sẽ được đem so sánh với mẫu chuẩn để xem nó thuộc loại
nào. Vấn đề chủ yếu là thiết kế một hệ thống để có thể đối sánh đối tượng
trong ảnh với mẫu chuẩn và quyết định gán cho chúng vào một lớp. Việc
đối sánh nhờ vào các thủ tục ra quyết định dựa trên một công cụ gọi là
hàm phân lớp hay hàm ra quyết định. Các phương pháp thuộc nhóm này
gồm có: Support Vector Machine; K Nearest Neighbours; Naïve Bayes;
Decision Tree; Neural Network; Centroid–base vector; hay Linear Least
Square Fit – LLSF, v.v...
b) Học không có giám sát (Unsupervised learning): Kỹ thuật này phải


8

tự định ra các lớp khác nhau và xác định các tham số đặc trưng cho từng
lớp bằng cách gộp mọi nhóm có thể và chọn lựa cách tốt nhất. Bắt đầu
từ tập dữ liệu, nhiều thủ tục xử lý khác nhau nhằm phân lớp và nâng cấp

dần để đạt được một phương án phân loại tốt nhất. Một số phương pháp
thuộc nhóm học này gồm có K-means, HAC, DBSCAN, SOM (SelfOrganizing Map), FCM, v.v...
c) Học bán giám sát (Semi-supervised learning): Kỹ thuật này kết hợp
những ưu điểm của hai phương pháp học trước: học có giám sát và học
không có giám sát nhằm tăng độ chính xác cho quá trình nhận dạng.
Theo đó, kỹ thuật này dùng một thuật toán để học các dạng trong mẫu
chuẩn, sau đó tiến hành gán nhãn cho một số dạng mới sau quá trình có
lựa chọn một cách hợp lý. Tiếp theo, chuyển những dạng mới có độ tin
cậy cao theo một ngưỡng qui định và được gắn nhãn này vào thư viện
mẫu chuẩn để làm cơ sở cho việc đối sánh, nhận dạng tiếp theo.
1.2.5 Thuật toán Gentleboost
Thuật toán Gentle AdaBoost (viết tắt là GentleBoost) có nhiều ưu điểm
như đơn giản, ổn định và cho kết quả phân loại tốt trong nhiều ứng dụng.
Do đó, thuật toán GentleBoost được xem xét trong Luận án này.
Tóm tắt Chương 1
Chương này trình bày tổng quan về các vấn đề liên quan đến việc phát
hiện ngủ gật; cụ thể: các công trình nghiên cứu về: hành vi ngủ gật, sinh
lý giấc ngủ, các phương pháp phát hiện ngủ gật, các lý thuyết liên quan
về xử lý kỹ thuật số và các bài toán liên quan như: phát hiện khuôn mặt
người trong ảnh, phát hiện mắt, nhận dạng trạng thái mắt, phát hiện hành
vi gật lắc; cũng như lý thuyết nhận dạng (gồm có các khái niệm cơ sở
và các bước cơ bản trong việc xây dựng hệ nhận dạng, các tiêu chuẩn và
phương pháp học trong nhận dạng). Đây là nền tảng để xây dựng các kỹ
thuật như phát hiện trạng thái mắt và ngủ gật ở Chương 2 với ba bài toán,
gồm: phát hiện khuôn mặt người trong ảnh; phát hiện mắt người trong
ảnh; và nhận dạng trạng thái mắt. Hay, Chương 3 trình bày sơ lược về
bài toán phát hiện hành vi gật lắc đầu thông qua kỹ thuật xác định hướng
mặt người trong ảnh và kỹ thuật phát hiện ngủ gật dựa vào hành vi gật



9

lắc đầu của lái xe.


10

CHƯƠNG 2 - KỸ THUẬT PHÁT HIỆN
TRẠNG THÁI MẮT VÀ NGỦ GẬT
2.1 Bài toán phát hiện khuôn mặt người trong ảnh
2.1.1 Tổng quan
Việc phát hiện khuôn mặt người trong ảnh đã được nghiên cứu nhiều và
có nhiều phương pháp khác nhau; chẳng hạn như phương pháp phát hiện
và định vị khuôn mặt từ ảnh có nền phức tạp, hay phương pháp dùng 2
đốm tối và 3 đốm sáng để tả 2 mắt, 2 gò má và mũi, dùng các vạch sọc
để thể hiện đường nét của khuôn mặt, lông mày và đôi môi, hay phương
pháp định vị các đặc trưng khuôn mặt và khuôn mặt đối với ảnh đa mức
xám. Tuy nhiên, do các phương pháp này dùng các phép toán hình thái
học như trên nên gặp một số hạn chế nhất định trong việc kết hợp các
đặc trưng để định vị khuôn mặt. Trong khi đó, phương pháp xác định
các đặc trưng cục bộ và bộ khớp đồ thị ngẫu nhiên dùng 5 đặc trưng: 2
mắt, 2 lỗ mũi, đoạn giữa môi và mũi được dùng để thể hiện một khuôn
mặt chuẩn.
Để xác định một thành phần nằm trong một vùng chứa nó, hiện nay,
kỹ thuật sử dụng đặc trưng Haar trong thuật toán AdaBoost được sử
dụng rộng rãi nhất.
2.1.2 Đề xuất kỹ thuật phát hiện mặt người
Ý tưởng cơ bản: thực hiện phân lớp nhị phân với mỗi vùng ảnh quan
tâm, từ đó kết luận vùng ảnh đó là khuôn mặt hay không.
Việc xét duyệt được thực hiện bởi một chuỗi các bộ phân lớp nhị

phân và một vùng ảnh được chấp nhận nếu nó được chấp nhận bởi toàn
bộ các bộ phân lớp nhị phân trong chuỗi. Các bộ phân lớp nhị phân được
xây dựng trên cơ sở sử dụng cây quyết định; trong đó, việc đánh giá tại
mỗi nút là một bộ phân lớp nhị phân con. Các bộ phân lớp nhị phân con
này được xây dựng dưới nhiều dạng khác nhau để có thể lựa chọn những
cách thức phân lớp đơn giản và nhanh chóng tại một số cây đầu tiên,
giúp nhanh chóng loại những vùng nền, đồng thời thiết kế như vậy sẽ dễ
dàng được mở rộng trong việc nghiên cứu thử nghiệm với những cách
thức phân lớp khác nhau tại mỗi nút.
Việc phát hiện mặt người được tiến hành thông qua hai pha chính.


11

Pha thứ nhất là pha học, tức là từ một tập các ảnh khuôn mặt và các ảnh
không phải khuôn mặt để tạo ra một bộ dữ liệu học mô hình khuôn mặt
mẫu. Pha thứ hai là pha phát hiện, việc phát hiện khuôn mặt là việc dò
tìm xem một vùng bất kỳ trong ảnh có thỏa mãn các đặc điểm của mô
hình đã được xây dựng hay không.
a) Xây dựng mô hình nhận dạng khuôn mặt mẫu
Với ý tưởng như vậy, mỗi cây sẽ được xây dựng dựa trên cơ sở tập
dữ liệu huấn luyện có cấu trúc như sau: {( I s , vs , ws ) : s = 1, 2,..., S } ; trong
đó, vs là giá trị nhãn đúng của ảnh Is, và ws là trọng số tương ứng. Luận
án này sẽ thực hiện phân lớp nhị phân, tức là gắn nhãn 0 và 1, bằng cách
cực tiểu hóa giá trị của hàm mục tiêu:
2
2
WMSE = ∑ w. ( v − v0 ) + ∑ w. (v − v1 )
( I , v , w)∈C0


( I , v , w)∈C1

trong đó: C0 và C1 là hai nhóm của tập huấn luyện, tương ứng là kết quả
phân chia của hai giá trị nhị phân 0 và 1; còn các tham số v0 và v1 là
trung bình các giá trị nhãn trong C0 và C1.
Algorithm: Thuật toán học cây
Input: U = {( I s , vs , ws ) : s = 1, 2,..., S} // bộ dữ liệu huấn luyện
Output: T = {N0, N1...} // cây kết quả được mô tả là tập các nút
Process:
1. T := Ø
2. Idx0 = {0, 1, 2, ..., S-1} // tập các chỉ số tương ứng với các mẫu trong tập
huấn luyện à Sử dụng 1 ngăn xếp để quản lý việc học lần lượt từng nút. Mỗi
phần tử ngăn xếp là một bộ gồm nút và tập chỉ số các mẫu dùng để học nút đó
3. Stack := Ø // Đưa nút gốc vào ngăn xếp
4. push ( Stack, (N0, Idx0) )
5. while ( Stack ≠ Ø ) // lấy phần tử ở đầu ngăn xếp
6. { Ni, Idxi} := pop( Stack ) // Nếu nút đã đạt đủ độ cao, không thực hiện tính
toán chia đôi nữa
7.
if ( Ni.level >= MAX_DEPTH )
8.
Continue
9.
else
10.
min_err := MAX_VALUE
11.
best_bincls := null
12.
for all bincls of BCS

13.
e := WMSE( bincls, U, Idxi )
14.
if (e < minerr )


12
best_bincls := bincls
min_err := e

15.
16.
17.
endif
18.
endfor
19. setupNode (Ni, best_bincls, U, Idxi ) // Chia đôi tập chỉ số các mẫu của
nút hiện tại để làm dữ liệu huấn luyện cho hai nút con
20. { Idx i*2+1, Idx i*2+2} := SplitDataSet( U, Idxi, best_bincls ) // Tiếp tục
đưa vào ngăn xếp hai nút con cùng với tập chỉ số các mẫu tương ứng
21.
push( Stack, (Ni*2+1, Idxi*2+1) )
22.
push( Stack, (Ni*2+2, Idxi*2+2) )
23.
endif
24. endwhile

b) Phát hiện khuôn mặt từ ảnh
Ảnh đầu vào được xét duyệt tại mỗi vị trí và kích thước có thể trên

cơ sở một vùng ảnh được chấp nhận nếu nó được chấp nhận bởi toàn bộ
các cây trong mô hình đã xây dựng, trong đó việc đánh giá tại mỗi nút
là một bộ phân lớp nhị phân con, với các kỹ thuật lựa chọn cụ thể là phép
so sánh điểm ảnh và đánh giá giá trị trung bình cục bộ.
c) Kết quả thử nghiệm
Việc thử nghiệm được tiến hành theo 2 bước: (1) học từ 3.500 ảnh
khuôn mặt trong cơ sở dữ liệu khuôn mặt GENKI-SZSL nằm trong bộ
MPLab GENKI và 3.019 ảnh thuộc bộ dữ liệu face negative của
OpenCV; và (2) chạy thử nghiệm phát hiện.
Pha học được tiến hành trên máy tính Core i7 3,6 GHz, RAM 8GB
và mất hơn 4 tiếng để hoàn thành. Còn pha thử nghiệm phát hiện được
tiến hành với cơ sở dữ liệu khuôn mặt của Markus Weber gồm 450 ảnh
khuôn mặt. Kết quả, thuật toán phát hiện được 423 ảnh được gán có
khuôn mặt người; trong đó có 7 ảnh thực ra không có khuôn mặt người;
tức là thuật toán phát hiện đúng 416 ảnh trong 423 ảnh đó. Do vậy, khả
năng phát hiện của thuật toán này được xác định như sau:
Precision = 416/423 = 0.9834 (hay 98.34%)
Recall = 416/450 = 0.9244 (hay 92.44%).
Như vậy, phương pháp đề xuất cho độ chính xác phát hiện khá tốt;
và có tốc độ xử lý nhanh, đây là cơ sở để có thể phát triển những ứng
dụng xử lý khuôn mặt yêu cầu thời gian thực trên dữ liệu video.


13

2.2 Bài toán phát hiện mắt người trong ảnh
Trong các hệ thống phát hiện tài xế ngủ gật, việc xác định vị trí mắt
người có vai trò quan trọng trước khi xác định được trạng thái mắt. Có
nhiều phương pháp phát hiện vị trí mắt; chẳng hạn như sử dụng hình ảnh
quang phổ của tia hồng ngoại được phản xạ từ con ngươi của con mắt

bằng cách sử dụng hai camera đặt trước mặt tài xế và mỗi camera có gắn
bộ lọc quang khác nhau; hay sử dụng hai bộ đèn LEDs được bố trí thành
2 vòng tròn có đường kính khác nhau như trong Hình 2.1; theo đó, đèn
LEDs ở hai vòng này không đồng thời phát sáng. Để xác định điểm giữa
của con mắt, hệ thống đánh giá kích thước, hình dáng và khoảng cách
tương đối giữa các điểm phát hiện nhằm tránh trường hợp các điểm sáng
do sự phản xạ của mắt kính đeo tạo ra. Phương pháp này khá hiệu quả
khi tài xế đeo kính, thậm chí cả kính râm.

Hình 2.1: Hệ thống camera với 2 vòng đèn LEDs
Cách tiếp cận này có ưu điểm lớn trong các phép tính toán bởi vì nó
có khả năng phát hiện mắt người mà không cần phát hiện khuôn mặt
người. Nó khá hiệu quả trong trường hợp phát hiện tình trạng mệt mỏi
cũng như sự lơ là của tài xế trong quá trình lái xe. Tuy nhiên, hệ thống
này hoạt động không hiệu quả khi tài xế ngủ gật hay nhắm mắt.
2.2.1 Đề xuất thuật toán phát hiện mắt người trong ảnh
Algorithm: Phát hiện mắt người
Input: Image
Output: left eye, right eye
Process:
1. Detect FACES = set of FaceForms in Image //dùng mẫu để phát hiện thô
khuôn mặt để có tập các vùng ảnh có khả năng là khuôn mặt


14
2. For all face of FACES
3. Find eyes from top to down of [1/6,1/2] face //phát hiện đôi mắt ở vùng từ
1/6 đến 1/2 ảnh khuôn mặt tính từ trên xuống
4. Detect left eye //phát hiện mắt trái trong vùng từ 1/6 đến 1/2 chiều cao và
từ giữa đôi mắt sang trái

5. Detect right eye
//tương tự cho mắp phải
6. Endfor

2.2.2 Kết quả thử nghiệm
Thử nghiệm được tiến hành với bộ dữ liệu được thu tại Trường Đại
học Lạc Hồng. Dữ liệu được thu thập với điều kiện thực tế trong xe ô tô.
Các ảnh chụp lái xe theo tư thế góc nhìn gần như trực diện từ phía trước
vô lăng, thu nhận toàn cảnh chân dung cùng với các cử chỉ hành động
của khuôn mặt người lái xe khi thực hiện thao tác lái xe.
Để tiện đánh giá kết quả của kỹ thuật đã trình bày, Luận án thực hiện
trích rút một số hình ảnh ra từ video để tạo ra tập dữ liệu ảnh thử nghiệm
gồm 398 ảnh. Kết quả, thuật toán phát hiện được 376 ảnh có khuôn mặt
người và hai mắt; trong đó, thuật toán xác định sai vị trí mắt trái 21 ảnh
và sai vị trí mắt phải là 25 ảnh. Do vậy, khả năng phát hiện của thuật
toán này được xác định như sau:
• Đối với mắt trái: Precision = 0,9495;
Recall = 0,8970;
• Đối với mắt phải: Precision = 0,9335;
Recall = 0,8819.
2.3 Bài toán nhận dạng trạng thái mắt
Hiện nay, có nhiều kỹ thuật nhận dạng trạng thái mắt; trong đó, tiếp
cận cho đặc trưng trạng thái mắt người được sử dụng khá phổ biến vì nó
có nhiều kiểu phân tích như chất liệu ảnh, hình dạng với ảnh nhị phân
và biến đổi Hough hoặc sử dụng mẫu có khả năng biến dạng với biểu
diễn kết hợp giữa hình dạng và kết cấu hình ảnh. Luận án này sử dụng
kỹ thuật phân tích thành phần chính PCA cho biểu diễn đặc trưng trạng
thái mắt người, vì nó là một tiếp cận không gian con cho việc sử dụng
phân tích chất liệu ảnh toàn cục để nhận dạng.
2.3.1 Kỹ thuật nhận dạng trạng thái mắt

Với qui trình xử lý ảnh tổng quát đã trình bày, hệ thống nhận dạng trạng
thái mắt cụ thể gồm 2 giai đoạn: xây dựng eigen-eye và nhận dạng.
a) Tính các eigen-eye


15

Giả sử có M ảnh mắt I1, I2,..., IM; và ảnh Ii được biểu diễn như sau:

⎡ a11i a12i
⎢ i i
a a
I i = ⎢ 21 22

⎢ i i
⎢⎣ ah1 ah 2

a1i w ⎤ ⎡ a1i ⎤
⎥ ⎢ ⎥
a2i w ⎥ ⎢ a2i ⎥
=
⎥ ⎢ ⎥
⎢ i⎥
i ⎥
ahw
⎥⎦ ⎢⎣ ah ⎥⎦ h×w

Vectơ mắt E gồm các thành phần như sau:
T
Ei = ⎡⎣ a1i a2i

ahi ⎤⎦ .
Algorithm: Xây dựng bộ mẫu eigen-eye
Input: Set of M = { I1, I2,..., IM }
Output: Ωi
Process:
1. For all 𝐼𝑖 , ∀𝑖 = 1, 𝑀
2. Calculating Ei
//Xây dựng vector mắt
3. Endfor
3.

Ψ=

1
M

M

∑E ;
i

//Tính vector mắt trung bình

i =1

4. For all 𝐼𝑖 , ∀𝑖 = 1, 𝑀
5. Φi = Ei − Ψ; //Trừ mỗi mẫu mắt cho vector mắt trung bình
6. Endfor
2
7. 𝐶 = [Φ+ Φ, …Φ/ ]×[Φ+ Φ, …Φ/ ]

8. 𝐿 = [Φ+ Φ, …Φ/ ]2 ×[Φ+ Φ, …Φ/ ]
9. 𝐿𝑚,𝑛 = Φ𝑇𝑚 ×Φ𝑛
10. For l from 1 to M // Tính vector riêng u
11. 𝑢𝑙 = 𝑀
𝑘=1 𝑣𝑙𝑘 Φ𝑘
12. Endfor
13. Find vetor riêng k that eigenk = max {eigenu}
14. Calculating Ωi theo wi , j = uTj Φi ; Ωi = [ w1i
b) Giai đoạn nhận dạng trạng thái mắt

w2i

wki ]


16

Giả sử ta có một mẫu mắt Γ chưa biết và cần nhận dạng. Việc nhận
dạng mẫu này được tiến hành như sau:
Algorithm: Nhận dạng mẫu
Input: Mẫu mắt Γ
Output: Trạng thái (đóng mở của mắt)
Process:
1. Calculating Φ=Γ-Ψ
2. wk = ukT Φ // Chiếu Φ vào không gian riêng (eigenspace)
3. Ω = [w1 w2 … wk] // Biểu diễn ánh mắt
4. Classificating Γ dựa trên khoảng cách d = min||Ω-Ωi||
5. If d > θ
6. Insert Γ into CSDL mẫu mắt
7. Assign nhãn trạng thái đóng mở cho Γ

8. Else
9. Output Trạng thái
10. Endif
2.3.2 Kết quả thử nghiệm
Thử nghiệm được tiến hành với bộ dữ liệu 398 ảnh được thu tại
Trường Đại học Lạc Hồng như đã trình bày ở Mục 3.2.2. Kết quả, thuật
toán phát hiện được 376 ảnh có khuôn mặt người và hai mắt; trong đó,
thuật toán xác định sai trạng thái đóng mở mắt trái 32 ảnh và sai trạng
thái đóng mở mắt phải là 37 ảnh. Do vậy, khả năng phát hiện của thuật
toán này được xác định như sau:
• Đối với mắt trái: Precision = 0,9145;
Recall = 0,8643;
• Đối với mắt phải: Precision = 0,9016;
Recall = 0,8518.
2.4 Phát hiện ngủ gật dựa trên trạng thái mắt
Hệ thống phát hiện trạng thái ngủ gật dựa vào số khung ảnh (frames)
có gắn nhãn “mắt đóng” trong một khoảng thời gian nhất định. Giả sử,
tốc độ quay của camera được dùng là v (khung/giây) và ta xem xét trong
t giây hay xem có bao nhiêu khung ảnh được gán nhãn “mắt đóng” trong
v⋅t khung ảnh liên tục. Nếu số khung ảnh “mắt đóng” vượt ngưỡng sl qui
định trước thì hệ thống sẽ cảnh báo ngủ gật. Hình 2.3 mô tả tóm tắt hệ


17

thống này. Ví dụ, nếu sử dụng camera quay với tốc độ 24 khung/giây và
ta xem xét trạng thái đóng mở mắt trong 3 giây liên tục (tức là 72 khung
liên tục); khi đó, ta sẽ xác định số khung ảnh “mắt đóng” trong 72 khung
liên tục để đưa ra cảnh báo “ngủ gật”. Giả sử, ta chọn sl = 40; nếu có từ
40 khung “mắt đóng” trở lên thì được xem là ngủ gật. Tác giả tiến hành

thử nghiệm theo dõi tình trạng mắt trái và mắt phải của một lái xe đường
dài trong vòng 4 giờ đồng hồ. Hệ thống tiến hành xác định tình trạng
ngủ gật của lái xe theo biểu đồ trượt như Hình 2.4.

Hình 2.3: Hệ thống phát hiện ngủ Hình 2.4. Biểu đồ theo dõi trạng thái ngủ
gật dựa vào trạng thái mắt
gật dựa trên trạng thái mắt

Tóm tắt Chương 2
Chương 2 trình bày chi tiết hơn về các bài toán liên quan: (1) Phát hiện
mặt người trong ảnh, (2) Phát hiện mắt người trong ảnh, và (3) Nhận
dạng trạng thái mắt. Các thuật toán đề xuất để giải quyết ba bài toán này
đã được thử nghiệm thực tế để đánh giá hiệu quả của chúng. Các kết quả
thử nghiệm thực tế trong nghiên cứu này cho thấy các kỹ thuật được đề
xuất đảm bảo được mục tiêu nghiên cứu đã đề ra. Đặc biệt là, chương
này cũng đã trình bày kỹ thuật phát hiện ngủ gật của lái xe dựa trên trạng
thái mắt.
Các kết quả nghiên cứu trong chương này đã được công bố trong các
công trình [1], [2], và [8].


18

CHƯƠNG 3 –KỸ THUẬT PHÁT HIỆN
HÀNH VI GẬT LẮC VÀ TRẠNG THÁI NGỦ GẬT
3.1 Bài toán phát hiện hành vi gật lắc
Đã có nhiều nghiên cứu để phát hiện và cảnh báo lái xe ngủ gật;
chẳng hạn như hệ thống điện não đồ không dây thời gian thực (EEG),
phân tích quy luật chuyển động của mi mắt với hiệu suất chấp nhận được,
mô hình mạng nơ ron phi tham số để ước lượng độ đo PERCLOS,

phương pháp Adaboost và hồi quy đa thức, v.v... Tư thế gục đầu của
người ngủ gật dẫn đến khó khăn trong việc phát hiện mặt người trong
tình trạng nghiêng, tức là khuôn mặt không thẳng với camera thu nhận.
Ngoài ra, trạng thái lắc lư của xe hay chớp mắt của lái xe càng gây khó
khăn cho khâu này và bài toán phát hiện mặt người. Tuy nhiên, gật đầu
cũng chính là một đặc điểm nhận biết ngủ gật.
3.2 Phát hiện hướng mặt người trong ảnh
Hướng khuôn mặt, hay hướng đầu, là một khái niệm khá đơn giản
đối với con người. Thực tế, con người có thể ước lượng một cách nhanh
chóng và chính xác hướng, góc nghiêng và chuyển động của đầu người,
tất nhiên điều này chỉ là tương đối trên phương diện định tính (nghiêng
bên phải hay trái, lên trên hay xuống dưới) chứ không phải trên phương
diện định lượng (nghiêng bao nhiêu độ). Nhưng đây lại là bài toán rất
phức tạp và khó giải cho những người làm thị giác máy.
3.2.1 Thuật toán AAM
AAM (Active Appearance Model) là một thuật toán tối ưu một mô
hình thống kê hình ảnh thể hiện của đối tượng vào một ảnh đầu vào mới.
Giải thuật tìm kiếm tối ưu được sử dụng trong AAM được thiết kế cho
phép tự động ước lượng các tham số mô hình để tổng hợp được ảnh mẫu
gần nhất có thể với ảnh mục tiêu đầu vào.
3.2.2 Mô hình pháp tuyến khuôn mặt
Mô hình pháp tuyến khuôn mặt dựa trên 5 điểm đặc trưng của khuôn
mặt là hai điểm góc ngoài hai mắt, hai điểm rìa miệng và đỉnh mũi; với
giả thiết hai điểm ngoài mắt và hai điểm rìa miệng tạo thành một mặt
phẳng gọi là mặt phẳng mặt; qua đó, tính toán pháp tuyến của mặt phẳng
này trong không gian 3D với mặt phẳng Oxy là mặt phẳng ảnh. Pháp


19


tuyến khuôn mặt được tính toán là vector nối hai điểm chân mũi và đỉnh
mũi như Hình 3.1.

Hình 3.1: Mô hình pháp tuyến khuôn mặt
3.2.3 Kỹ thuật ước lượng hướng mặt người
Kỹ thuật này được phát triển dựa vào mô hình pháp tuyến khuôn mặt;
theo đó, thay vì đưa các thông số khuôn mặt vào trong hệ thống, tác giả
sử dụng thuật toán tự động tính toán thông số nạp vào mô hình.
@ Thuật toán
Algorithm: Ước lượng hướng đầu
Input: FaceImage
Output: Vector pháp tuyến
Process:
1. Find points E1, E2, M1, M2, N
2. While
3. Calculate Lm, Ln, Lf
4. Calculate Rm = Lm/Lf và Rn = Ln/Lf
5. Calcutale nˆ (2.10)
6. Rotate nˆ
7. Find new points E1, E2, M1, M2, N
8. Error = ||points - new points||
9. EndWhile Error < EPS

@ Kết quả thử nghiệm
Thuật toán được thử nghiệm với dữ liệu được sinh ra từ mô hình 3D
với nhiều tham số chiếu khác nhau. Các mô hình 3D sử dụng được biến
đổi theo một số tham số đã xác định trước bằng phép biến đổi mô hình
đã được định nghĩa; sau đó, mô hình được quay với nhiều góc quay khác
nhau để đánh giá. Từ các kết quả thử nghiệm thu được thì pháp tuyến
tính được so với pháp tuyến gốc lệch trung bình 16,350, lệch lớn nhất

41,110, lệch nhỏ nhất 5,170, trên 93% số mẫu tính được có góc lệch nhỏ


20
0

hơn 20 . Kết quả thử nghiệm cho thấy chương trình chạy với tốc độ thời
gian thực và cho độ chính xác cao trong điều kiện thử nghiệm đặt ra.
Các trường nhận sai chủ yếu là trong những trường hợp các phát hiện
kém chính xác các điểm đặc trưng trên khuôn mặt.
3.3 Phát hiện hành vi gật lắc
Trên cơ sở một tập điểm điều khiển đã được trích rút ra từ ảnh khuôn
mặt lái xe, Luận án xây dựng những thông số đơn giản như khoảng cách
điểm-điểm, khoảng cách điểm-cạnh, diện tích tam giác và những thông
số này được tính trực tiếp từ tập điểm đó. Cụ thể, Luận án sử dụng một
tập dữ liệu bao gồm những ảnh khuôn mặt đã được đánh dấu tập điểm
và gán nhãn ngẩng đầu hay gục đầu. Với mỗi đặc trưng, Luận án thực
hiện thống kê các giá trị tương ứng trên tập dữ liệu và tìm ngưỡng phân
tách bằng bài toán xây dựng cây quyết định một mức và đánh giá sai số.
@ Thuật toán đề xuất
Algorithm: Phát hiện gật đầu từ camera
Input: FRAME từ camera hoặc video
Output: Trạng thái đầu
Process:
1. Init value of std_dm, std_s3, std_brect(bounding rectangle)
2. status := HEAD_NORMAL
3. Init value of thres1, thres2, thres3, thres4
4. For all frame of FRAME
5. Calculate cur_dm, cur_s3, cur_brect
6. x:= (std_brect.x-cur_brect.x)/std_brect.width

7. y:= (std_brect.y-cur_brect.y)/std_brect.width
8. If (y < thresl and y < thres2)
9.
Return
10. Else if (std_dm/cur_dm < thres3 and std_s3/cur_s3 > thres4)
11.
status := HEAD_NOD
12. Else
status := HEAD_NORMAL
13. Endif
14. Endfor

@ Kết quả thử nghiệm
Luận án tiến hành thử nghiệm thuật toán với hai loại dữ liệu: dữ liệu
ảo và dữ liệu thật. Dữ liệu ảo là dữ liệu được sinh ra từ mô hình 3D với
nhiều tham số chiếu khác nhau; còn dữ liệu thật được thu từ nguồn video


21

hoặc webcam tại Đại học Duy Tân, Đà Nẵng, bao gồm 11 video của 11
người, quay 15 frames/giây, độ phân giải 640x480 pixels.
Để thực hiện quá trình lựa chọn các tham số phù hợp, Luận án xây
dựng một tập cơ sở dữ liệu ảnh đã được đánh dấu, bao gồm 5.863 ảnh
được sinh ra từ mô hình 3D và các hình ảnh thu từ dữ liệu thực tế. Kết
quả, khả năng phát hiện của thuật toán được xác định như sau:
Precision = 0,9608

Recall = 0,8630.
3.4 Phát hiện ngủ gật dựa trên hành vi gật lắc

Giả sử, tốc độ quay của camera được dùng là v khung/giây và ta xem
xét trong t giây hay xem xét có bao nhiêu khung ảnh được gán nhãn gật
đầu trong v⋅t khung ảnh liên tục. Tương tự như hệ thống trong Chương
2, nếu số khung ảnh có gán nhãn “gật đầu” vượt ngưỡng nh qui định
trước thì hệ thống sẽ cảnh báo ngủ gật. Ví dụ, nếu ta chọn nh = 45, hệ
thống cứ đếm trong 72 khung liên tục, nếu có từ 45 khung gật đầu trở
lên thì được xem là ngủ gật. Luận án thử nghiệm theo dõi tình trạng mắt
trái và mắt phải của một lái xe đường dài trong vòng 4 giờ đồng hồ. Hệ
thống xác định tình trạng ngủ gật của lái xe theo biểu đồ trượt như Hình
3.2.

Hình 3.2. Biểu đồ theo dõi trạng thái ngủ gật dựa vào trạng thái mắt
Tóm tắt Chương 3
Chương này trình bày bài toán phát hiện hành vi gật lắc, dựa trên kỹ
thuật ước lượng hướng mắt người trong ảnh. Các thuật toán đề xuất được
dùng để xây dựng kỹ thuật phát hiện ngủ gật dựa vào hành vi gật lắc của
lái xe. Các kết quả nghiên cứu trong chương này đã được công bố trong
các công trình [3], [4], [5], và [6].


22

CHƯƠNG 4 - HỆ THỐNG TÍCH HỢP PHÁT HIỆN
LÁI XE TRONG TRẠNG THÁI NGỦ GẬT
4.1 Mô tả hệ thống
Hệ thống tích hợp được xây dựng trên nền tảng Visual C++ 2008, mã
nguồn mở OpenCV của Intel. Hệ thống gồm một camera và bộ xử lý
được gắn trên cabin của lái xe. Camera được lắp trực diện với lái xe và
có thể được điều chỉnh góc quay lên xuống để trục chính của camera
hướng vào giữa mặt lái xe khi lái xe ngồi ở tư thế thoải mái nhất. Hệ

thống nhận dữ liệu đầu vào từ camera, thực hiện xác định tự động các
điểm đặc trưng của khuôn mặt dựa trên việc phân tích các thành phần
khuôn mặt, xác định vị trí hai mắt và chuyển các thông số này vào thư
viện trong bộ xử lý. Hệ thống sẽ giám sát liên tục trạng thái mắt (mắt
trái và mắt phải) và hành vi gật đầu của lái xe một cách đồng thời; và
tiến hành nhận dạng trạng thái mắt cũng như phát hiện hành vi gật đầu
cho mỗi khung ảnh. Và như vậy thì hệ thống có thể thu thập dữ liệu đồng
thời cho ba biến: (1) trạng thái mắt trái (MT); (2) trạng thái mắt phải
(MP); và (3) hành vi gật lắc (HVG) bằng cách: Nếu khung ảnh nào của
mắt trái và mắt phải được gán nhãn “mắt đóng” thì gán giá trị là 1 cho
MT và MP; và khi nào phát hiện hành vi gật đầu trong một khung ảnh
thì khung đó cũng gán giá trị 1 cho HVG. Hệ thống sẽ tiến hành đếm số
khung ảnh được gán giá trị 1 cho mỗi biến trong 72 khung ảnh liên tục
(Luận án chọn ngưỡng sl = 40 và nh = 45).
4.2 Mối quan hệ giữa trạng thái ngủ gật và trạng thái mắt - hành vi
gật đầu
Kết quả đánh giá trạng thái ngủ gật được thể hiện bằng biến số
Ngugat; và biến này mang giá trị 1 nếu ở trạng thái ngủ gật, mang giá trị
0 nếu ở trạng thái tỉnh táo. Căn cứ vào số khung ảnh được gán giá trị 1,
hệ thống có thể phát hiện trạng thái ngủ gật khi: (1) số khung ảnh “mắt
đóng” của một hoặc hai mắt vượt giá trị ngưỡng sl; và/hoặc (2) số khung
ảnh “gật đầu” vượt giá trị ngưỡng nh. Đây là cơ sở để Luận án tìm mối
quan hệ giữa trạng thái ngủ gật và trạng thái mắt cũng như hành vi gật
đầu của lái xe; sau đó, Luận án tiến hành mô hình hóa mối quan hệ này
trong hệ thống để hệ thống có thể tự động phát hiện và cảnh báo lái xe


23

ngủ gật. Như vậy, việc xác định mối quan hệ này được xem là giai đoạn

huấn luyện cho hệ thống.
Dữ liệu được thu thập bằng cách gắn thiết bị trên bốn xe tải chạy
tuyến Bắc Nam để theo dõi trạng thái mắt và hành vi gật đầu đối với bốn
lái xe trong 15 ngày. Mỗi xe này có hai tài xế thay phiên nhau lái; sau
mỗi chuyến đi, tác giả chiếu lại các đoạn video và thời điểm quay để
chính lái xe đó xem lại và xác nhận xem lúc đó có đang buồn ngủ hay
không. Thông tin này được lưu lại để tác giả phân tích mối liên hệ giữa
các biến. Mô hình toán thể hiện mối quan hệ giữa các biến được thể hiện
qua hàm số: Ngugat = f(MT,MP,HVG). Hàm số f này được xác định
thông qua phương pháp hồi qui tuyến tính.
4.2.1 Phân tích hồi qui tuyến tính
Để so sánh và tìm được mô hình tốt, Luận án xem xét hai mô hình độc
lập như sau: (1) Ngugat=f(MT,MP,HVG); và (2) Ngugat=f(MAT,HVG),
trong đó, biến MAT được tạo ra nhằm chứa giá trị lớn nhất của MT và
MP tại một thời điểm; tức là MATj = max {MTj,MPj}. Với dữ liệu thu
thập được, Luận án có hai mô hình hồi qui đã được chuẩn hóa như sau:
MH1: Ngugat=0,249+0,006MT+0,006MP+0,00HVG với R2 = 0,364;
MH2: Ngugat=0,115+0,011MAT+0,007HVG; với R2 = 0,449.
Căn cứ vào hệ số R2, Luận án nhận thấy rằng MH2 tốt hơn MH1. Do
đó, MH2 được đưa vào hệ thống để tự động phát hiện ngủ gật.
4.2.2 Phân tích hồi qui Logistic nhị phân
Do biến ngẫu nhiên Ngugat là biến nhị phân nên Luận án sử dụng
mô hình Logistic nhị phân để xác định xác suất rơi vào trạng thái ngủ
gật của lái xe theo các thông số của mô hình hồi qui tuyến tính đã tìm
thấy ở trên. Giả sử, kích thước mẫu là n, ở đó mỗi quan sát là độc lập.
Gọi pj là xác suất xuất hiện trạng thái ngủ gật ở quan sát thứ j; khi đó, 1pj là xác suất lái xe tỉnh táo ở quan sát thứ j. Khi đó, phương trình hồi
qui logistic nhị phân thể hiện xác xuất xuất hiện trạng thái ngủ gật của
lái xe theo số khung ảnh “mắt đóng” và số khung ảnh “gật đầu” được
thể hiện như sau: ln[ p j (1 − p j )] = α 0 + α1MAT j + α 2 HVG j (ký hiệu là
LM1). Ngoài ra, nhằm đánh giá tác động cộng gộp của MAT và HVG,

Luận án xem xét thêm mô hình logistic nhị phân khác (được ký hiệu là


24

LM2) như sau: ln[ p j (1 − p j )] = α 0 + α1 MAT j + α 2 HVG j + α 3 MAT j × HVG j .
Và, kết quả phân tích cho thấy: LM1 và LM2 đều có ý nghĩa thống kê.
Để so sánh hiệu quả của hai mô hình này, Luận án tiến hành thử
nghiệm với 389.017 khung ảnh được chọn ngẫu nhiên từ bộ dữ liệu cũ;
trong đó có 53.210 khung ảnh được gán giá trị 0 và 335.807 khung ảnh
được gán giá trị 1. Đầu ra của hai mô hình là xác định trạng thái ngủ gật
dựa vào các thông số đầu vào của các khung ảnh được chọn trên. Kết
quả cho thấy, việc xem xét tác động cộng gộp của hai biến MAT và HVG
trong LM2 giúp cho hệ thống có thể phát hiện tốt hơn; cụ thể, với dữ liệu
thực nghiệm, LM2 có thể phát hiện đúng hơn 99% trường hợp ngủ gật.
4.3 Kỹ thuật đánh thức lái xe trong trạng thái ngủ gật
Để giúp lái xe tỉnh táo hơn trong quá trình lái xe, Luận án đề xuất dùng
tấm lót ghế tài xế có chế độ rung mát-xa, được bán khá rộng rãi trên thị
trường và hệ thống phun khí lạnh vào mặt và gáy của lái xe. Ngoài ra,
Luận án cũng sử dụng một số phương pháp cảnh báo truyền thống như
cảnh báo bằng giọng nói, tiếng còi hú, v.v... như Hình 4.1.

Hình 4.1. Đánh thức lái xe ngủ gật
Tóm tắt Chương 4
Với những kết quả đạt được từ Chương 2 và Chương 3, Luận án tiến
hành tích hợp hai kỹ thuật đó vào thành hệ thống phát hiện và đánh thức
lái xe trong trạng thái ngủ gật thông qua việc xác định mối quan hệ giữa
trạng thái ngủ gật với trạng thái mắt và hành vi gật đầu thông qua kỹ
thuật phân tích hồi qui tuyến tính và hồi qui logistic nhị phân. Kết quả
phân tích cho thấy việc xem xét tác động cộng gộp của trạng thái mắt và

hành vi gật lắc giúp cho hệ thống có thể phát hiện đúng hơn 99% số
trường hợp ngủ gật. Các kết quả nghiên cứu trong chương này đã được
công bố trong công trình [7].


25

KẾT LUẬN
Hiện nay, vấn đề đảm bảo an toàn giao thông đã trở nên cấp thiết và
quan trọng đối với nhiều quốc gia trên thế giới. Thực tế cho thấy nhiều
vụ tai nạn xe nghiêm trọng xảy ra đều “do lái xe ngủ gật”. Vì vậy, mà
nhiều nhà khoa học đã và đang nỗ lực nghiên cứu và phát triển các kỹ
thuật phát hiện và cảnh báo lái xe ngủ gật ngày càng tốt hơn và hiệu quả
hơn. Tuy nhiên, vấn đề phát hiện mặt người trong tình trạng nghiêng,
tức là khuôn mặt không thẳng với camera thu nhận, và trạng thái lắc lư
của xe hay chớp mắt của lái xe là những khó khăn chính.
Để khắc phục vấn đề này, Luận án đề xuất kỹ thuật ước lượng hướng
đầu dựa trên mô hình pháp tuyến khuôn mặt và xây dựng kỹ thuật phát
hiện ngủ gật dựa trên hành vi gật lắc của lái xe. Ngoài ra, Luận án cũng
xem xét đặc trưng của mắt trong trạng thái ngủ gật để xây dựng các thuật
toán cải tiến trong việc phát hiện khuôn mặt, phát hiện mắt và nhận dạng
trạng thái mắt để có thể đưa ra kỹ thuật phát hiện ngủ gật dựa trên trạng
thái mắt; đặc biệt là kết hợp hai kỹ thuật phát hiện ngủ gật này vào một
hệ thống tích hợp sau khi sử dụng phương pháp phân tích thống kê bằng
mô hình hồi qui tuyến tính và hồi qui logistic nhị phân. Và hệ thống tích
hợp này có thể phát hiện chính xác cao trạng thái ngủ gật của lái xe. Và
như vậy, Luận án đã hoàn thành các mục tiêu đã đề ra ban đầu.
Luận án này có hai đóng góp quan trọng, gồm: (1) phát triển kỹ thuật
tự động tính toán các thông số trong mô hình pháp tuyến khuôn mặt thay
vì các giá trị của các thông số này phải được xác định trước; (2) phát

triển kỹ thuật nhận diện trạng thái ngủ gật của lái xe bằng cách nhận diện
trạng thái đóng mở của từng mắt và góc nghiêng của khuôn mặt dựa vào
pháp tuyến khuôn mặt. Luận án cũng thử nghiệm cho một hệ thống tích
hợp có khả năng phát hiện ngủ gật với độ chính xác cao và kỹ thuật đánh
thức hiệu quả.
Một vấn đề còn bỏ ngỏ đó là có một hệ thống nhúng có chất lượng
và được thiết kế phù hợp; đồng thời thông qua những thành tựu gần đây
trong lĩnh vực y sinh và cơ điện tử để làm sao với việc nhận dạng ra
trạng thái của lái xe để qua đó tăng mức độ tỉnh táo của lái xe.


×