1. Trang chủ
  2. » Luận Văn - Báo Cáo

Nghiên cứu thuật toán viola jones ứng dụng phát hiện và đếm khuôn mặt

65 36 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 65
Dung lượng 1,76 MB

Nội dung

TRƢỜNG ĐẠI HỌC VINH KHOA ĐIỆN TỬ VIỄN THÔNG ĐỒ ÁN TỐT NGHIỆP ĐỀ TÀI: NGHIÊN CỨU THUẬT TOÁN VIOLA-JONES ỨNG DỤNG PHÁT HIỆN VÀ ĐẾM KHUÔN MẶT Giáo viên hƣớng dẫn: ThS Đinh Văn Nam Sinh viên thực hiện: Nguyễn Văn Hữu MSSV: 1151080446 Lớp 52K - ĐTVT : Nghệ An, 2016 LỜI CẢM ƠN Trong trình học tập rèn luyện em đƣợc trang bị kiến thức bản, chuyên môn nhƣ kinh nghiệm thực tế để hồn thành tốt đồ án tốt nghiệp Trƣớc hết em xin gửi lời cảm ơn đến thầy Th.S Đinh Văn Nam, ngƣời giúp đỡ em nhiều định hƣớng dẫn cho em suốt thời gian thực đề tài Cuốn đồ án đƣợc thực theo thời gian quy định nhà trƣờng nhƣ khoa không nỗ lực em mà cịn có giúp đỡ, bảo thầy hƣớng dẫn, quý thầy cô bạn sinh viên Em xin chân thành cảm ơn quý thầy cô giáo khoa Điện tử - Viễn thông quan tâm, hƣớng dẫn, truyền đạt lại kiến thức kinh nghiệm cho em suốt trình học tập trƣờng Mặc dù cố gắng hồn thành đồ án song khơng tránh khỏi sai sót, em mong thầy bạn đóng góp ý kiến quý báu để đồ án đƣợc thành công Nghệ An, tháng 05 năm 2016 Sinh viên thực Nguyễn Văn Hữu TÓM TẮT ĐỒ ÁN Đồ án tìm hiểu thuật tốn Viola-Jones Trong có đặc trƣng HaarLike, thuật tốn Adaboost mơ hình phân tầng Cascade để ứng dụng vào chƣơng trình phát khn mặt ngƣời có ảnh Webcam Từ toán phát khn mặt phát triển lên ứng dụng điểm danh nhân viên điếm số lƣợng ngƣời … Từ em thiết kế mơ thành cơng chƣơng trình phát đếm số khn mặt sở thuật toán Viola-Jones ABSTRACT This thesis studying the Viola-Jones algorithm Including the Haar-Like features, Adaboost algorithm and Cascade Classification Model to apply into Face Detection Program in a picture or in a Webcam Frome the Face Detection Model can improve the roll-call applications or counting people Conclution, I was designed and simulated successfully the detection and counting Faces Programe based on Viola-Jones Algorithm MỤC LỤC LỜI CẢM ƠN TÓM TẮT ĐỒ ÁN CÁC TỪ NGỮ VIẾT TẮT MỞ ĐẦU CHƢƠNG TỔNG QUAN VỀ CÔNG NGHỆ XỬ LÝ ẢNH 10 1.1 Giới thiệu xử lý ảnh 10 1.2 Nhận dạng ảnh 12 1.3 Ứng dụng xử lý ảnh 13 1.4 Giới thiệu ảnh 15 CHƢƠNG PHƢƠNG PHÁP PHÁT HIỆN KHUÔN MẶT 24 2.1 Phƣơng pháp phát khuôn mặt 24 2.2 Phƣơng pháp phát sử dụng thuật toán Viola-Jones 32 CHƢƠNG THIẾT KẾ PHẦN MÊM VÀ MƠ PHỎNG THUẬT TỐN PHÁT HIỆN KHUÔN MẶT 43 3.1 Giới thiệu phần mềm Matlab 43 3.2 Thiết kế phần mềm mô 49 KẾT LUẬN 59 TÀI LIỆU THAM KHẢO 60 DANH MỤC BẢNG BIỂU Bảng 1.1 Pixel p pixel lân cận p 21 Bảng 1.2 Pixel p pixel lân cận theo chiều dọc chiều ngang 21 Bảng 1.3 Pixel p pixel lân cận chéo góc 22 DANH MỤC HÌNH Hình 1.1 Q trình xử lý ảnh 10 Hình 1.2 Sơ đồ tổng quát hệ thống xử lý ảnh 11 Hình 1.3 Sơ đồ tổng quát hệ thống nhận dạng 13 Hình 1.4 Robot đƣợc gắn camera 14 Hình 1.5 Camera bắn tốc độ 15 Hình 1.6 Các màu sở 16 Hình 1.7 Mơ hình màu RGB 17 Hình 1.8 Ảnh GIF 19 Hình 1.9 Ảnh dạng JPEG 20 Hình 2.1 Độ phân giải ảnh; (a) Ảnh ban đầu có độ phân giải n=1;(b),(c), (d) Ảnh có độ phân giải n=4, 8, 16 26 Hình 2.2 Một loại trí thức ngƣời nghiên cứu phân tích khn mặt 26 Hình 2.3 Một mẫu khn mặt, có 16 vùng 23 quan hệ (các mũi tên) 27 Hình 2.4 Chuyển ảnh sang ảnh tích phân 34 Hình 2.5 Chuyển ảnh thành ảnh tích phân 34 Hình 2.6 Cách tính tổng 34 Hình 2.7 Đặc trƣng Haar-Like 35 Hình 2.8 Đặc trƣng cạnh 35 Hình 2.9 Đặc trƣng đƣờng 35 Hình 2.10 Đặc trƣng quanh tâm 36 Hình 2.11 Tính giá trị ảnh tích phân điểm có tọa độ (x,y) 36 Hình 2.12 Tính nhanh giá trị vùng ảnh D 37 Hình 2.13 Đặc trƣng Haar-Like phát khn mặt 37 Hình 2.14 Sơ đồ phân lớp Ada oost 41 Hình 3.1 Giao diện GUI 49 Hình 3.2 Lƣu đồ thuật tốn 50 Hình 3.3 Giao diện chƣơng trình 51 Hình 3.4 Chƣơng trình xử lý từ hình ảnh 52 Hình 3.5 Xử lý ảnh có khn mặt 53 Hình 3.6 Xử lý hình ảnh có nhiều khn mặt 53 Hình 3.7 Xử lý sai với ảnh nhiều khuôn mặt bị nghiêng 54 Hình 3.8 Chƣơng trình xử lý từ Webcam 55 Hình 3.9 Xử lý với ngƣời có Video 55 Hình 3.10 Xử lý ngƣời có video 56 Hình 3.11 Xử lý khơng phát đƣợc khuôn mặt 56 Hình 3.12 Phát nhầm đối tƣợng 57 CÁC TỪ NGỮ VIẾT TẮT Từ viết tắt Tiếng Anh Tiếng Việt GPS Global Positioning System Hệ thống định vị toàn cầu Pixel Picture element Điểm ảnh R Red Màu Đỏ B Blue Màu lam G Geen Màu lục Ảnh đen trắng IMG GIF JPEG MATLAB Graphics Interchange Format Joint Photo-graphic Experts Group Matrix Laboratory Định dạng Trao đổi Hình ảnh Phƣơng pháp nén ảnh JPEG Phần mềm Matlab Giao diện chƣơng trình ứng API Application Program Interface MFL Mathematical Function Library Thƣ viện Chức toán học DE Development Environment Tập hợp công cụ GUI Graphical User Interface Giao diện đồ họa PCA Principal Component Analysis Phân tích thành phần PDF Probility Density Function Hàm mật độ xác suất ML Maximum Likelihood Phƣơng thức cực đại khả Support Vector Machine Máy vector hỗ trợ Adaptive Boost Thuật toán AdaBoost SVM AdaBoost dụng MỞ ĐẦU Hơn thập kỷ qua có nhiều tốn nghiên cứu xử lý ảnh nhận diện khuôn mặt ngƣời từ ảnh đen trắng, xám đến ngày hôm ảnh màu nhận diện trực tiếp từ camera Các nghiên cứu từ toán đơn giản, ảnh có khn mặt ngƣời nhìn thẳng vào máy thu hình đầu tƣ thẳng đứng ảnh đen trắng Cho đến hôm nhận diện đƣợc khn mặt từ ảnh màu nhiều khuôn mặt ảnh nhận diện đƣợc nhiều khuôn mặt từ camera Ngày việc thu thập thông tin qua ảnh để nhận biết đối tƣợng đƣợc quan tâm ứng dụng rộng rãi, nhận diện khuôn mặt ngƣời từ camera bƣớc quan trọng mở đầu cho ứng dụng khác phát triển thêm Với phát triển khoa học máy tình tạo mơi trƣờng thuận lợi cho tốn nhận dạng khn mặt ngƣời từ camera ài tốn nhận dạng khn mặt ngƣời tốn thú vị, vận dụng linh hoạt kiến thức nhiều lĩnh vực có tính ứng dụng to lớn thực tế Đây chủ đề mới, ứng dụng mang tính cơng nghệ cao nhƣ: robot, thiết bị theo dõi camera, hệ thống bảo mật, nhận dạng…đã đƣợc nhiều công ty lớn áp dụng nhƣ facebook…nhằm nâng cao sản phẩm để cạnh tranh với công ty khác thị trƣờng Với tính nhƣ từ nhu cầu thực tế, em chọn đề tài “Nghiên cứu thuật toán Viola-Jones ứng dụng phát đếm khuôn mặt” ài báo cáo đƣợc trình bày thành chƣơng nhƣ sau: Chƣơng 1: Tổng quan công nghệ xử lý ảnh Chƣơng 2: Phƣơng pháp phát nhận dạng ảnh Chƣơng 3: Thiết kế phần mềm mô thuật tốn phát khn mặt Nội dung đề tài: - Tìm hiểu phƣơng pháp nhận diện ảnh - Nghiên cứu thuật tốn Viola-Jones - Dị tìm mặt ngƣời - Đếm số lƣợng khuôn mặt Do khả thời gian cịn hạn chế nên đồ án khơng tránh khỏi sai sót, mong nhận đƣợc góp ý thầy bạn để đồ án đƣợc hồn thiện Em xin chân thành cảm ơn ThS Đinh Văn Nam tận tình hƣớng dẫn chuyên mơn, phƣơng pháp làm việc để em hồn thành đồ án theo kế hoạch đặt Em xin gửi lời cảm ơn chân thành đến thầy cô giáo, bạn Khoa Điện tử Viễn thông tạo điều kiện giúp em hoàn thành đồ án Nghệ An, tháng 05 năm 2016 Sinh viên thực Nguyễn Văn Hữu a Lưu đồ thuật toán Start Mở chương trình ảnh Mở chương trình Camera Chọn ảnh Bật Webcam Xử Lý Đưa kết Kết thúc Hình 3.2 Lưu đồ thuật tốn b Các bước thực chương trình Khi chạy chƣơng trình “Nghiên cứu thuật tốn Viola-Jones ứng dụng phát đếm khn mặt ” ta thao tác theo trình tự bƣớc sau: ƣớc 1: mở giao diện chƣơng trình Để mở chƣơng trình ta làm theo cách Cách thứ nhất: Mở trực tiếp lên chƣơng trình Matlab 2014a Ta đƣờng dẫn đến CHUONGTRINH.fig chạy 50 Cách thứ hai: Có thể chạy trực tiếp file CHUONGTRINH.fig Sau chạy chƣơng trình, xuất hộp thoại nhƣ hình dƣới đây: Hình 3.3 Giao diện chương trình ƣớc 2: Đƣa liệu vào để xử lý Ở bƣớc có hai cách để chọn liệu để xử lý từ ảnh có sẵn máy tính đƣa trực tiếp từ ngồi vào thông qua WebCam Cách thứ nhất: Từ giao diện chƣơng trình ta chọn nút Hình ảnh để mở chƣơng trình “Phát đếm số khn mặt từ hình ảnh” Ta chọn nút Chọn ảnh để chọn ảnh để đƣa vào chƣơng trình Sau chọn đƣợc ảnh ta nhấn nút open để chọn ảnh muốn xử lý Cách thứ 2: Xử lý trực tiếp từ Webcam Từ giao diện chƣơng trình ta chọn nút Camera đề mở chƣơng trình “Phát đếm số khn mặt từ Camera” Ta chọn nút Webcam để bật Webcam lên ƣớc 3: Xử lý liệu 51 Xử lý hình ảnh: Sau chọn đƣợc ảnh ta nhấn nút Phát để phát điếm số lƣợng khuôn mặt có hình Có thể xử lý ảnh khác cách ta chọn nút Reset chọn ảnh Xử lý từ Camera: Sau bật camera lên ta nhấn nút ĐẾM để phát điếm số lƣợng khn mặt có hình Sau hai chƣơng trình xử lý xong ta chọn nút Back để trở hình để chạy chƣơng trình cịn lại c Tốc độ xử lý Tốc độ thực chƣơng trình thể thời gian mà chƣơng trình tính tốn q trình xử lý, tùy theo giá trị kích thƣớc nhỏ, q trình xử lý chƣơng trình thực nhanh chóng, ảnh đầu vào có kích thƣớc lớn, q trình xử lý chƣơng trình thực chậm, mặt khác tốc độ thực tùy thuộc vào tốc độ xử lý máy tính Vì vậy, u cầu cần có máy tính có cấu hình thích hợp để thực chƣơng trình cách nhanh chóng tạo điều kiện thuận lợi cho việc phát khuôn mặt 3.2.2 Kết mô Mở chƣơng trình nhận dạng đếm khn măt từ hình ảnh ta có dao diện nhƣ hình dƣới đây: Hình 3.4 Chương trình xử lý từ hình ảnh 52 Sau mở chƣơng trình xong ta chọn ảnh chọn nút NHANDIEN ta có kết nhƣ sau: Kết chƣơng trình xử lý ảnh có khn mặt Hình 3.5 Xử lý ảnh có khn mặt Kết chƣơng trình xử lý hình ảnh có nhiều khn mặt vị trí thuận lợi cho việc phát Hình 3.6 Xử lý hình ảnh có nhiều khn mặt 53 Có ảnh có khn mặt bị che phần khơng góc độ chƣơng trình khơng thể phát đƣợc yếu điểm thuật toán Viola-Jones việc phát khn mặt Hình 3.7 Xử lý sai v i ảnh nhiều khuôn mặt bị nghiêng Chọn nút Back để trở giao diện chƣơng trình Và chọn nút Camera để mở chƣơng trình phát đếm khn mặt từ webcam Ta có giao diện chƣơng trình nhƣ sau: 54 Hình 3.8 Chương trình xử lý từ Webcam Chọn nút Camera để mở webcam lên chọn Xử Lý để bắt đầu xác định khn mặt đếm số lƣợng khn mặt có Live video Hình 3.9 Xử lý v i người có Video Kết chƣơng trình xử lý từ webcam có nhiều ngƣời xuất Live Video với đủ ánh sáng góc mặt phù hợp: 55 Hình 3.10 Xử lý người có video Kết xử lý sai khuôn mặt thiếu ánh sáng góc độ khn mặt khơng phù hợp khơng đƣợc nhận dạng Hình 3.11 Xử lý khơng phát khn mặt 56 Hình 3.12 Phát nhầm đối tượng Muốn kết thúc chƣơng trình ta chọn Dừng để dừng lại chọn Back để trở giao diện 3.2.1 Nhận xét kết đạt đƣợc Quá trình tìm hiểu nghiên cứu, em xây dựng đƣợc nhìn tổng quát tốn phát đối tƣợng Đồng thời, tìm hiểu thêm đƣợc số vấn đề xử lý ảnh: Các dạng ảnh, tính chất ảnh, khơng gian, toại độ ảnh… vận dụng kết hợp với cơng cụ xử lý ảnh Matlab (image processing Toolbox) Trong q trình thao tác, có ƣu khuyết điểm, nhƣng bào báo cáo em hoàn thành tƣơng đối chấp nhận đƣợc, say số ƣu điểm khuyết điểm toán nhƣ trình thực báo cáo - Ƣu điểm: Với tốn phát khn mặt dùng thuật toán Viola-Jones ta thấy tốc độ xử lý nhanh so với thuật toán khác Đối với tốn phát khn mặt, bào tốn đƣợc sử dụng nhiều lĩnh vực khác chuyên ngành điện tử - Khuyết điểm: Nội dung toán phát đếm số lƣợng khn mặt, nhƣng đơi phát nhầm đối tƣợng khác khuôn mặt 57 Về nội dung tốn, có hai cách để đƣa liệu vào xử lý: sử dụng ảnh có sử dụng nguồn liệu đƣa vào từ webcam Đối với webcam hay thiết bị thu hình nào, thi điều kiện cần phải có độ phân giải tốt kết xác Khó khăn việc xử lý phát khuôn mặt, điều kiện phát đƣợc phải phù hợp: độ sáng, góc lệch, biến dạng… Chính thế, đơi có khuôn mặt không đƣợc phát 58 KẾT LUẬN Trong thời gian làm đồ án tốt nghiệp em gặp nhiều khó khăn thử thách địi hỏi đƣợc cố gắng tập trung cao trình thực hiện, nhƣng đƣợc giúp đỡ nhiệt tình Thầy giáo Th.s Đinh Văn Nam cố gắng em, hoàn thành tiến độ làm việc theo yêu cầu làm ra, nhiên báo cáo đạt đƣợc số kết tƣơng đối cịn nhiều sai sót vấn đền phát khuôn mặt Kết đạt đƣợc em dị tìm số ảnh liệu, ảnh có độ sắc nét tƣơng phản cao, ảnh có độ sắc nét thấp với góc độ phù hợp Đối với tốn phát khn mặt từ Webcam phát đƣợc khn mặt có video nhƣng, có lúc xác định nhầm đối tƣợng khác khuôn mặt không xác định đƣợc khuôn mặt khn mặt q nghiêng bị che khuất Đối với đề tài toán nhỏ nhƣng bƣớc đệm cần thiết toán khác nhƣ: Nhận diện tội phạm từ ảnh từ web cam đƣợc gắn nơi công cộng Bảo mật hệ thống cách nhận dạng khuôn mặt có nhiều đối tƣợng lạ muốn đột nhập vào nhà mình, vào cơng ty, xý nghiệp hay quan nhà nƣớc Quản lý đƣợc nhân viên công ty, xý nghiệp cần Camera quan sát từ xa Dù hoàn thành xong đề tài đƣợc giao nhƣng cịn nhiều sai sót hạn chế Do góp ý Thầy Cơ giáo cần thiết cho em Đó kinh nghiệm định hƣớng cho em phát triển sau bảo vệ đề tài 59 TÀI LIỆU THAM KHẢO [1] Viola, Paul and Michael J Jones, "Rapid Object Detection using a Boosted Cascade of Simple Features", Proceedings of the 2001 IEEE Computer Society Conference on Computer Vision and Pattern Recognition, 2001 Volume: 1, pp.511–518 [2] Ming-Hsuan Yang, David J Kriegman, Narendra Ahuja, “Detecting Faces in Images: A Survey”, IEEE Transaction on Pattern Analysis and Machine Intelligence (PAMI), Vol 24, No 1, pp 34-47, Jan 2002 [3] G Yang, T S Huang, “Human Face Detection in Complex ackground”, Pattern Recognition, Vol 27, No 1, pp 53-63, 1994 [4] PGS.TS Đỗ Năng Toàn, TS Phạm Việt ình, “Giáo trình Xử Lý Ảnh”, Đại học Thái Nguyên, 2007 [5] Phạm Thế Bảo, Nguyễn Thành Nhựt, Cao Minh Thịnh, Trần Anh Tuấn, Phan Phúc Doãn, “Tổng quan phƣơng pháp xác định khuôn mặt ngƣời”, Tạp chí Cơng nghệ thơng tin & Truyền thơng, 2007 [6] http://www.mathworks.com/ [7] http://Tailieu.vn 60 PHỤ LỤC Chương trình giao diện: function pushbutton1_Callback(hObject, eventdata, handles) close run HINH.m function pushbutton2_Callback(hObject, eventdata, handles) close run camera.m function axes5_CreateFcn(hObject, eventdata, handles) imshow('dhv.jpg'); Chương trình xử lý từ hình: function pushbutton2_Callback(hObject, eventdata, handles) tic X = handles.data1; stdsize = 176; nameDetector = {'LeftEye'; 'RightEye'; 'Mouth'; 'Nose'; }; mins = [[12 18]; [12 18]; [15 25]; [15 18]; ]; detector.stdsize = stdsize; detector.detector = cell(5,1); for k=1:4 minSize = int32([stdsize/5 stdsize/5]); minSize = [max(minSize(1),mins(k,1)), max(minSize(2),mins(k,2))]; detector.detector{k} = vision.CascadeObjectDetector(char(nameDetector(k)), 'MergeThreshold', thresholdParts, 'MinSize', minSize); end detector.detector{5} = vision.CascadeObjectDetector('FrontalFaceCART', 'MergeThreshold', thresholdFace); % Detect faces bbox = step(detector.detector{5}, X); 61 bbsize = size(bbox); partsNum = zeros(size(bbox,1),1); stdsize = detector.stdsize; for k=1:4 if( k == ) region = [1,int32(stdsize*2/3); 1, int32(stdsize*2/3)]; elseif( k == ) region = [int32(stdsize/3),stdsize; 1, int32(stdsize*2/3)]; elseif( k == ) region = [1,stdsize; int32(stdsize/3), stdsize]; elseif( k == ) region = [int32(stdsize/5),int32(stdsize*4/5); int32(stdsize/3),stdsize]; else region = [1,stdsize;1,stdsize]; end bb = zeros(bbsize); for i=1:size(bbox,1) XX = X(bbox(i,2):bbox(i,2)+bbox(i,4)-1,bbox(i,1):bbox(i,1)+bbox(i,3)-1,:); XX = imresize(XX,[stdsize, stdsize]); XX = XX(region(2,1):region(2,2),region(1,1):region(1,2),:); b = step(detector.detector{k},XX); if( size(b,1) > ) partsNum(i) = partsNum(i) + 1; if( k == ) b = sortrows(b,1); elseif( k == ) b = flipud(sortrows(b,1)); elseif( k == ) b = flipud(sortrows(b,2)); elseif( k == ) b = flipud(sortrows(b,3)); 62 end ratio = double(bbox(i,3)) / double(stdsize); end end bbox = [bbox,bb]; end bbox = [bbox,partsNum]; bbox(partsNum

Ngày đăng: 01/08/2021, 10:39

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Viola, Paul and Michael J. Jones, "Rapid Object Detection using a Boosted Cascade of Simple Features", Proceedings of the 2001 IEEE Computer Society Conference on Computer Vision and Pattern Recognition, 2001. Volume: 1, pp.511–518 Sách, tạp chí
Tiêu đề: Rapid Object Detection using a Boosted Cascade of Simple Features
[2] Ming-Hsuan Yang, David J. Kriegman, Narendra Ahuja, “Detecting Faces in Images: A Survey”, IEEE Transaction on Pattern Analysis and Machine Intelligence (PAMI), Vol. 24, No 1, pp. 34-47, Jan 2002 Sách, tạp chí
Tiêu đề: Detecting Faces in Images: A Survey
[3] G. Yang, T. S. Huang, “Human Face Detection in Complex ackground”, Pattern Recognition, Vol. 27, No. 1, pp. 53-63, 1994 Sách, tạp chí
Tiêu đề: Human Face Detection in Complex ackground
[4] PGS.TS Đỗ Năng Toàn, TS. Phạm Việt ình, “Giáo trình Xử Lý Ảnh”, Đại học Thái Nguyên, 2007 Sách, tạp chí
Tiêu đề: Giáo trình Xử Lý Ảnh
[5] Phạm Thế Bảo, Nguyễn Thành Nhựt, Cao Minh Thịnh, Trần Anh Tuấn, Phan Phúc Doãn, “Tổng quan các phương pháp xác định khuôn mặt người”, Tạp chí Công nghệ thông tin & Truyền thông, 2007 Sách, tạp chí
Tiêu đề: Tổng quan các phương pháp xác định khuôn mặt người

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w