CHƯƠNG 1 GIỚI THIỆU 1.1 Tổng quan việc phát hiện và theo dõi hình ảnh. - Phát hiện và theo dõi mắt người từ đó ứng dụng vào việc phát hiện tài xế ngủ gật, việc phát hiện và theo dõi mắt dựa trên cơ sở thị giác máy tính – là một lĩnh vực đang phát triển để giao tiếp thông minh giữa con người và máy trong hiện tại và tương lai. Việc phát hiện và theo dõi mắt theo thời gian thực sẽ tốn rất nhiều tài nguyên xử lý của máy tính, vấn đề chính của luận văn là giới hạn khu vực tìm kiếm con ngươi của mắt người để giảm đáng kể số lượng dữ liệu cần xử lý từ đó giảm tài nguyên xử lý của máy tính. - Trường hợp tổng quát, việc phát hiện mắt được sử dụng trong ảnh tĩnh, trước tiên phải khoanh vùng được khu vực của khuôn mặt trong bức ảnh.
Tương ứng với việc sử dụng các đặc trưng có sẵn trong thư viện để tách được khuôn mặt trong bức ảnh và background. Từ đó, giới hạn tìm kiếm sẽ được thu nhỏ lại đáng kể và việc phát hiện mắt sẽ dựa trên tỉ lệ của khuôn mặt. -Tương ứng trong việc phát hiện khuôn mặt và mặt trong video, khuôn mặt và mắt sau khi được nhận dạng sẽ không cần phải nhận dạng lại nữa, mà thay vào đó, nó sẽ được theo dõi thông qua thuật toán theo dõi ảnh động CAMSHIFT( Continously Adaptive Mean Shift Algorithm) dựa trên màu sắc của vật thể sẽ được giới thiệu trong chương 2. Như vậy, sẽ không tốn nhiều tài nguyên xử lý không cần nhận dạng ở từng khung hình trong video.
Trường hợp việc theo dõi bị tạm ngưng hay ngắt mà không có khả năng theo dõi tiếp được thì chúng ta sẽ dùng đặc trưng Haar-like để phát hiện lại và theo dõi tiếp tục. - Một số phương pháp được kết hợp để phát triển một hệ thống theo dõi mắt. Như cách tiếp cận của chúng tôi không giả định rằng các chuỗi hình ảnh chỉ chứa Trang 4 Luận văn tốt nghiệp GVHD : Ths. Phan Thanh Minh hình ảnh khuôn mặt, nghiên cứu đã bắt đầu với giải quyết các vấn đề phát hiện khuôn mặt trong chuỗi video.
- Vấn đề bắt đầu trong hầu hết các trường hợp khai thác tính năng trên khuôn mặt, trong nghiên cứu này là những tính năng liên quan đến phát hiện mắt, là vấn đề nhận diện khuôn mặt, với vấn đề định vị hình ảnh. Nhiều kỹ thuật đã được phát triển để phát hiện khuôn mặt trong ảnh. Điểm khởi đầu việc nhận diện khuôn mặt, là phát hiện khuôn mặt trong một hình ảnh đơn lẻ. Sau khi phát triển một thuật toán hoạt động thành công trong hình ảnh tĩnh, các dòng video lấy từ một máy ảnh hoặc các nguồn khác, có thể được đánh giá.
trong trường hợp này, CAMSHIFT được sử dụng để nhận diện và theo dõi khuôn mặt. - Sau khi khuôn mặt được xác định, chức năng cvSetImageROI trong OpenCV sẽ giúp chúng ta giới hạn khu vực tìm kiếm mắt ( trong luận văn vấn đề chủ yếu là phát hiện con ngươi) bằng một cửa sổ có kích thước do chúng ta định sẵn, việc phát hiện con ngươi sẽ là việc tìm ra hình ảnh của vòng tròn trong khu vực tìm kiếm và xác định thông số của nó ( tâm và bán kính) thông qua cvHoughCircle. - Các lý thuyết về việc xử lý hình ảnh áp dụng cho chương trình cảnh báo tài xế ngủ gật sẽ được hình dung trong chương 2 của luận văn. Trang 5 Luận văn tốt nghiệp GVHD : Ths.
Phan Thanh Minh CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 2. - Luận văn nhằm phát triển hệ thống phát hiện tài xế buồn ngủ thông qua việc sử dụng chương trình opencv. Việc phát hiện tài xế có buồn ngủ hay không ta sẽ quan sát mắt của tài xế. Hình ảnh sẽ được xử lý bằng các phương pháp biên độ, lọc, khai thác tính năng, phân chia và phát hiện.
Để phát hiện vị trí của mắt thì đầu tiên phải khởi tạo được vị trí của khu vực khuôn mặt. - Việc phát hiện khuôn mặt là một trường hợp riêng trong phát hiện vật. Để phát hiện một vật, ta phải xác định được vị trí và kích cỡ của vật trong ảnh. Việc phát hiện khuôn mặt là để khoanh vùng tìm kiếm.
Trong việc này, nhiệm vụ là tìm vị trí và kích cỡ của khuôn mặt với một thông số đã được biết.2 Khái niệm chung 2. - Machine learning là một nhánh của trí thông minh nhân tạo. Nó nói về việc xây dưng và học hỏi của một hệ thống từ một nguồn dữ liệu. Ví dụ như hệ thống machine learning phát triển trên hộp thư điện tử(email) để phát hiện thư rác(spam) với thư bình thường.
Sau một thời gian nhận biết, nó có thể phân loại một email gửi đến là thư rác hay không. - Các thuật toán học máy được phân loại theo kết quả mong muốn của thuật toán. Các loại thuật toán thường dùng bao gồm : + Học có giám sát - trong đó, thuật toán tạo ra một hàm ánh xạ dữ liệu vào tới kết quả mong muốn. Một phát biểu chuẩn về một việc học có giám sát là bài toán phân loại : chương trình cần học (cách xấp xỉ biểu hiện của) một hàm ánh xạ Trang 6 Luận văn tốt nghiệp GVHD : Ths.
Phan Thanh Minh một vector tới một vài lớp bằng cách xem xét một số mẫu dữ liệu - kết quả của hàm đó. + Học không giám sát - mô hình hóa một tập dữ liệu, không có sẵn các ví dụ đã được gắn nhãn. + Học nửa giám sát - kết hợp các ví dụ có gắn nhãn và không gắn nhãn để sinh một hàm hoặc một bộ phân loại thích hợp. + Học tăng cường - trong đó, thuật toán học một chính sách hành động tùy theo các quan sát về thế giới.
Mỗi hành động đều có tác động tới môi trường, và môi trường cung cấp thông tin phản hồi để hướng dẫn cho thuật toán của quá trình học. + Chuyển đổi - tương tự học có giám sát nhưng không xây dựng hàm một cách rõ ràng. Thay vì thế, cố gắng đoán kết quả mới dựa vào các dữ liệu huấn luyện, kết quả huấn luyện, và dữ liệu thử nghiệm có sẵn trong quá trình huấn luyện. + Học cách học - trong đó thuật toán học thiên kiến quy nạp của chính mình, dựa theo các kinh nghiệm đã gặp.
- Thị giác máy bao gồm lý thuyết và các kỹ thuật liên quan nhằm mục đích tạo ra một hệ thống nhân tạo có thể tiếp nhận thông tin từ các hình ảnh thu được hoặc các tập dữ liệu đa chiều. Đối với mỗi con người chúng ta, quá trình nhận thức thế giới bên ngoài là một điều dễ dàng. Quá trình nhận thức đó được “học” thông qua quá trình sống của mỗi người. Tuy nhiên với các vật vô tri vô giác như như các máy tính, robot v.v thì điều đó quả thực là một bước tiến rất gian nan.
- Các thiết bị ngày nay không chỉ nhận thông tin ở dạng tín hiệu đơn lẻ mà nay còn có thể có cái “nhìn” thật với thế giới bên ngoài. Cái “nhìn” này qua quá trình phân tích, kết hợp với các mô hình như máy học, mạng nơron v.v sẽ giúp cho thiết Trang 7 Luận văn tốt nghiệp GVHD : Ths. Phan Thanh Minh bị tiến dần tới một hệ thống nhân tạo có khả năng ra quyết định linh hoạt và đúng đắn hơn rất nhiều. - Lĩnh vực nghiên cứu của thị giác máy rất rộng, và đặc điểm chung là các bài toán về thị giác máy tính đều không có một đề bài chung và cách giải duy nhất.
Mỗi giải pháp giải quyết vấn đều được một kết quả nhất định cho những trường hợp cụ thể. Ta có thể thấy sự tương quan giữa Computer vision với các lĩnh vực khác như sau: + Điều khiển tiến trình (ví dụ: trong các robot công nghiệp, hay các thiết bị, xe tự hành) + Phát hiện sự thay đổi (ví dụ: các thiết bị giám sát) + Tổ chức thông tin (ví dụ: chỉ số kho dữ liệu các ảnh hoặc chuỗi ảnh liên tục) + Mô hình hoá đối tượng (ví dụ: quá trình kiểm tra trong môi trường công nghiệp, xử lý ảnh trong y học) +Tương tác (đóng vai trò làm đầu vào cho thiết bị trong quá trình tương tác giữa người và máy) 2. - OpenCV là một thư viện mã nguồn mở phục vụ cho việc nghiên cứu hay phát triển về thị giác máy tính. - Tối ưu hóa và xử lí các ứng dụng trong thời gian thực.
- Giúp cho việc xây dựng các ứng dụng xử lí ảnh, thị giác máy tính,. một cách nhanh hơn. - OpenCV có hơn 500 hàm khác nhau, được chia làm nhiều phần phục vụ các côngviệc như: xử lí hình ảnh y tế, an ninh, camera quan sát, nhận diện, robots,. Trang 8 Luận văn tốt nghiệp GVHD : Ths.
Phan Thanh Minh - Cấu trúc tổng quan của OpenCV bao gồm 5 phần chính. 4 trong 5 phần đó được chỉ ra trong hình vẽ dưới. CV MLL HighGUI Các hàm về xử lý Các thuật toán học Các hàm và thủ tục ảnh và giải thuật về máy, bao gồm các bộ làm việc với file ảnh thị giác máy tính phân cụm, phân loại và file video thống kê 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 … Hình 2.2:Cấu trúc cơ bản của OpenCV - Phần CV bao gồm các thư viện cơ bản về xử lý ảnh và các giải thuật về thị giác máy tính. ML là bộ thư viện về các thuật toán học máy, bao gồm rất nhiều bộ phân cụm và phân loại thống kê.
HighGUI chứa đựng những thủ tục vào ra, các chức năng về lưu trữ cũng như đọc các file ảnh và video. Phần thứ 4, Cxcore chứa đựng các cấu trúc dữ liệu cơ bản ( ví dụ như cấu trúc XML, các cây dữ liệu …). Phần cuối cùng là CvAux, phần này bao gồm các thư viện cho việc phát hiện, theo dõi và nhận dạng đối tượng (khuôn mặt, mắt …). - Bài toán xác định khuôn mặt người (Face detection) là một kỹ thuật máy tính để xác định các vị trí và các kích thước của khuôn mặt trong ảnh bất kỳ (ảnh kỹ thuật số).
Kỹ thuật này nhận biết các đặt trưng khuôn mặt và bỏ qua những thứ khác như : toàn nhà , cây cối , cơ thể. Trang 9 Luận văn tốt nghiệp GVHD : Ths.