Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 57 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
57
Dung lượng
1,56 MB
Nội dung
z SỞ GIÁO DỤC VÀ ĐÀO TẠO TP.HCM TRƯỜNG CAO ĐẲNG CÔNG NGHỆ THỦ ĐỨC BÁO CÁO KẾT QUẢ THỰC HIỆN ĐỀ TÀI NGHIÊN CỨU KHOA HỌC NĂM HỌC 2016-2017 XÂY DỰNG PHẦN MỀM NHẬN DẠNG MẶT NGƯỜI THEO THỜI GIAN THỰC ĐƠN VỊ CHỦ TRÌ: KHOA ĐIỆN – ĐIỆN TỬ CHỦ NHIỆM ĐỀ TÀI: ĐỒN CHÁNH TÍN Tháng năm 2017 Trang1 z BÁO CÁO KẾT QUẢ THỰC HIỆN ĐỀ TÀI NGHIÊN CỨU KHOA HỌC NĂM HỌC 2016-2017 XÂY DỰNG PHẦN MỀM NHẬN DẠNG MẶT NGƯỜI THEO THỜI GIAN THỰC ĐƠN VỊ CHỦ TRÌ: KHOA ĐIỆN – ĐIỆN TỬ CHỦ NHIỆM ĐỀ TÀI: ĐỒN CHÁNH TÍN Trưởng Khoa Chủ nhiệm đề tài Tp Hồ Chí Minh, tháng năm 2017 i ĐỀ CƯƠNG NGHIÊN CỨU ĐỀ TÀI NGHIÊN CỨU KHOA HỌC CẤP CƠ SỞ NĂM HỌC 2015 - 2016 Tên đề tài Tiếng Việt : XÂY DỰNG PHẦN MỀM NHẬN DẠNG MẶT NGƯỜI THEO THỜI GIAN THỰC Tiếng Anh: DEVELOPING A FACES RECOGNITION SOFTWARE IN REAL TIME RESPONSE Thời gian thực hiện: tháng - Bắt đầu từ tháng năm 2016 đến tháng năm 2017 Đề tài có trùng với đề tài tiến hành không? - Không Chủ nhiệm đề tài ( Kèm theo Lý lịch khoa học theo biểu mẫu 02) - Họ tên: Đồn Chánh Tín - Giới tính: nam - Chun mơn đào tạo: Kỹ thuật điện tử-truyền thông - Học hàm, học vị: Thạc sỹ - Chức vụ: Giảng viên - Đơn vị công tác: Trường Cao Đẳng Công Nghệ Thủ Đức - Địa liên hệ: 16/1 Ấp Trung Đông, xã Thới Tam Thơn, Hóc Mơn, Tp.HCM - Điện thoại liên lạc:0909208064 - Email:doanchanhtin1@gmail.com Tóm tắt hoạt động nghiên cứu chủ nhiệm đề tài Thời gian Tên đề tài/cơng trình Tư cách tham gia Cấp quản lý/nơi công bố 20142015 THIẾT KẾ VÀ THI CƠNG DÀN TRẢI MƠ HÌNH ĐIỀU KHIỂN THIẾT BỊ TỪ XA DÙNG TIN Chủ nhiệm đề tài Trường Cao Đẳng Công nghệ Thủ Đức Chủ nhiệm đề tài Trường Cao Đẳng Công nghệ Thủ Đức NHẮN ĐIỆN THOẠI SMS 20152016 NGHIÊN CỨU XÂY DỰNG HỆ i THỐNG PHÁT HIỆN GƯƠNG MẶT NGƯỜI TRONG THỜI GIAN THỰC Cơ quan phối hợp cộng tác viên đề tài (Ghi rõ đơn vị cá nhân mời nhận lời mời tham gia đề tài, cá nhân tham gia Đề tài phải có Lý lịch khoa học theo mẫu 02 ý kiến xác nhận đồng ý tham gia đồng thực đề tài) TT Cơ quan phối hợp Cộng tác viên Họ tên Chuyên ngành Cơ quan/đơn vị ứng dụng kết nghiên cứu TT Tên quan/đơn vị ứng dụng kết Địa nghiên cứu Khoa Điện-Điện tử, Trường Cao Đẳng 53 Võ Văn Ngân - Phường Linh Công Nghệ Thủ Đức, Bộ môn Điện tử, Điện tử truyền thông Chiểu - Quận Thủ Đức – TP HCM Thuyết minh cần thiết đề tai - Tổng quan cơng trình nghiên cứu nước liên quan tới vấn đề nghiên cứu đề tài (trích dẫn tài liệu nước) TS Đỗ Năng Toàn TS Phạm Việt Bình, Giáo trình xử lý ảnh.: Đại Học Thái Nguyên PGS.TS Nguyễn Quang Hoan, Xử Lý Ảnh.: Học Viện Cơng Nghệ Bưu Chính Viễn Thơng A.M Martinez and A.C Kak, PCA versus LDA, IEEE Transactions on Pattern Analysis and Machine Intelligence 23(2):228-233, 2001 M H Yang, Face Recognition Using Kernel Methods, Advances in Neural Information Processing systems (NIPS), pp 215 220, 2002 A.M Martinez and M.Zhu, Where Are Linear Feature Extraction Methods Applicable? IEEE Transactions on Pattern Analysis and Machine Intelligence vol 27, no 12, pp 1934-1944, 2005 ii - Lý chọn đề tài: + Tính thời đề tài: Ngày nay, với phát triển vượt bậc khoa học kỹ thuật mang lại cho người sống tiện nghi hơn, thoải mái hơn, an toàn Cùng với phát triển đó, loại máy móc đại máy ảnh số, máy quay phim kỹ thuật số, máy vi tính,…cũng đời nhằm phục vụ nhu cầu ngày cao người Qua đó, lượng thơng tin người thu dạng số ngày tăng, liệu hình ảnh có lượng thơng tin lớn xác loại liệu từ cảm biến khác Điều giúp cho việc giải vấn đề lĩnh vực điều khiển tự động dễ dàng Từ đó, lĩnh vực khoa học công nghệ đời nhằm đáp ứng cho việc xử lý liệu ảnh số “Xử lý ảnh” (Image Processing) Xử lý ảnh ngành khoa học mẻ so với nhiều ngành khoa học khác tốc độ phát triển nhanh, kích thích trung tâm nghiên cứu, ứng dụng, đặc biệt máy tính chuyên dụng riêng cho nhằm giải vấn đề phát sinh xã hội phát triển ngày như: Hệ thống tương tác người máy: Giúp người bị tật khuyết điểm trao đổi Những người dùng ngơn ngữ tay giao tiếp với người bình thường Những người bị bại liệt thơng qua số ký hiệu nháy mắt biểu lộ họ muốn Đó tốn điệu bàn tay (hand gesture), điệu khn mặt Nhận dạng người A có phải tội phạm truy nã hay không, giúp quan an ninh quản lý tốt người Công việc nhận dạng có thể mơi trường bình thường bóng tối Thẻ cước, chứng minh nhân dân (Face identification) An ninh sân bay, xuất nhập cảnh (hiện quan an ninh xuất nhập cảnh Mỹ áp dụng) Dùng để xác thực người xuất nhập cảnh kiểm tra có phải nhân vật khủng bố hay không Điều khiển vào ra: Văn phịng, cơng ty, trụ sở, máy tính…, kết hợp thêm vân tay móng mắt Cho phép nhân viên vào nơi cần thiết, hay người đăng nhập máy tính cá nhân mà không cần nhớ tên đăng nhập mật mà cần xác định thông qua khuôn mặt Tìm kiếm liệu liên quan đến người thơng qua khuôn mặt người nhiều hệ sở liệu lưu trữ thật lớn internet, hãng truyền hình iii + Tính cấp thiết đáp ứng nhu cầu phát triển kinh tế - xã hội, nâng cao chất lượng đào tạo - Hiện nay, hệ thống nhận dạng mặt người nghiên cứu ứng dụng rộng rãi giới Nhưng phương pháp xuất Việt Nam vài năm gần đây, chưa nghiên cứu ứng dụng nhiều vào thực tế Xuất phát từ thực tiễn ấy, đề tài nghiên cứu nhằm ứng dụng vào hệ thống tự động hóa phục vụ cơng việc sản xuất kinh doanh, nâng cao suất lao động, đồng thời cung cấp cho sinh viên trường Cao Đẳng Công Nghệ Thủ Đức tiếp cận với công nghệ đại này, qua sinh viên có nhìn trực quan, nắm rõ nguyên lý hoạt động hệ thống để áp dụng vào thực tiễn sống sau trường Đơn vị, địa bàn tiến hành nghiên cứu (Phường/Xã, Quận/Huyện, Tỉnh/T.P, Vùng) - Khoa Điện – Điện Tử, Trường Cao Đẳng Công Nghệ Thủ Đức, Bộ môn Điện tử, Điện tử viễn Thông Mục tiêu đề tài - Mục tiêu đề tài nghiên cứu xây dựng phần mềm nhận dạng mặt người thời gian thực, dùng thuật toán Adaboost [5] để phát thuật tốn phân tích thành phần PCA [8] để nhận dạng 10 Đối tượng phạm vi nghiên cứu đề tài - Thuật toán Adaboost , PCA , Eigenface [8], xử lý ảnh, thư viện thị giác máy tính mã nguồn mở OpenCV, Kỹ thuật lập trình Visual C++ 11 Các phương pháp nghiên cứu sử dụng để nghiên cứu đề tài - Phương pháp tham khảo tài liệu: tìm kiếm thơng tin từ sách, báo, tạp chí cơng nghệ, internet - Phương pháp nghiên cứu thực nghiệm: Từ kiến thức thu thập tiến hành mô phỏng, khảo sát nhiều phương pháp khác để từ xây dung thống tối ưu 12 Các chuyên đề nghiên cứu dự kiến đề tài (tên nội dung chuyên đề) 13 Cấu trúc dự kiến báo cáo kết đề tài (chi tiết hoá chương mục) GIỚI THIỆU 1.1 Tổng quan 1.2 Các kết nghiên cứu nước iv 1.2.1 Các kết nghiên cứu nước 1.2.2 Các kết nghiên cứu nước 1.3 Mục tiêu nghiên cứu CƠ SƠ LÝ THUYẾT 2.1 Phương pháp xử lý ảnh 2.1.1 Tổng quan 2.1.2 Điểm ảnh 2.1.3 Độ phân giải ảnh 2.1.4 Nén ảnh 2.1.5 Trích chọn đặc điểm 2.1.6 Nhận dạng 2.2 Phát nhận dạng đối tượng 2.2.1 Bài toán phát đối tượng 2.2.2 Các phương pháp nhận dạng mặt người 2.2.3 Giới thiệu thuật tốn PCA 2.2.4 Nhận dạng khn mặt Eigenfaces 2.3 Thư viện thị giác máy tính mã nguồn mở OpenCV THIẾT KẾ THỰC HIỆN PHẦN MỀM KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 1.1 Kết đạt 1.2 Hướng phát triển TÀI LIỆU THAM KHẢO 14 Tính đa ngành liên ngành đề tài - Đề tài liên quan đến ngành/chuyên ngành nào? + Kỹ thuật điện tử, điện tử - truyền thông - Tính đa/liên ngành thể nội dung trình triển khai đề tài? + Kỹ thuật điện tử, truyền thơng tự động hóa 15 Khả sử dụng sở vật chất, trang thiết bị (tên phịng thí nghiệm sử dụng đề tài) - Phịng thí nghiệm điện tử bản, kỹ thuật xung số, phịng thí nghiệm viễn thông 16 Khả hợp tác quốc tế - Hợp tác đã/đang có (tên tổ chức vấn đề hợp tác) - Hợp tác có (tên tổ chức vấn đề hợp tác) v 17 Các hoạt động nghiên cứu đề tài - Nghiên cứu lý thuyết - Điều tra khảo sát - Xây dựng chương trình mơ - Biên soạn tài liệu - Viết báo cáo khoa học - Hội thảo khoa học - Tập huấn - Các hoạt động khác 18 Kết dự kiến 18.1 Kết khoa học - Dự kiến đóng góp đề tài Ứng dụng hệ thống tự động, phục vụ công việc sản xuất, giám sát, nâng cao suất lao động Giới thiệu cho sinh viên công nghệ mới, kết hợp môn vi điều khiển, vi điều khiển nâng cao, thiết bị đầu cuối viễn thông hệ thống tự động hóa nhằm tạo hứng thú học tập cho sinh viên - Số báo, sách, báo cáo khoa học dự kiến công bố: 18.2 Kết ứng dụng - Mô hệ thống nhận dạng mặt người thời gian thực - Khả ứng dụng thực tế kết quả: Ứng dụng vào hệ thống giám sát an ninh, nhận dạng, tìm kiếm liệu, điều khiển vào ra… 18.3 Kết ứng dụng khác - Các sản phẩm công nghệ điều khiển thông minh 19 Nội dung tiến độ thực đề tài (các công việc cần triển khai, thời hạn thực sản phẩm đạt được) Thời gian thực TT Hoạt động nghiên cứu Từ tháng Đến tháng Thu thập viết tổng quan tài liệu 8/2016 9/2016 Xây dựng đề cương nghiên cứu chi tiết 9/2016 10/2016 Chuyên đề/Nội dung vi Sản phẩm khoa học Chuyên đề/Nội dung Điều tra khảo sát, thí nghiệm, thu 10/2016 11/2016 Xử lý kết 11/2016 12/2016 Viết báo cáo chuyên đề 12/2016 01/2017 01/2017 01/2017 01/2017 02/2017 thập số liệu Chuyên đề/Nội dung Chuyên đề/Nội dung Số chuyên đề (như mục 2) Hội thảo kỳ Bổ sung số liệu/thử nghiệm/ứng dụng Tổng kết số liệu Viết báo cáo tổng hợp Hội thảo lần cuối Hoàn thiện báo cáo Nộp sản phẩm 02/2017 02/2017 Nghiệm thu đề tài 02/2017 02/2017 20 Phân bổ kinh phí (Tuỳ theo đặc điểm chuyên môn đề tài, mục/tiểu mục bảng có thay đổi cho phù hợp) TT Nội dung Xây dựng đề cương chi tiết Thu thập viết tổng quan tài liệu Thu thập tư liệu (mua, thuê) Dịch tài liệu tham khảo (số trang x đơn giá) Viết tổng quan tư liệu Điều tra, khảo sát, thí nghiệm, thu thập số liệu, nghiên cứu Chi phí tàu xe, cơng tác phí Chi phí th mướn vii Kinh phí Chi phí th khốn chun mơn (có giá trị từ 2.000.000 VNĐ/đề tài trở lên phải có hợp đồng th khốn chun mơn, giá trị nhỏ 2.000.000 VNĐ/đề tài phải có bảng ký nhận) Chi phí hoạt động chun mơn Th, mua sắm trang thiết bị, nguyên vật liệu Thuê trang thiết bị 4.500.000 đ Mua trang thiết bị Mua nguyên vật liệu, cây, Viết báo cáo khoa học, nghiệm thu Viết báo cáo Hội thảo Nghiệm thu Chi khác Mua văn phòng phẩm In ấn, photocopy Quản lý phí 4.500.000 đ Tổng kinh phí Tổng kinh phí viết chữ: Bốn triệu năm trăm ngàn đồng chẵn 21 Tài liệu tham khảo để viết đề cương - Tài liệu tiếng Việt + TS Đỗ Năng Toàn TS Phạm Việt Bình, Giáo trình xử lý ảnh.: Đại Học Thái Nguyên + PGS.TS Nguyễn Quang Hoan, Xử Lý Ảnh.: Học Viện Cơng Nghệ Bưu Chính Viễn Thơng - Tài liệu tiếng Anh + M H Yang, Face Recognition Using Kernel Methods, Advances in Neural Information Processing systems (NIPS), pp 215 220, 2002 + A.M Martinez and M.Zhu, Where Are Linear Feature Extraction Methods Applicable? IEEE Transactions on Pattern Analysis and Machine Intelligence vol 27, no 12, pp 1934-1944, 2005 + J Ye, R Janardan and Q Li, Two-Dimensional Linear Discriminant Analysis, Advances in Neural Information Processing systems (NIPS), 2004 viii Load đặc trưng khuôn mặt Load file CSV Huấn luyện đặc trưng khuôn mặt Nhận ảnh từ camera Đóng khung hiển thị “Unknow” Chuyển sang ảnh xám Đóng khung hiển thị tên Dị tìm đặc trưng khuôn mặt Nhỏ Phát khuôn mặt So sánh khoảng cách với ngưỡng N Lớn Y Chuyển kich thước khn mặt huấn luyện Tính khoảng cách so với tập mẫu Chuẩn hóa khn mặt Tính Eigenvalue EigenVector Hình Lưu đồ giải thuật chương trình nhận dạng mặt người 28 3.5 Chương trình thực - Phụ lục 29 Chương KẾT QUẢ THỰC HIỆN Chương trình ứng dụng chạy thử nghiệm nhiều điều kiện ánh sáng khác nhau, từ môi trường có ánh sáng yếu mơi trường đủ sáng khoảng cách khác nhau, nhận dạng nhiều người xuất lúc, đạt kết sau: Kết nhận dạng người Trong môi trường ánh sáng phù hợp với môi trường ánh sáng lấy mẫu khn mặt chương trình có tỷ lệ nhận dạng xác cao Khi thay đổi mơi trường sáng 4.1 có phân lớp thứ (ảnh lấy mẫu trực tiếp từ camera), cho tỷ lệ nhận dạng cao, phân lớp 1, (ảnh lấy mẫu từ internet) thay đổi môi trường sáng khơng nhận dạng Hình Ảnh nhận dạng tác giả - phân lớp 30 Hình Ảnh nhận dạng diễn viên Leonardo Decapiro - phân lớp thứ Hình Ảnh nhận dạng diễn viên Hoài Linh - phân lớp thứ 31 4.2 Kết nhận dạng hai người Trong môi trường ánh sáng phù hợp với môi trường ánh sáng tạo tập mẫu huấn luyện chương trình cho kết nhận dạng tốt Khi có ánh sáng chói khơng đủ sáng chương trình cho kết nhận dạng phân lớp Hình 4 Nhận dạng xuất mặt người phân lớp 1,3 Hình Nhận dạng xuất mặt người phân lớp 2,3 32 4.3 Kết nhận dạng có người lạ xuất Trong môi trường ánh sáng phù hợp với môi trường ánh sáng tạo tập mẫu huấn luyện chương trình cho kết nhận dạng tốt phân lớp Ở phân lớp 1,2 chương trình cho kết nhận dạng thấp Hình Phân loại có người lạ xuất Hình Nhận dạng người huấn luyện người lạ (chưa huấn luyện) 33 Hình Nhận dạng xác có nhiều người xuất lúc 34 Chương KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 5.1 Kết luận - Trên sở nghiên cứu lý thuyết tổng quan phương pháp nhận dạng mặt người thời gian thực Đặc biệt thuật toán PCA, đặc trưng Eigenfaces Eigenvector kết hợp với kỹ thuật lập trình C++ Tơi áp dụng thành cơng thuật tốn nhận dạng phân tích thành phần PCA vào tốn nhận dạng mặt người thời gian thực Xây dựng thành công phần mềm nhận dạng nhiều người xuất khung ảnh Đặc biệt chương trình xử lý ảnh động, lấy trực tiếp từ camera Bên cạnh đó, q trình xây dựng chương trình ,tơi tìm hiểu thư viện mã nguồn mở OpenCV, qua biết cách sử dụng hàm thư viện OpenCV để xây dựng chương trình nhận dạng mặt người kit nhúng sau - Về chương trình demo, chương trình chạy thử nghiệm máy tính có xử lý Core i7, hệ 4, tốc độ 2,4GHz; RAM 8GB Tốc độ xử lý chương trình khoảng khung hình/s, ép xung lên 3,2Ghz xử lý khoảng khung hình/s Hiệu xuất chương trình cịn tùy theo chất lượng loại webcam sử dụng, tập sở liệu lấy mẫu, điều kiện ánh sáng lấy mẫu Trong điều kiện ánh sáng phù hợp với môi trường ánh sáng lấy mẫu chương trình cho kết nhận dạng tốt, điều kiện ánh sáng thay đổi chương trình hay cho kết lẫn lộn phân lớp Điều cho thấy thuật toán PCA dễ bị ảnh hưởng nhiễu gương mặt bị nghiêng, hay mặt có râu, mặt cười, đặc biệt nhiễu ánh sáng 5.2 Hướng phát triển - Về hoàn thành yêu cầu mà ban đầu đề tài đề Tuy nhiên, để ứng dụng vào thực tế thuật tốn PCA cịn nhiều điểm hạn chế, mà cụ thể ảnh hưởng từ nhiễu Do đó, hướng phát triển đề tài tập trung vào phần xử lý nhiễu, kết hợp với thuật toán nhận dạng khác để xây dựng hệ thống nhận dạng xác mơi trường khác nhau, góc nhìn gương mặt khác Từ áp dụng vào thực tế hệ thống giám sát, kiểm tra an ninh, điểm danh học sinh tự động, kiểm tra người có phải cán bộ, giảng viên, công nhân viên trường hay không… - Kết nối với hệ thống Camera IP để xây dựng trung tâm giám sát an ninh cho công ty, chung cư… 35 - Tăng khả phát camera cách sử dụng camera hồng ngoại sử dụng loại camera có độ phân giải cao - Kết hợp với thuật tốn nhận dạng khác để có tỷ lệ nhận dạng xác 36 TÀI LIỆU THAM KHẢO TIẾNG VIỆT [1] PGS.TS Nguyễn Quang Hoan, Xử Lý Ảnh, Học Viện Cơng Nghệ Bưu Chính Viễn Thơng, 2006 [2] Trương Công Lợi, Nhận dạng khuôn mặt sử dung phương pháp biến đổi Eigenfaces mạng Nowrron, Đại học Đà Nẵng, 2013 [3] Nguyễn Thành Thái, Nhận dạng mặt người dùng SVM mạng nơron, Đại học CNTT Tp.HCM, 2006 [4] Mạch Thị Kim Hạnh, Xác thực sinh trắc học khuôn mặt thiết bị di động, Đại học Lạc Hồng, 2013 [5] PGS.TS Nguyễn Thị Hoàng Lan – Hệ thống an ninh thông tin dựa sinh trắc học - PKI (Bio-PKI Based Information Security System), 2009 TIẾNG NƯỚC NGOÀI [6] M A Turk A P Pentland - Face Recognition Using Eigenfaces, Proc of IEEE Conf on Computer Vision and Pattern Recognition, 1991 [7] Viola, P and Jones, Rapid object detection using a boosted cascade of simple features, Proc IEEE Conf on Computer Vision and Pattern Recognition, Dec 2001 [8] Jolliffe, I.T Principal Component Analysis, second edition (Springer), 2008 [9] Timo Ahonen, Abdenour Hadid, and Matti Pietikăainen, Face Recognition with Local Binary Patterns, 2004 [10] Nefian, Hayes, Face detection and recognition using hidden Markov models, 1998 [11] Douc, R and Cappe, O and Moulines, E., "Comparison of Resampling Schemes for Particle Filtering", Image and Signal Processing and Analysis, 2005 [12] Michael Isard and Andrew Blake, “Conditional Density Propagation for Visual Tracking”, 1997 [13] Shai Avidan, MobilEye Vision Technologies, 24 Mishol Hadkalim, Jerusalem, Israel, “Support Vector Tracking”, 2008 [14] Michael Isard, Andrew Blake, “Condensation – conditional density propagation for visual tracking”, 201 37 PHỤ LỤC Đoạn chương trình lấy mẫu khn mặt import sys, math, Image def Distance(p1,p2): dx = p2[0] - p1[0] dy = p2[1] - p1[1] return math.sqrt(dx*dx+dy*dy) def ScaleRotateTranslate(image, angle, center = None, new_center = None, scale = None, resample=Image.BICUBIC): if (scale is None) and (center is None): return image.rotate(angle=angle, resample=resample) nx,ny = x,y = center sx=sy=1.0 if new_center: (nx,ny) = new_center if scale: (sx,sy) = (scale, scale) cosine = math.cos(angle) sine = math.sin(angle) a = cosine/sx b = sine/sx c = x-nx*a-ny*b d = -sine/sy e = cosine/sy f = y-nx*d-ny*e return image.transform(image.size, Image.AFFINE, (a,b,c,d,e,f), resample=resample) def CropFace(image, eye_left=(0,0), eye_right=(0,0), offset_pct=(0.2,0.2), dest_sz = (70,70)): # calculate offsets in original image offset_h = math.floor(float(offset_pct[0])*dest_sz[0]) offset_v = math.floor(float(offset_pct[1])*dest_sz[1]) # get the direction eye_direction = (eye_right[0] - eye_left[0], eye_right[1] eye_left[1]) # calc rotation angle in radians rotation = math.atan2(float(eye_direction[1]),float(eye_direction[0])) # distance between them dist = Distance(eye_left, eye_right) # calculate the reference eye-width reference = dest_sz[0] - 2.0*offset_h # scale factor scale = float(dist)/float(reference) # rotate original around the left eye image = ScaleRotateTranslate(image, center=eye_left, angle=rotation) # crop the rotated image crop_xy = (eye_left[0] - scale*offset_h, eye_left[1] scale*offset_v) crop_size = (dest_sz[0]*scale, dest_sz[1]*scale) image = image.crop((int(crop_xy[0]), int(crop_xy[1]), int(crop_xy[0]+crop_size[0]), int(crop_xy[1]+crop_size[1]))) # resize it image = image.resize(dest_sz, Image.ANTIALIAS) return image if name == " main ": image = Image.open("tin8.png") #CropFace(image, eye_left=(311,283), eye_right=(416,282), offset_pct=(0.1,0.1), dest_sz=(200,200)).save("phat1_10_10_200_200.jpg") CropFace(image, eye_left=(334,100), eye_right=(375,99), offset_pct=(0.2,0.2), dest_sz=(200,200)).save("tin8_20_20_200_200.jpg") #CropFace(image, eye_left=(311,283), eye_right=(416,282), offset_pct=(0.3,0.3), dest_sz=(200,200)).save("phat1_30_30_200_200.jpg") #CropFace(image, eye_left=(311,283), eye_right=(416,282), offset_pct=(0.2,0.2) Đoạn chương trình tạo file CSV if name == " main ": if len(sys.argv) != 2: print "usage: create_csv " sys.exit(1) BASE_PATH=sys.argv[1] SEPARATOR=";" label = for dirname, dirnames, filenames in os.walk(BASE_PATH): for subdirname in dirnames: subject_path = os.path.join(dirname, subdirname) for filename in os.listdir(subject_path): abs_path = "%s/%s" % (subject_path, filename) print "%s%s%d" % (abs_path, SEPARATOR, label) label = label + Đoạn chương trình phát nhận dạng khuôn mặt #include "opencv2/core/core.hpp" #include "opencv2/contrib/contrib.hpp" #include "opencv2/highgui/highgui.hpp" #include #include #include using namespace cv; using namespace std; static Mat norm_0_255(InputArray _src) { Mat src = _src.getMat(); Mat dst; switch(src.channels()) { case 1: cv::normalize(_src, dst, 0, 255, NORM_MINMAX, CV_8UC1); break; case 3: cv::normalize(_src, dst, 0, 255, NORM_MINMAX, CV_8UC3); break; default: src.copyTo(dst); break; } return dst; } static void read_csv(const string& filename, vector& images, vector& labels, char separator = ';') { std::ifstream file(filename.c_str(), ifstream::in); if (!file) { string error_message = "No valid input file was given, please check the given filename."; CV_Error(CV_StsBadArg, error_message); } string line, path, classlabel; while (getline(file, line)) { stringstream liness(line); getline(liness, path, separator); getline(liness, classlabel); if(!path.empty() && !classlabel.empty()) { images.push_back(imread(path, 0)); labels.push_back(atoi(classlabel.c_str())); } } } int main(int argc, const char *argv[]) { if (argc < 2) { cout