Nhiệm vụ của luận văn là giải quyết bài toán phát hiện khuôn mặt và điều khiển bệ xoay camera bám theo mặt người trong thời gian thực bằng thuật toán Fuzzy Logic, đồng thời đề xuất phươn
Trang 1ĐẠI HỌC QUỐC GIA TP.HCM
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
Mã số: 60 48 02 01
NGƯỜI HƯỚNG DẪN KHOA HỌC:
TS Nguyễn Tất Bảo Thiện
TP HỒ CHÍ MINH – NĂM 2017
Trang 2Tôi xin cam đoan luận văn này do chính tôi thực hiện dưới sự hướng dẫn khoa học của TS Nguyễn Tất Bảo Thiện, giảng viên Trường Đại học Tôn Đức Thắng
Các dữ liệu nghiên cứu và mô hình thí nghiệm trong luận văn là trung thực, do tôi lập trình, phân tích, thiết kế
Các thông tin trích dẫn trong luận văn này đều đã được chỉ rõ nguồn gốc
Nếu sai, tôi xin chịu hoàn toàn trách nhiệm
Tác giả luận văn
Nguyễn Ngọc Hoàng
Trang 3Trước tiên, xin cảm ơn thầy Nguyễn Tất Bảo Thiện vì đã gợi mở, quan tâm, giúp đỡ cho học viên trong suốt thời gian thực hiện luận văn tốt nghiệp này
Xin chân thành cảm ơn sự quan tâm hỗ trợ, tạo điều kiện và hết lòng động viên về tinh thần lẫn vật chất của các thành viên trong gia đình trong suốt thời gian qua
Bên cạnh đó xin chuyển lời cảm ơn đến bạn Hoàng Ngọc Tý, đã hỗ trợ học viên thực hiện mạch điều khiển hoạt động tin cậy và ổn định để học viên thử nghiệm và hoàn chỉnh hệ thống phần cứng đúng tiến độ đặt ra
Ngoài ra, học viên cũng xin gởi lời cám ơn đến tất cả những thầy cô đã trực tiếp giảng dạy trong suốt khóa học, những người bạn đã quan tâm, động viên trong quá trình học tập và nghiên cứu
Tp.Hồ Chí Minh, tháng 1 năm 2017
Tác giả luận văn
Nguyễn Ngọc Hoàng
Trang 4MỤC LỤC
Lời cam đoan 1
Lời cảm ơn 2
Danh mục các bảng 6
Danh mục hình vẽ, đồ thị 7
Tóm tắt 9
CHƯƠNG 1 TỔNG QUAN 9
1.1 Giới thiệu chung: 9
1.2 Điều khiển camera phát hiện và bám theo mặt người: 9
1.2.1 Phát biểu bài toán: 9
1.2.2 Lý do thực hiện đề tài: 10
1.2.3 Đối tượng nghiên cứu: Dữ liệu ảnh có khuôn mặt người nhìn thẳng từ camera 11
1.2.4 Phạm vi nghiên cứu: 11
1.2.5 Tình hình nghiên cứu: 11
1.2.6 Tính khoa học và thực tiễn của đề tài: 14
1.2.7 Phương pháp nghiên cứu: 15
1.2.8 Các vấn đề khó khăn: 17
1.2.9 Mục tiêu đề tài: 19
1.2.10 Dự kiến các lĩnh vực ứng dụng: 19
CHƯƠNG 2.CƠ SỞ LÝ THUYẾT 20
2.1 Phát hiện (dò tìm) khuôn mặt người 20
2.1.1 Các phương pháp phát hiện (dò tìm) khuôn mặt người 20
2.1.2 Phương pháp được sử dụng trong luận văn 22
2.2 Điều khiển mờ - fuzzy logic control: 26
2.2.1 Lý thuyết về điều khiển mờ (Fuzzy Logic Control): 27
2.2.2 Cấu trúc của bộ điều khiển mờ trong luận văn: 32
Trang 52.3.1 Lý thuyết về bộ điều khiển PID [8, tr 666-668; 12, tr 2521]: 34
2.3.2 Phương pháp sử dụng PID trong luận văn: 36
CHƯƠNG 3 XÂY DỰNG HỆ THỐNG 37
3.1 Ý tưởng xây dựng hệ thống và hoạt động 37
3.2 Tiến hành xây dựng thuật toán 37
3.2.1 Thuật toán phát hiện khuôn mặt 37
3.2.2 Thuật toán bám theo đối tượng: 37
3.3 Tiến hành xây dựng phần mềm 40
3.3.1 Dùng thuật toán Haar-like dò tìm khuôn mặt trong ảnh 41
3.3.2 Chương trình điều khiển bệ xoay mang camera 41
3.3.3 Hoạt động của phần mềm 43
3.3.4 Giao diện chương trình phần mềm hệ thống 47
3.4 Tiến hành xây dựng phần cứng phục vụ hệ thống 47
3.4.1 Camera 47
3.4.2 Bệ xoay mang camera 48
3.4.3 Mạch điều khiển motor 52
3.4.4 Chương trình vi xử lý nạp xuống mạch điều khiển 52
3.4.5 Hệ thống hoàn chỉnh được sử dụng 56
3.4.6 Một số thông số của hệ thống: 58
3.4.7 Một số sản phẩm có chức năng gần giống trên thị trường: 59
CHƯƠNG 4.KẾT QUẢ – NHẬN XÉT VÀ PHÂN TÍCH 60
4.1 Kết quả thử nghiệm 60
4.2 Nhận xét và phân tích kết quả đạt được 60
4.2.1 Nhận xét 60
4.2.2 Phân tích kết quả đạt được và hướng khắc phục 61
CHƯƠNG 5.KẾT LUẬN 63
5.1 Kết quả đạt được và ý nghĩa 63
Trang 6TÀI LIỆU THAM KHẢO 65
PHỤ LỤC 1 Hàm chính của OpenCVSharp được sử dụng trong luận văn [15] 68
PHỤ LỤC 2 Lớp xử lý Fuzy Logic Controller [8, tr 669; 12, tr 2519] 69
PHỤ LỤC 3 Chương trình vi xử lý nạp cho ATMega32 [2, 16] 78
Trang 7Bảng 3.1 Bộ luật điều khiển mờ 43
Bảng 3.2 Thông số của camera 48
Bảng 3.3 Các thông số mô tơ cần đặt cho chương trình và ý nghĩa của chúng 54
Bảng 3.4 Chi phí thực hiện hệ thống 58
Trang 8Hình 2.1.a Các đặc trưng cạnh 22
Hình 2.1.b Các đặc trưng đường 22
Hình 2.1.c Các đặc trưng khoanh vùng 23
Hình 2.2 Ảnh chia nhỏ tại tọa độ (x,y) 23
Hình 2.3 Tổng giá trị pixel nằm trong vùng A 24
Hình 2.4 Lược đồ cơ bản của AdaBoost 24
Hình 2.5 Thuật toán học AdaBoost 25
Hình 2.6 Dùng chuỗi cascade đã được huấn luyện để phát hiện cửa sổ con phù hợp 26
Hình 2.7 Cấu trúc các chuỗi cascade song song 26
Hình 2.8 Miền xác định và miền tin cậy của tập mờ 28
Hình 2.9 Một số dạng hàm thuộc 28
Hình 2.10 Ví dụ về liên hệ giữa biến ngôn ngữ và biến vật lý 29
Hình 2.11.Giải mờ theo phương pháp cực đại 32
Hình 2.12 Sơ đồ khối cấu trúc bộ điều khiển mờ trong luận văn 32
Hình 2.13 Sơ đồ khối của hệ thống xử lý PID 34
Hình 3.1 Lưu đồ thể hiện quá trình bám đối tượng của hệ thống 39
Hình 3.2 Sơ đồ khối tổ chức phần mềm hệ thống 40
Hình 3.3 Mô tả hệ thống dò tìm khuôn mặt 41
Hình 3.4 Mô tả kỹ thuật điều khiển bệ xoay camera bám đối tượng 42
Hình 3.5.Giao diện chương trình phát hiện và bám mặt người 47
Trang 9Hình 3.7 Hình dáng bệ xoay mang camera trước khi được cải tiến 49
Hình 3.8 Tháo rời bệ xoay trưóc khi cải tiến 49
Hình 3.9 Hộc trên và dưới của bệ xoay trước khi cải tiến 50
Hình 3.10 Mô tơ và công tắc hành trình của bệ xoay cũ 50
Hình 3.11 Mô tơ DC có encoder dùng cho bệ xoay cải tiến 51
Hình 3.12.Bệ xoay sau khi được cải tiến 51
Hình 3.13.Hình dạng tổng thể mạch điểu khiển mô tơ DC 52
Hình 3.14 Sơ đồ khối chương trình điều khiển nạp vào vi xử lý 53
Hình 3.15.Sơ đồ mạch điều khiển motor của bệ xoay mang camera 55
Hình 3.16 Sơ đồ mạch in của mạch điều khiển 56
Hình 3.17 Sơ đồ khối hệ thống hoàn chỉnh 56
Hình 3.18 Hệ thống hoàn chỉnh được sử dụng thực tế 57
Hình 3.19 Sơ đồ khối hóa hệ thống 57
Hình 3.20 Camera Dahua SD42212T-HN 59
Hình 3.21 Camera Dahua SD6C220T-HN 59
Hình 4.1 Phát hiện và khoanh vùng mặt nhìn thẳng, xoay ±20 độ 60
Trang 10Nhiệm vụ của luận văn là giải quyết bài toán phát hiện khuôn mặt và điều khiển bệ xoay camera bám theo mặt người trong thời gian thực bằng thuật toán Fuzzy Logic, đồng thời đề xuất phương pháp ổn định tốc độ của bệ xoay camera
Báo cáo này sẽ trình bày từng bước những tình huống, khó khăn gặp phải và hướng giải quyết trong quá trình triển khai nhằm đảm bảo luận văn được thực hiện đúng theo các yêu cầu, nhiệm vụ đặt ra Học viên đã chọn sử dụng thư viện OpenCVSharp ứng dụng các đặc trưng Haar-like và thuật toán tăng tốc AdaBoost nhằm đẩy nhanh quá trình dò tìm khuôn mặt người giúp tạo tiền đề cho chức năng điều khiển bám của hệ thống
Việc điều khiển bệ xoay mang camera bám theo khuôn mặt được học viên thực hiện theo hướng sử dụng kỹ thuật điều khiển mờ dựa trên thông số khoảng cách và độ thay đổi khoảng cách của đối tượng so với tâm khung ảnh, đồng thời kết hợp giải thuật điều khiển PID trên vi điều khiển ATMega32 nhằm ổn định tốc độ động cơ khi có tải Kết quả đã được kiểm chứng bằng mô hình bệ xoay do học viên cải tiến
từ bộ khung của một loại sản phẩm sẵn có trên thị trường
Trang 11CHƯƠNG 1 TỔNG QUAN
1.1 Giới thiệu chung:
Thị giác là giác quan cho phép con người cũng như hầu hết các loài động vật thu thập thông tin nhanh nhất, tinh tế nhất và cũng là kênh thông tin dồi dào nhất giúp đưa ra những quyết định kịp thời và nhanh chóng trong hầu hết tất cả các tình huống trong thực tế
Nhiều năm qua, có rất nhiều công trình nghiên cứu và ứng dụng thực tế về bài toán xác định khuôn mặt người từ ảnh đen trắng, xám đến ảnh màu như ngày hôm nay [6] Các nghiên cứu đi từ bài toán đơn giản, đối tượng cụ thể là ảnh chứa khuôn mặt người nhìn thẳng vào thiết bị thu hình và tìm cách nhận ra được đâu là mặt người và vị trí của nó trên ảnh Ngày nay, bài toán mở rộng cho ảnh màu, có nhiều khuôn mặt trong cùng một ảnh, mặt nhìn nghiêng hoặc đang trong tình trạng chuyển động, nhằm đáp ứng nhu cầu mà con người đặt ra [10; 11; 17]
Từ nhiều năm nay, cùng với sự phát triển mạnh mẽ của công nghệ robot, bài toán phát hiện khuôn mặt người và bám đối tượng cũng được nhiều nhà khoa học quan tâm và thực hiện Qua đó, hàng loạt các cuộc nghiên cứu và thử nghiệm về vấn đề tự động nhận dạng khuôn mặt đã được tiến hành [10; 17]
Các nghiên cứu được kể ra ở trên chủ yếu thiên về xử lý ảnh thuần túy Bên cạnh đó, việc áp dụng logic mờ vào hệ thống camera để nhận dạng và bám mặt người nói riêng hay đối tượng khác nói chung còn ít được nghiên cứu [9; 13] Ngoài
ra, học viên sau khi tham khảo thị trường bệ xoay và hệ thống camera đã thấy rằng các sản phẩm camera trên thị trường chưa bám được, chưa xoay tốt, chưa xoay như mong muốn v v Vấn đề này được học viên trình bày ở phần 3.4.7 – Một số hệ thống camera trên thị trường
1.2 Điều khiển camera phát hiện và bám theo mặt người:
1.2.1 Phát biểu bài toán:
Bài toán phát hiện và bám mặt người gồm có 2 bước như sau:
Trang 12a Phát hiện mặt người:
Xác định ảnh chứa mặt người từ ảnh đầu vào (có thể là chuỗi ảnh động hoặc video) Nếu khung hình chứa mặt người, khoanh vùng và xác định vị trí, phạm vi của khuôn mặt Đây là bước đầu tiên và quan trọng nhất trong các ứng dụng phân tích mặt người (ví dụ: nhận dạng mặt người, định vị mặt người, bám theo mặt người, nhận biết biểu cảm thể hiện trên khuôn mặt người…)
b Bám theo mặt người:
Từ kết quả phát hiện mặt người ở bước trên, hệ thống sẽ điều khiển camera bám theo mặt người
Yêu cầu đặt ra: Hệ thống xoay bám theo khi mặt người chuyển động và mặt
người luôn nằm trong phạm vi khung hình của camera dựa trên sự tương quan giữa tâm của khung hình camera so với vị trí của khuôn mặt được phát hiện trong khung hình Tín hiệu điều khiển bệ xoay camera (bao gồm xoay theo phương ngang và dọc) được cập nhật liên tục và điều khiển song song nhằm mục đích đạt được sự linh động, mượt mà khi bệ xoay camera đeo bám đối tượng
1.2.2 Lý do thực hiện đề tài:
Việc thu thập thông tin từ hình ảnh ngày càng trở thành một nhu cầu không thể thiếu của các hệ thống thông tin Nhiều nghiên cứu và ứng dụng thực tế từ lĩnh vực này đang được nghiên cứu và phát triển trong nhiều khía cạnh khác nhau của xã hội, trong đó đặc biệt là những ứng dụng có khả năng phát hiện và bám theo mặt người
Bài toán phát hiện khuôn mặt người và bám đối tượng được nhiều nhà khoa học quan tâm và thực hiện nhưng giải quyết bài toán trong thời gian thực là một vấn
đề tương đối khó Đặc biệt phải kể đến nhu cầu xây dựng những hệ thống hay robot được điều khiển mượt mà, uyển chuyển và có khả năng hoạt động nhịp nhàng như hoạt động của con người cũng là vấn đề không dễ giải quyết Thực tế cho thấy các kết quả còn hạn chế, tốc độ xử lý chậm, chưa đáp ứng được nhu cầu hiện đại, kết nối chưa nhiều với các cơ cấu truyền động để thực thi các ứng dụng thực tế
Trang 13Vì vậy nghiên cứu, triển khai bài toán phát hiện và bám mặt người xác định, thực thi phần mềm và phần cứng đáp ứng tốt trong thời gian thực mang tính cấp thiết
1.2.3 Đối tượng nghiên cứu: Dữ liệu ảnh có khuôn mặt người nhìn thẳng từ
camera
1.2.4 Phạm vi nghiên cứu:
- Về lý thuyết: Phương pháp phù hợp phát hiện và bám theo khuôn mặt
- Về ứng dụng: Chương trình phần mềm và phần cứng điều khiển bệ xoay có tốc độ thay đổi mang camera phát hiện và bám theo đối tượng
- Các điều kiện thực hiện : camera quay thẳng khuôn mặt, cường độ ánh sáng trong khoảng 300 – 500 lux (độ sáng tiêu chuẩn bình thường)
1.2.5 Tình hình nghiên cứu:
a Tình hình nghiên cứu trong nước:
Ở Việt Nam, các công trình nghiên cứu về xử lý ảnh trong việc phát hiện đối tượng nói chung hay phát hiện khuôn mặt nói riêng đã xuất hiện nhiều trong các trường đại học, Viện nghiên cứu trong những năm gần đây Nhóm nghiên cứu của
TS Lê Đình Duy và các đồng sự tại PTN truyền thông Đa Phương tiện, ĐH Công nghệ Thông tin có những nghiên cứu về tái nhận dạng nhân vật trong khuôn khổ của
đề tài ĐHQG về phát hiện trộm dùng mạng cảm biến camera Đề tài này đã nghiên cứu bài toán sử dụng hướng tiếp cận máy học cho việc phát hiện các thành phần cơ thể người (body-parts) Trong phần nghiên cứu liên quan đến lĩnh vực thị giác máy tính, đề tài tập trung vào việc nghiên cứu các kĩ thuật dùng thông tin hình ảnh để so khớp các ảnh của cùng một người khi di chuyển qua nhiều camera [18]
Ngoài ra, nhóm nghiên cứu gồm TS.Ngô Đức Thành, TS.Lê Đình Duy và các
đồng sự đã xuất bản bài báo với đề tài Xác định vị trí mắt người trong video bằng cách kết hợp nhận dạng và theo vết (2013) Trong công trình này, các tác giả đã đề
xuất phương pháp kết hợp hai hướng tiếp cận: dựa trên phát hiện mắt và dựa trên theo dấu vết Kết quả cho thấy phương pháp đề xuất của đề tài đạt được một cải tiến vượt trội so với cách tiếp cận SOTA [19]
Trang 14Bên cạnh đó, các công trình nghiên cứu trong nước về điều khiển hệ thống sử dụng FuzzyLogic cũng được quan tâm nhiều trong thời gian gần đây Nhóm nghiên cứu của PGS.TS Lê Hoài Bắc và các đồng sự tại Trường ĐH Khoa Học Tự Nhiên
có những nghiên cứu, xây dựng và thử nghiệm các hệ thống hỗ trợ quyết định dựa trên các công cụ khác nhau, chủ yếu trên hai công cụ: mạng nơron và logic mờ [20]
Tiến hành thực nghiệm với các mô hình lai giữa các công cụ: nơron, logic mờ và thuật giải di truyền (Genetic Algorithm) vào các bài toán:
Tối ưu hoá qui trình sản xuất và thành phần thuốc Y dược
Nhận dạng: ảnh chân dung, ảnh vân tay, cảm xúc dựa trên khuôn mặt, dò tìm khuôn mặt, tìm kiếm khuôn mặt
Hệ thống chứng thực chữ ký điện tử
Hệ thống chuẩn đoán bệnh dựa trên mạng nơron và logic mờ
Đã xây dựng được một số hệ thống chương trình hỗ trợ trong các lĩnh vực khác nhau như: Y học, Dược học, Nhận dạng, Chứng thực, đặc biệt là trong lĩnh vực an ninh quốc phòng Một số chương trình hỗ trợ cho việc tiến hành xây dựng các Robot
Xây dựng hệ thống giúp trẻ em khiếm thính luyện âm, tập nói, tập hát phát triển
tư duy dựa trên công nghệ xử lý tiếng nói, âm thanh, noron Đây là một hệ thống chương trình rất có ý nghĩa, trợ giúp cho trẻ em khiếm thính hòa nhập với cuộc sống bình thường của xã hội
Việc kết hợp các công cụ của mạng nơron và logic mờ cùng với các kỹ thuật khác cho phép giải quyết tốt một số lớp bài toán trong thực tế, mang lại hiệu qủa kinh tế cao
b Tình hình nghiên cứu ngoài nước:
Hiện nay, có nhiều nhóm nghiên cứu trên thế giới đã đạt được những thành tựu đáng kể về vận dụng kết quả của việc xử lý ảnh trong việc phát hiện đối tượng Tác giả Andreas Mogelmose (2012), Phòng kiến trúc, thiết kế và kỹ thuật phương tiện, trường ĐH Aalborg, Đan Mạch đã nghiên cứu ứng dụng phát hiện thay đổi tín hiệu đèn giao thông, phát hiện tín hiệu báo tốc độ tối đa cho phép bằng cách sử dụng thư
Trang 15viện OpenCV Trong nghiên cứu này, OpenCV được sử dụng như một công cụ giúp nhập, xuất và vẽ ảnh, video [3] Bên cạnh đó, tác giả đã huấn luyện và qua đó xây dựng hoàn chỉnh bộ phân loại đối tượng thông qua các công cụ được OpenCV hỗ trợ Cùng giải quyết bài toán phát hiện, tác giả Yufei Wang đến từ trường ĐH
California, USA đã phát triển hệ thống phát hiện và bám theo phương tiện nhằm mục đích cảnh báo tai nạn giao thông đường bộ [13] Trong nghiên cứu này, tác giả
sử dụng các bộ phân loại dựa trên đặc trưng Haar kết hợp với thuật toán tăng cường Adaboost trong việc phát hiện phương tiện giao thông Đối với bài toán bám theo phương tiện, tác giả nghiên cứu và sử dụng phương pháp Kalman filtering Hệ thống dựa trên sự so sánh các ảnh thu được và dùng phương pháp lọc phần tử dựa trên đặc trưng phương tiện để phát hiện sự chuyển động của phương tiện, phương pháp này còn giúp tránh bỏ sót đối tượng bị che phủ bởi đối tượng khác trong
khung hình
Trong vấn đề điều khiển và bám theo đối tượng, FuzzyLogic được nhiều tác giả quan tâm và nghiên cứu, ứng dụng vào các hệ thống điều khiển Nhóm tác giả Dimiter Driankov và Alessandro Saffiotti thuộc phòng Kỹ thuật, ĐH Örebro, Thụy Điển đã xây dựng ứng dụng path tracking và bám theo đối tượng di chuyển bằng Fuzzy Logic và xây dựng hệ hỗ trợ ra quyết định dựa trên kinh nghiệm về hành vi của con người (human-driver) [7] Nghiên cứu chỉ ra rằng, Fuzzy Logic khi được áp dụng vào hệ thống điều khiển có thể cho cùng một hiệu quả mà không cần thông tin chính xác, những thông tin có thể mang đến nhiều khó khăn và tốn kém mới có thể
xử lý được Fuzzy Logic cũng là một công cụ thích hợp để nhận thức về môi trường với thông tin không đầy đủ do khả năng nội suy và khả năng quản lý thông tin theo cách mà nhà thiết kế hệ thống theo dõi đường dẫn có thể hiểu được Cuối cùng, Fuzzy Logic cung cấp khả năng tích hợp hai nguồn thông tin thường được sử dụng trong các ứng dụng robot điều khiển từ xa: điều khiển phương tiện dưới dạng các quy tắc If-Then từ kinh nghiệm tài xế và luật điều khiển được trích xuất trực tiếp từ
dữ liệu cảm biến ghi lại trong khi tài xế đang điều khiển phương tiện Lợi thế của logic mờ là cả hai nguồn thông tin có thể được hợp nhất thành một cách mạch lạc bằng các quy tắc If-Then Kết quả của nghiên cứu trên cho thấy, Fuzzy Logic là một công cụ hữu ích để thiết kế hệ thống kiểm soát theo dõi cho các xe tự hành kết hợp
Trang 16cả hai quy tắc lái xe và máy học Cùng mục đích so sánh tính hiệu quả và sức mạnh
xử lý của Fuzzy Logic so với các giải pháp điều khiển hiện đại khác, nhóm tác giả Husain Ahmed, Gagan Singh, Vikash Bhardwaj, Saket Saurav, Shubham Agarwal
từ phòng Kỹ thuật điện máy, Uttarakhand, Ấn Độ đã đưa ra thí nghiệm điều khiển động cơ DC với 4 giải pháp khác nhau bao gồm: Ziegler-Nichols tuning, Hand tuning, Soft tuning in built in SIMULINK và Fuzzy logic controller [8].Theo so sánh kết quả của mô phỏng, nghiên cứu chỉ ra rằng bộ điều khiển Fuzzy Logic tốt hơn so với các phương pháp khác Bộ điều khiển Fuzzy Logic trình bày các chỉ số hiệu suất thỏa đáng sau đây:
Vượt quá - Overshoot: Có thể giảm mức vượt quá bằng cách sử dụng Bộ điều khiển logic mờ (Fuzzy Logic Controller)
Tăng thời gian: 1 giây, thấp nhất so với các phương pháp khác
Lỗi trạng thái ổn định: 0
Do đó, nghiên cứu kết luận rằng bộ điều khiển logic mờ được đề xuất cung cấp các đặc tính hiệu suất tốt hơn và cải thiện việc kiểm soát động cơ DC
Nhận xét: Như vậy, ứng dụng xử lý ảnh để phát hiện mặt người qua đó kết hợp với
điều khiển bám theo đã thể hiện được tiềm năng to lớn trong các ứng dụng sát sườn với cuộc sống hằng ngày và xa hơn là các ứng dụng cao cấp trong y tế và quân sự
Từ đó, chủ đề này nhận được nhiều sự quan tâm, nghiên cứu và ứng dụng thể hiện trong các công trình khoa học gần đây; song đây vẫn còn là lĩnh vực nghiên cứu và ứng dụng rất tiềm năng và được nhiều nhà nghiên cứu quan tâm, tìm tòi và phát triển Một số vấn đề đó là ứng dụng các giải pháp liên quan đến xử lý ảnh trong thời gian thực và thục thi trên hệ thống nhúng, bài toán điều khiển hệ thống phi tuyến phức tạp và xử lý giảm nhiễu, bài toán giảm ảnh hưởng của các tham số bất định tới
hệ thống
1.2.6 Tính khoa học và thực tiễn của đề tài:
Đề tài nghiên cứu, đề xuất sử dụng các phương pháp state of the art để phát hiện khuôn mặt Trong đề tài này, hai cách phát hiện đối tượng dựa trên ảnh lẫn dựa trên đặc điểm hình học được sử dụng phối hợp Việc phát hiện khuôn mặt là sự kết
Trang 17hợp giữa một thuật toán tăng cường gọi là AdaBoost và đặc tính đáp ứng nhanh của các đặc trưng Haar
Sau khi dò được khuôn mặt người, vị trí mặt người sẽ được cập nhật và xử lý phù hợp để truyền tín hiệu cho bộ điều khiển; bộ điều khiển sẽ so sánh vị trí mặt người với tâm của khung hình và xuất tín hiệu điều khiển đến board mạch điện tử
đề điều khiển bệ xoay sao cho camera luôn bám mặt người và vị trí mặt người duy
trì ở tâm khung hình
Ngày nay fuzzy logic thể hiện khả năng ưu việt trong điều khiển các hệ thống phức tạp và có thông tin không chắc chắn [1; 7; 8; 12] Trong đề tài này, bệ xoay được hiệu chỉnh, trong đó động cơ AC được thay thế bởi động cơ DC đi kèm với encoder để mở rộng khả năng hoạt động của bệ xoay Bệ xoay được xem như là một hệ thống có đặc tính động học phức tạp cần những nghiên cứu chuyên sâu của những ngành liên quan đến cơ học Tuy nhiên trong đề tài này, đặc tính động học chính xác của bệ xoay được bỏ qua và xem như không biết Vì vậy đề tài đề xuất hướng tiếp cận ứng dụng Fuzy Logic với các luật mờ được xây dựng dựa trên kinh nghiệm về hành vi của bệ xoay để xây dựng bộ điều khiển góc xoay camera bám theo mặt người
Chức năng này đặc biệt hữu dụng trong rất nhiều môi trường và lĩnh vực khác nhau (bao gồm an ninh, thị giác người máy, giải trí, xác nhận cá nhân, và các dạng truyền thông, giao tiếp qua internet, robot…)
1.2.7 Phương pháp nghiên cứu:
a Khảo sát tổng quan về phương pháp xử lý ánh và xây dựng phần mềm:
Bao gồm quá trình sau:
Khảo sát tổng quan về bài toán nhận dạng khuôn mặt người, các phương pháp kỹ thuật hiện nay trong bài toán phát hiện mặt người
Tìm hiểu khả năng lọc nhiễu ảnh sau khi lấy ảnh từ camera
Kết quả thu được:
Tài liệu tổng hợp, phân tích các phương pháp State Of The Art (SOTA) hiện nay về nhận dạng khuôn mặt
Các bộ dữ liệu chuẩn cho bài toán nhận dạng mặt người
Trang 18 Xây dựng ứng dụng nhận dạng khuôn mặt người sử dụng công cụ OpenCVSharp bằng phương pháp tối ưu nhất hiện nay là dựa trên các đặc trưng Haar-like có sự tham giá của thuật toán tăng tốc Adaboost
Lọc nhiễu ảnh: Sử dụng bộ lọc nhiễu có trong camera và các thư viện mã nguồn mở
b Khảo sát và xây dựng phần cứng:
Bao gồm quá trình sau:
Khảo sát và tìm hiểu cách sử dụng các loại camera phổ thông trên thị trường
Khảo sát các thiết bị cho phép điểu khiển bệ xoay mang camera bám theo mặt người
Tìm hiểu và lắp ráp mạch điều khiển cho hệ thống bệ xoay mang camera
Tìm hiểu việc nhận dữ liệu trả về từ camera và nạp mã điều khiển xuống mạch điều khiển của bệ xoay
Kết quả đạt được:
Chọn ra thiết bị tối ưu về khả năng giao tiếp và giá thành để làm thực
nghiệm, gồm có: Camera IP kết nối hệ thống qua cáp RJ45, mạch điều khiển giao tiếp giữa bệ xoay với máy tính và bệ xoay thông dụng trên thị trường PTS-302
Thi công hoàn chỉnh phần cứng gồm: Bệ xoay mang camera và mạch điều khiển
c Phân tích bài toán điều khiển bám mặt người và thiết kế bộ điều khiển FuzzyLogic:
Sau khi xác định đầu vào của bài toán gồm 2 thông tin: độ lệch của mặt người so với tâm khung hình và sai lệch giữa 2 lần quét kế tiếp, tiếp tục tiến hành các bước sau:
Nghiên cứu logic mờ: xác định tập mờ, biến ngôn ngữ mờ, các luật mờ dựa trên thông số khoảng cách và độ thay đổi khoảng cách của đối tượng so với tâm khung ảnh
Nghiên cứu điều khiển mờ: dựa vào hệ luật mờ, input (giá trị của cảm biến), đưa ra output thích hợp
Trang 19 Thiết kế bộ điều khiển mờ: input rõ qua bộ mờ hóa thành input mờ (tập mờ); sau đó qua hệ luật mờ đưa ra output mờ; từ output mờ qua bộ giải mờ đưa ra giá trị rõ; giá trị rõ này được xử lý để điều khiển motor
Đề xuất phương pháp cải tiến khả năng đáp ứng động cơ
Kết quả đạt được sau khi đã nắm vững kiến thức về điều khiển Fuzzy Logic:
Hiện thực bộ điều khiển mờ: biến mờ, luật mờ, giải mờ
Xây dựng hệ thống điều khiển bệ xoay có khả năng đáp ứng thời gian thực với 2 tiêu chí:
o Phát hiện: sử dụng thuật toán phát hiện mặt người với thời gian xử lý ngắn nhất
o Bám theo: bằng cách điều khiển song song 2 motor
Kết hợp xử lý giữa FuzzyLogic ở tầng trên và giải thuật PID nhận phản hồi
từ sensor ở tầng vi điều khiển, giúp bệ xoay hoạt động an toàn
d Xây dựng hệ thống phát hiện và bám theo đối tượng:
Sau khi hoàn thành phần cứng và thiết kế bộ điều khiển FuzzyLogic, tiến hành lắp ráp hoàn chỉnh hệ thống bao gồm: Chương trình phần mềm và phần cứng điều khiển bệ xoay có tốc độ thay đổi mang camera phát hiện và bám theo đối tượng
e Kiểm định hệ thống:
Sau khi xây dựng hoàn chỉnh hệ thống, tiến hành chạy thử và đo các thông số, các bước thực hiện như sau:
Xác định thời gian lấy ảnh từ camera, tốc độ trung bình đo được: 70ms/frame
Kiểm tra khả năng phát hiện khuôn mặt với thời gian đáp ứng ngắn nhất: 30ms
Kiểm tra thời gian xử lý của giải thuật FuzzyLogic: 1ms
Kiểm tra hiệu suất hoạt động của mạch điều khiển, thay thế linh kiện không an toàn
Theo dõi hoạt động của bệ xoay, duy trì vận tốc điều khiển an toàn
1.2.8 Các vấn đề khó khăn:
a Phần mềm:
Các phương pháp phổ biến trong việc phát hiện đối tượng hiện nay thường dựa vào việc tìm ra mô hình hoặc bộ phân lớp hoặc một bộ cơ sở dữ liệu đặc tả tối ưu
Trang 20nhất Tuy nhiên những mô hình hay cơ sở dữ liệu này chưa thực sự đem lại hiệu quả tốt trong các trường hợp sau:
- Độ nghiêng khuôn mặt trong khung hình: Hệ thống cho kết quả phát hiện tốt nhất đối với khuôn mặt nhìn thẳng Đối với các tư thế khuôn mặt nghiêng hoặc lệch, kết quả phát hiện thường thiếu tính liên tục do việc phát hiện bị gián đoạn
- Sự xuất hiện của các đối tượng khác: những đối tượng có thể làm cho kết quả
bị sai lệch có thể là khuôn mặt người có kích thước lớn (hoặc các vật thể có cấu trúc hình học tương tự mặt người) Chúng xuất hiện đột ngột làm cho hệ thống kém chính xác trong quá trình bám khuôn mặt
- Phông nền và điều kiện ghi nhận ảnh: đây cũng là hai vấn đề ảnh hưởng không nhỏ đến chất lượng của việc phát hiện khuôn mặt người Khi phông nền ảnh càng chứa nhiều thành phần (bao gồm các chi tiết rối rắm, màu sắc phức tạp) hoặc sự biến đổi liên tục (dịch chuyển, rung, lắc, giật, …) hoặc môi trường không đồng nhất, không trong sạch (có bụi hoặc nhiều vùng có chiết suất khác nhau ) thì hiệu vấn đề phát hiện càng khó khăn và phức tạp
b Phần cứng:
Luận văn tận dụng thiết bị cùng loại có sẵn trên thị trường để giảm bớt độ khó khăn và phức tạp nên việc cấu trúc lại phần cứng là tất yếu Có hai khó khăn trong quá trình cải tiến:
- Cơ khí của bệ xoay: Việc thay thế mô tơ có cấu trúc hoàn toàn khác biệt khiến cho phần cơ khí của toàn bộ bệ xoay phải thay đổi
- Mạch điều khiển: Để bệ xoay có thể hoạt động linh hoạt và uyển chuyển nhờ điều khiển song song hai động cơ, vấn đề giao tiếp giữa mạch điều khiển và máy tính cũng như quá trình phản hồi vị trí của encoder phải được xử lý tốt
Để khắc phục khó khăn về phần cứng, học viên đã tìm hiểu và sử dụng thuật toán PID, giúp nâng cao khả năng điều khiển và đáp ứng ổn định để giữ camera (khối lượng khoảng 0,5 kg) an toàn trong quá trình hoạt động
Trang 211.2.9 Mục tiêu đề tài:
- Nghiên cứu các kỹ thuật hiện nay cho bài toán phát hiện khuôn mặt người, kết hợp với hệ thống điều khiển động cơ của bệ xoay mang camera thực hiện việc bám mặt đối tượng
- Đưa ra một số đề xuất giúp cải thiện đáp ứng động cơ bệ xoay camera
- Triển khai hệ thống phát hiện và bám khuôn mặt mặt người cụ thể, đáp ứng trong thời gian thực với khả năng hoạt động mượt mà, uyển chuyển
- Hoạt động hội đàm, giáo dục, đào tạo trực tuyến
- Làm công cụ nghiên cứu, thực hành trực quan về thị giác máy tính
Trang 22CHƯƠNG 2.CƠ SỞ LÝ THUYẾT
2.1 Phát hiện (dò tìm) khuôn mặt người
2.1.1 Các phương pháp phát hiện (dò tìm) khuôn mặt người
Có hai hướng tiếp cận chính thường được sử dụng để dò tìm khuôn mặt: các phương pháp dựa trên ảnh và các phương pháp dựa trên dạng hình học Vài phương
pháp phát hiện khuôn mặt có thể được kể ra như sau:
a Phát hiện dựa trên ảnh
Các phương pháp thuộc nhóm này dựa trên một tập hợp các ví dụ mẫu và sử dụng một cửa sổ trượt để thực hiện phát hiện khuôn mặt Cách làm này khác biệt so với các phương pháp dựa trên khuôn mẫu (cần thiết phải có sẵn mô hình, cơ sở tri thức về khuôn mặt) Để trích các đặc trưng từ các mẫu ví dụ, cần phải thực hiện việc cho học dưới dạng thống kê hoặc những thuật toán huấn luyện máy (machine learning) với càng nhiều càng tốt các phân bố mẫu ví dụ bao gồm cả hai trường hợp
“là khuôn mặt” hay “không là khuôn mặt” Do các hàm mật độ này là hoàn toàn ngẫu nhiên nên thường phải xấp xỉ chúng để tạo nên các hàm phân biệt hai loại đối tượng này Tùy theo cách tiếp cận xác suất nào mà sẽ xuất hiện các phương pháp dò tìm tương ứng Dưới đây là một số những phương pháp thuộc nhóm này:
- Phương pháp Eigenfaces
- Phương pháp Fisher’s Linear Discriminant
- Các phương pháp dựa trên Eigen-space
- Các phương pháp dựa trên mạng nơ-ron nhân tạo
- Support Vector Machine (SVM)
- Hidden Markov Model (HMM)
- Phương pháp Sparse Network of Winnows (SNoW)
Các công trình tập trung vào phát triển những kỹ thuật máy học nhằm tối ưu hóa các tham số của các mô hình nhận dạng hoặc học những đặc trưng hiệu quả từ dữ liệu huấn luyện [3; 4; 9] Do nhóm phương pháp này dựa trên việc huấn luyện sao cho thu được mô hình khuôn mặt từ một tập dữ liệu tích cực (là khuôn mặt) và một tập dữ liệu không tích cực (không là khuôn mặt) nên chúng ko có mối tương quan
Trang 23trực tiếp đến các đặc điểm hình học của một kiểu khuôn mặt điển hình Nhóm phương pháp còn lại sẽ là minh chứng cho cách tiếp cận theo đặc điểm hình học
b Phát hiện dựa trên dạng hình học (feature based approach):
Khác với nhóm phương pháp vừa nêu, các phương pháp thuộc nhóm này quan tâm đến đặc điểm cấu trúc hình học của khuôn mặt người Vì vậy chúng còn được gọi là nhóm tiếp cận dựa trên đặc điểm (feature-based) Tùy theo cách triển khai vấn đề mà chúng được chia thành hai phân nhóm:
- Các phương pháp Top-down
- Các phương pháp Bottom-up
Tuy nhiên mỗi phân nhóm trên do dựa trên nguyên tắc khác nhau nên chúng cũng có ưu, nhược điểm riêng Nhóm Top-down sử dụng màu sắc như là một loại đặc trưng đơn giản nhưng rất hiệu quả được sử dụng rất rộng rãi trong các công trình [5; 10; 11] Nhóm này chủ yếu dùng màu da để phát hiện khuôn mặt nên rất nhạy cảm, sẽ dễ đưa đến kết quả không đúng bởi nhiều yếu tố như ảnh nền, sự thay đổi cường độ sáng qua các camera khác nhau Trong khi đó, nhóm Bottom-up chủ yếu dùng các đặc điểm bất biến của khuôn mặt đối với ngoại cảnh để phát hiện khuôn mặt rồi tùy vào mối liên hệ của chúng với nhau mà thiết lập các liên kết giữa các đặc điểm bất biến này ngay trong ảnh đầu tiên; tiếp theo sẽ dựa vào đó mà tìm chúng trên các ảnh kế tiếp Có thể kể đến đặc trưng dựa trên sinh học (Biologically Inspired Feature – BIF), loại đặc trưng khá mới cũng nhận được sự quan tâm trong [10]
Trong luận văn này, việc phát hiện khuôn mặt là sự kết hợp giữa một thuật toán tăng cường gọi là AdaBoost và đặc tính đáp ứng nhanh của các đặc trưng Haar Đây
là một phương pháp được xem là dựa trên cả hai cách phát hiện đối tượng dựa trên ảnh lẫn dựa trên đặc điểm hình học
Cụ thể, phương pháp này không chỉ sử dụng các thuật toán học (learning algorithm) để huấn luyện bộ phân lớp bằng các mẫu ví dụ đúng và không đúng mặt người được chọn lựa trước cẩn thận (đặc điểm của nhóm phương pháp dựa trên ảnh), mà các đặc trưng được chọn ra bởi thuật toán học hầu hết có liên quan trực tiếp đến các đặc trưng riêng biệt trên khuôn mặt người (độ tương phản của sóng mũi, vị trí cặp mắt …) Kỹ thuật tăng tốc cải thiện hiệu suất của các bộ phân loại cơ
Trang 24sở bằng cách đặt lại trọng số cho các mẫu ví dụ dùng trong huấn luyện Lý do đưa đến quyết định trên sẽ được lần lượt trình bày trong các phần tiếp theo
2.1.2 Phương pháp được sử dụng trong luận văn
Luận văn sử dụng thuật toán phát hiện mặt người dựa trên đặc trưng Haarlike, kết hợp thuật toán tăng tốc AdaBoost Sau khi phát hiện được vị trí khuôn mặt trong khung hình, lệnh điều khiển sẽ được gửi đến thiết bị thi hành (mạch điều khiển bệ xoay camera) Sau đây là phần trình bày phương thức hoạt động của phương pháp
Trang 25Hình 2.1.c Các đặc trưng khoanh vùng
Giá trị của đặc trưng Haar-like được xác định bởi độ chênh lệch giữa tổng các giá trị pixel mức xám nằm trong vùng đen so với vùng trắng [3, tr 41; 13] Việc dùng “ảnh chia nhỏ” (integral image) giúp tính toán nhanh chóng các đặc trưng Haar-like
Hình chia nhỏ ở vị trí x, y bằng tổng các giá trị pixel phía tên bên trái của tọa
Hình 2.2 Ảnh chia nhỏ tại tọa độ (x,y)
Tổng các giá trị pixel trong vùng “A”:
P1 = A1; P = A + A1 + A2 + A3;
P2 = A1 + A2; P3 = A1 + A3; (2.2)
A = P + P1 – P2 – P3;
Trang 26Hình 2.3 Tổng giá trị pixel nằm trong vùng A
Để phát hiện ra khuôn mặt, ảnh đầu vào được rà bằng một cửa sổ con có
chứa đặc trưng Haar-like Dựa trên từng đặc trưng Haar-like fj, một bộ phân loại yếu hj(x) đưọc qui định như sau:
ℎ𝑗(𝑥) = {1, 𝑖𝑓 𝑝𝑗𝑓𝑗(&𝑥) < 𝑝𝑗𝛳𝑗
𝑥, 𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒
b Thuật toán tăng tốc AdaBoost: [3, tr 40, 42; 6, tr 209; 13]
AdaBoost (Adaptive Boosting) là một thuật toán học mạnh được Freund và Schapire đưa ra vào năm 1995, giúp đẩy nhanh việc tạo ra một bộ phân loại mạnh (strong classifier) bằng cách chọn các đặc tính tốt trong một họ các bộ phân lớp yếu (weak classifier – các bộ phân loại đơn giản) và kết hợp chúng lại tuyến tính bằng cách sử dụng các trọng số (Hình 2.4)
Hình 2.4 Lược đồ cơ bản của AdaBoost
Thuật toán học này ban đầu duy trì một phân bố chuẩn (bằng nhau) các trọng
số lên mỗi mẫu huấn luyện Trong bước lặp đầu tiên, thuật toán huấn luyện một bộ phân lớp yếu bằng cách dùng một đặc trưng Haar-like đã thực hiện tốt nhất việc phát hiện các mẫu thử huấn luyện Trong lần lặp thứ hai, các mẫu thử dùng cho
(2.3)
Trang 27huấn luyện nhưng bị phân loại nhầm bởi bộ phân loại yếu đầu tiên được nhận trọng
số cao hơn sao cho đặc trưng Haar-like được chọn lần này phải tập trung khả năng tính toán cho các mẫu thử bị phân loại nhầm này Sự lặp lại tiếp tục thực hiện và các kết quả cuối cùng sẽ là một chuỗi cascade các kết hợp tuyến tính của các bộ phân loại yếu, tạo ra một bộ phân loại mạnh, giúp tạo được độ chính xác mong muốn (Hình 2.5 là ví dụ thuật toán AdaBoost sau ba lần lặp, [3; 6])
Hình 2.5 Thuật toán học AdaBoost
Bộ phân lớp mạnh cuối cùng là sự kết hợp có trọng số của các bộ phân lớp yếu:
H(x) = (α1h1(x) + α2h2(x) + α (2.4)
Thuật toán AdaBoost [3; 6], trong thực tế, chuỗi cascade các bộ phân loại được triển khai nhằm tăng tốc độ thực thi của thuật toán học Trong giai đoạn đầu của quá trình huấn luyện, ngưỡng của bộ phân loại yếu được điều chỉnh đủ thấp sao cho 100% các đối tượng đích có thể được dò ra trong khi vẫn giữ tỉ lệ nhận dạng sai mẫu không tích cực gần bằng zero Sự cân bằng một ngưỡng thấp gắn liền với với tỉ
lệ phát hiện sai mẫu tích cực cao hơn Một mẫu tích cực thoát ra từ bộ phân lớp yếu
Trang 28đầu tiên kích hoạt sự ước lượng của bộ phân lớp thứ hai, cũng sẽ được điều chỉnh sao cho đạt được tỉ lệ phát hiện rất cao Tương tự như thế, một mẫu tích cực xuất ra
từ bộ phân lớp thứ hai lại tiếp tục kích hoạt cho bộ phân lớp thứ ba… [3; 6]
Các cửa sổ con là tích cực (phù hợp, đúng là đối tượng) nếu được cho qua tại từng bộ phân lớp của chuỗi cascade đã được huấn luyện Nếu không, một ngõ ra trên chuỗi sẽ loại bất kỳ cửa sổ không phù hợp ngay lập tức (Hình 2.6, [6, tr 206; 13; 14])
Hình 2.6 Dùng chuỗi cascade đã được huấn luyện để phát hiện cửa sổ con phù hợp
Bằng cách sử dụng cấu trúc gồm các chuỗi cascade song song, tốc độ phát hiện đối tượng sẽ được cải thiện đáng kể (Hình 2.7, [3, tr 109; 13])
Hình 2.7 Cấu trúc các chuỗi cascade song song 2.2 Điều khiển mờ - fuzzy logic control:
Trang 292.2.1 Lý thuyết về điều khiển mờ (Fuzzy Logic Control):
a Giới thiệu về logic mờ [1; 7, tr 25; 8; 12]:
Toán học phổ thông giới thiệu khá nhiều về tập hợp, ví dụ như tập các số thực R, tập các số nguyên tố P={2,3,5,…}… Những tập hợp như vậy được gọi là tập hợp kinh điển hay tập rõ, tính “RÕ” ở đây được hiểu là với một tập xác định S chứa n phần tử thì ứng với phần tử x ta xác định được một giá trị y=S(x)
Xét phát biểu thông thường về tốc độ một chiếc xe môtô: rất chậm, chậm, trung bình, hơi nhanh, rất nhanh Phát biểu “CHẬM” ở đây không được chỉ rõ là bao nhiêu km/h, như vậy từ “CHẬM” có miền giá trị là một khoảng nào đó, ví dụ 5 km/h – 20 km/h chẳng hạn Tập hợp L = {chậm, trung bình, hơi nhanh, rất nhanh} như vậy được gọi là một tập các biến ngôn ngữ Với mỗi thành phần ngôn ngữ xkcủa phát biểu trên nếu nó nhận được một khả năng µ(xk) thì tập hợp F gồm các cặp (x, µ(xk)) được gọi là tập mờ
b Định nghĩa tập mờ [7, tr 28]:
Tập mờ F xác định trên tập kinh điển B là một tập mà mỗi phần tử của nó là một cặp giá trị (x, (µF(xk)) với x X và µF là một ánh xạ:
µF(x): B [0 1] trong đó: µF gọi là hàm thuộc, B gọi là tập nền
c Các thuật ngữ trong Fuzzy Logic:
Độ cao tập mờ F là giá trị H = sup µF(x) trong đó sup µF (x) chỉ giá trị nhỏ nhất trong tất cả các chặn trên của hàm µF(x)
Một tập mờ có ít nhất 1 phần từ có độ phụ thuộc bằng 1 được gọi là tập mờ chính tắc, tức là H=1 Ngược lại, một tập mờ có H<1 gọi là tập mờ không chính tắc
Miền xác định của tập mờ F, ký hiệu S là tập con thoả mãn:
S = {x B | µF(x) > 0}
Miền tin cậy của tập mờ F, ký hiệu là T là tập con thoả mãn:
T = {x B | µF(x) = 1}
Trang 30Hình 2.8 Miền xác định và miền tin cậy của tập mờ
d Các dạng hàm thuộc (membership function) trong logic mờ:
Có rất nhiều các dạng hàm thuộc như Gaussian, PI-shape, S-shape, Sigmoidal, shape
Z-Hình 2.9 Một số dạng hàm thuộc
e Biến ngôn ngữ:
Biến ngôn ngữ là phần từ chủ đạo trong các hệ thống dùng logic mờ Ở đây các thành phần ngôn ngữ của cùng một ngữ cảnh được kết hợp lại với nhau Để minh hoạ về hàm thuộc và biến ngôn ngữ ta xét ví dụ sau:
Trang 31Xét tốc độ của một chiếc xe môtô, ta có thế phát biểu xe đang chạy: Rất chậm (VS), Chậm (S), Trung bình (M), Nhanh (F), Rất nhanh (VF)
Những phát biểu như vậy gọi là biến ngôn ngữ của tập mờ Gọi x là giá trị của biến tốc độ, ví dụ x = 10km/h, x = 60km/h .Hàm thuộc tương ứng của các biến ngôn ngữ trên được ký hiệu là:
µVS(x), µS(x), µM(x), µF(x), µVF(x)
Như vậy biến tốc độ có hai miền giá trị:
Miền các giá trị ngôn ngữ:
N = {rất chậm, chậm, trung bình, nhanh, rất nhanh}
Miền các giá trị vật lý:
V = { x B | x ≥ 0}
Biến tốc độ được xác định trên miền ngôn ngữ N được gọi là biến ngôn ngữ
Với mỗi x B ta có hàm thuộc: x µX { µVS(x), µS(x), µM(x), µF(x), µVF(x) }
Ví dụ hàm thuộc tại giá trị rõ x = 65km / h là:
µX (65) = {0, 0, 0.75, 0.25, 0}
Hình 2.10 Ví dụ về liên hệ giữa biến ngôn ngữ và biến vật lý
f Các phép toán trên tập mờ [7, tr 29]:
Trang 32Cho X, Y là hai tập mở trên không gian nền B, có các hàm thuộc tương ứng là µX,
µY, khi đó:
Phép hợp hai tập mờ: X ∪ Y
Theo luật Max: µX ∪ Y (b) = Max { µX(b), µY(b) }
Theo luật Sum: µX ∪ Y (b) = Min {1, µX(b) + µY(b) }
Tổng trực tiếp: µX ∪ Y (b) = µX(b) + µY(b) - µX(b).µY(b)
Phép giao hai tập mờ: X Y
Theo luật Min: µX Y(b) = Min { µX(b), µY(b) }
Theo luật Lukasiewicz: µX Y(b) = Max {0, µX(b) + µY(b) - 1 }
Theo luật Prod: µX Y(b) = µX(b).µY(b)
Phép bù tập mờ: µXc (b) = 1 - µX(b)
g Các luật hợp thành:
Mệnh đề hợp thành [7, tr 33]:
Ví dụ điều khiển mực nước trong bồn chứa, ta quan tâm đến 2 yếu tố:
Mực nước trong bồn L = {rất thấp, thấp, vừa}
Góc mở van ống dẫn G = {đóng, nhỏ, lớn}
Ta có thể suy diễn cách thức điều khiển như thế này:
Nếu mực nước = rất thấp Thì góc mở van = lớn
Nếu mực nước = thấp Thì góc mở van = nhỏ
Nếu mực nước = vừa Thì góc mở van = đóng
Trong ví dụ trên ta thấy có cấu trúc chung là “Nếu A thì B” Cấu trúc này gọi là mệnh đề hợp thành, A là mệnh để điều kiện, C = A => B là mệnh đề kết luận
Định lý Mamdani:
Trang 33“Độ phụ thuộc của kết luận không được lớn hơn độ phụ thuộc điều kiện”
Nếu hệ thống có nhiều đầu vào và nhiều đầu ra thì mệnh để suy diễn có dạng tổng quát như sau:
If N = n i and M = m i and … Then R = r i and K = k i and …
Luật hợp thành [7, tr 35]:
Luật hợp thành là tên gọi chung của mô hình biểu diễn một hay nhiều hàm thuộc
Các luật hợp thành cơ bản:
Luật Max - Min
Luật Max - Prod
Luật Sum - Min
Luật Sum - Prod
Xác định y’ theo một trong 3 cách sau:
Nguyên lý trung bình, Nguyên lý cận trái, Nguyên lý cận phải
Nguyên lý trung bình: chọn 𝑦′ = 𝑦1+𝑦2
2Nguyên lý cận trái: chọn y’ = y1
Nguyên lý cận phải: chọn y' = y2
Trang 34Hình 2.11 Giải mờ theo phương pháp cực đại
( )
S S
y y dy y
2.2.2 Cấu trúc của bộ điều khiển mờ trong luận văn:
Hình 2.12 Sơ đồ khối cấu trúc bộ điều khiển mờ trong luận văn
Cấu trúc bộ điều khiển mờ trong luận văn áp dụng phương pháp trọng tâm of-gravity) [1, tr 35; 7, tr 39]
(Center- Sơ đồ cấu trúc bộ điều khiển mờ:
Gồm 3 khâu cơ bản:
- Khâu mờ hóa
(2.5)
Trang 35- Thực thi luật hợp thành
- Khâu giải mờ
Các nguyên lý thiết kế hệ thống điều khiển mờ:
- Giao diện đầu vào gồm các khâu: mờ hóa và các khâu hiệu chính như tỷ lệ, tích phân, vi phân
- Thực thi luật hợp thành: triển khai luật hợp thành R
- Giao diện đầu ra gồm: khâu giải mờ và các khâu giao diện trực tiếp với đối tượng
Trình tự thiết kế hệ thống điều khiển mờ:
Bước l: Định nghĩa các biến ngôn ngữ vào/ra
Bước 2: Gồm có:
- Xác định các tập mờ cho từng biến ngôn ngữ vào/ra (mờ hóa)
- Xác định miền giá trị vật lý của các biến ngôn ngữ
- Số lượng tập mờ
- Xác định các hàm thuộc
- Rời rạc hóa tập mờ
Bước 3: Xây dựng các luật hợp thành
Bước 4: Chọn luật hợp thành để thực thi
Bước 5: Giải mờ và tối ưu hóa
Trang 362.3 Điều khiển PID:
2.3.1 Lý thuyết về bộ điều khiển PID [8, tr 666-668; 12, tr 2521]:
Hình 2.13 Sơ đồ khối của hệ thống xử lý PID
Trong lĩnh vực điều khiển, bộ điều khiển PID được xem như một giải pháp
đa năng cho các ứng dụng điều khiển tương tự hay điều khiển số Hơn 90% các bộ điều khiển trong công nghiệp được sử dụng là bộ điều khiển PID Bộ điều khiển PID có khả năng điều khiển hệ thống đáp ứng các tiêu chí chất lượng như đáp ứng nhanh, thời gian quá độ ngắn, triệt tiêu được sai lệch tĩnh
Luật điều khiển PID được định nghĩa:
Trong đó u là tín hiệu điều khiển và e là sai lệch điều khiển (e = ysp – y)
Tín hiệu điều khiển là tổng của 3 thành phần: tỉ lệ, tích phân và vi phân
Hàm truyền của bộ điều khiển PID:
Trang 37Tác động của thành phần tích phân đơn giản là tín hiệu điều khiển tỉ lệ tuyến tính với sai lệch điều khiển Ban đầu, khi sai lệch lớn thì tín hiệu điều khiển lớn Sai lệch giảm dẫn thì tín hiệu điều khiển cũng giảm dần Khi sai lệch e(t) = 0 thì u(t) =
0 Một vấn đề là khi sai lệch đổi dấu thì tín hiệu điều khiển cũng đổi dấu
Thành phần P có ưu điểm là tác động nhanh và đơn giản Hệ số tỉ lệ KP càng lớn thì tốc độ đáp ứng càng nhanh, do đó thành phần P có vai trò lớn trong giai đoạn đầu của quá trình quá độ
Tuy nhiên, khi hệ số tỉ lệ KP càng lớn thì sự thay đổi của tín hiệu điều khiển càng mạnh dẫn đến dao động lớn, đồng thời làm hệ nhạy cảm hơn với nhiễu đo Hơn nữa, đối với đối tượng không có đặc tính tích phân thì sử dụng bộ P vẫn tồn tại sai lệch tĩnh
Thành phần Tích phân (I)
0
t I
u t K e d
Với thành phần tích phân, khi tồn tại một sai lệch điều khiển dương, luôn làm tăng tín hiệu điều khiển, và khi sai lệch là âm thì luôn làm giảm tín hiệu điều khiển, bất
kể sai lệch đó là nhỏ hay lớn Do đó, ở trạng thái xác lập, sai lệch bị triệt tiêu e(t) =
0 Đây cũng là ưu điểm của thành phần tích phân
Nhược điểm của thành phần tích phân là do phải mất một khoảng thời gian để đợi e(t) về 0 nên đặc tính tác động của bộ điều khiến sẽ chậm hơn Ngoài ra, thành phần tích phân đôi khi còn làm xấu đi đặc tính động học của hệ thống, thậm chí có thể làm mất ổn định
Người ta thường sử dụng bộ PI hoặc PID thay vì bộ 1 đơn thuần vừa để cải thiện tốc
độ đáp ứng, vừa đảm bảo yêu cầu động học của hệ thống
Thành phần Vi phân (D)
( )( )
Trang 38Mục đích của thành phần vi phân là cải thiện sử ổn định của hệ kín Do động học của quá trình, nên sẽ tồn tại một khoảng thời gian trễ làm bộ điều khiển chậm
so với sự thay đổi của sai lệch e(t) và đầu ra y(t) của quá trình Thành phần vi phân đóng vai trò dự đoán đầu ra của quá trình và đưa ra phản ứng thích hợp dựa trên chiều hướng và tốc độ thay đổi của sai lệch e(t), làm tăng tốc độ đáp ứng của hệ
Một ưu điểm nữa là thành phần vi phân giúp ổn định một số quá trình mà bình thường không ổn định được với các bộ P hay PI
Nhược điểm của thành phần vi phân là rất nhạy với nhiễu đo hay của giá trị đặt do tính đáp ứng nhanh nêu ở trên
2.3.2 Phương pháp sử dụng PID trong luận văn:
Do từng thành phần của bộ PID có những ưu nhược điểm khác nhau, và không thế đồng thời đạt được tất cả các chỉ tiêu chất lượng một cách tối ưu, nên cần lựa chọn, thỏa hiệp giữa các yêu cầu chất lượng và mục đích điều khiển Việc lựa chọn tham
số cho bộ điều khiển PID cũng phụ thuộc vào đối tượng điều khiển và các phương pháp xác định thông số Tuy nhiên, kinh nghiệm cũng là một yếu tố quan trọng trong khâu này
Có nhiều phương pháp để lựa chọn tham số cho bộ điều khiến PID Ở đây, vì giới hạn về mặt thời gian nên học viên sử dụng phương pháp xác định tham số bằng thực nghiệm vì phương pháp này đơn giản và hiệu quả trong phạm vi ứng dụng thực tế Phần tiếp theo sẽ nói rõ hơn về vấn đề áp dụng PID
Trang 39CHƯƠNG 3 XÂY DỰNG HỆ THỐNG
3.1 Ý tưởng xây dựng hệ thống và hoạt động
Từ yêu cầu đặt ra ở trên, học viên đề xuất và thực hiện hệ thống như sau:
Do camera sử dụng là camera IP thế hệ mới trên thị trường, việc truy cập camera để lấy dữ liệu hình ảnh được thực hiện bằng cách sử dụng cáp mạng RJ45 kết nối trực tiếp camera với máy tính Sau khi thu được hình ảnh, phần mềm phát hiện và bám theo khuôn mặt được viết bằng ngôn ngữ C# sẽ truyền lệnh điều khiển xuống bo mạch thông qua giao tiếp truyền thông nối tiếp RS-232, bo mạch này có nhiệm vụ thực thi lệnh điều khiển trực tiếp đến bệ xoay gồm 2 trục xoay (mang camera) Bằng phương pháp này, khuôn mặt chuyển động được camera bám theo với tốc độ tương ứng phù hợp
3.2 Tiến hành xây dựng thuật toán
3.2.1 Thuật toán phát hiện khuôn mặt
Với công cụ OpenCVSharp (thư viện mã nguồn mở về thị giác máy tính trên nền NET), ta áp dụng thuật toán phát hiện đối tượng là HiddenClassifierCascade để thực hiện chức năng dò tìm khuôn mặt, sẵn sàng cho bước tiếp theo là tiến hành bám theo khuôn mặt đó Thuật toán này sẽ được làm rõ sau đây
3.2.2 Thuật toán bám theo đối tượng:
Trong thực tế, các đối tượng mặt người hầu như chuyển động liên tục chứ không đứng yên tại chỗ Do đó các phương pháp xác định điều kiện dừng bằng cách xác định tâm khung hình đứng yên so với tâm khuôn mặt không đem lại hiệu quả cao Do đó, học viên đã áp dụng phương pháp bám đối tượng trong vùng lân cận để đơn giản hóa quá trình xác định đối tượng chuyển động, từ đó hứa hẹn sẽ đáp ứng thời gian thực tốt hơn các phương pháp đã nêu
Việc điều khiển bệ xoay được thực hiện bằng cách: khi phát hiện đối tượng cần bám ở bên trái so với tâm của khung hình thì xuất lệnh điều khiển bệ xoay trái
và tương tự đối với khi phát hiện đối tượng cần bám ở bên phải so với tâm của
Trang 40khung hình Tương tự, việc điều khiển cho bệ xoay dọc nâng lên – hạ xuống cũng được thực hiện với cùng nguyên tắc đó Tuy nhiên để đảm bảo bám tốt khuôn mặt, tùy thuộc vào độ lớn khoảng cách giữa vị trí tâm đối tượng (cũng chính là tâm hình vuông bao quanh đối tượng) so với tâm khung hình cùng với xác định độ thay đổi nhanh chậm của khoảng cách này mà chương trình sẽ quyết định tốc độ chuyển động của bệ xoay cho phù hợp
Ngoài ra, sau khi quyết định tốc độ chuyển động phù hợp, lệnh điều khiển sẽ được xử lý song song, nhằm đảm bảo tính linh hoạt của hệ thống
Hình 3.1 thể hiện các bước cần thực hiện để đáp ứng yêu cầu của đề tài: