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

phát hiện khuôn mặt người từ webcam

52 407 0

Đ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 52
Dung lượng 4,39 MB

Nội dung

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH ĐỀ TÀI NGHIÊN CỨU KHOA HỌC CẤP SINH VIÊN PHÁT HIỆN KHUÔN MẶT NGƯỜI TỪ WEBCAM S K C 0 9 MÃ SỐ: SV2010 - 108 S KC 0 Tp Hồ Chí Minh, 2010 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH KHOA ĐIỆN – ĐIỆN TỬ ♦♦♦ ĐỀ TÀI NGHIÊN CỨU KHOA HỌC CẤP SINH VIÊN ĐỀ TÀI: PHÁT HIỆN KHUÔN MẶT NGƯỜI TỪ WEBCAM MÃ SỐ: SV2010-108 GVHD : ĐẬU TRỌNG HIỂN SVTH : VÕ HOÀI DANH MSSV : 07101011 SVTH : TRẦN VĂN HIẾU MSSV : 07101037 TP.HỒ CHÍ MINH - 2/2011 GVHD Đậu Trọng Hiển LỜI CẢM ƠN Trƣớc tiên em xin gởi lời cảm ơn chân thành đến thầy Đậu Trọng Hiển hƣớng dẫn, gợi mở, giúp đỡ em suốt thời gian thực đề tài nghiên cứu khoa học Bên cạnh đó, em xin cảm ơn đến thầy cô khoa Điện-Điện Tử tạo điều kiện cho em thực đề tài thành công Cảm ơn thầy cô làm việc Phòng Nghiên cứu khoa học hƣớng dẫn em thủ tục trình thực đề tài Cảm ơn nhà trƣờng hổ trợ kinh phí tạo điều kiện cho em hoàn thành đề tài nghiên cứu khoa học Sau em xin gởi lời chúc sức khỏe, hạnh phúc đến quý thầy cô Trƣờng Đại học Sƣ Phạm Kỹ Thuật Tp.HCM Tháng năm 2011 Sinh viên thực Võ Hoài Danh GVHD Đậu Trọng Hiển LỜI NÓI ĐẦU Ngày nay, với phát triển nhanh chóng khoa học kĩ thuật, đặc biệt lĩnh vực công nghệ thông tin máy tính ảnh số trở nên quen thuộc với ngƣời Và ảnh số máy tính góp phần không nhỏ việc làm cho sống ngƣời trở nên tiện lợi thông qua ngành khoa học mẻ xử lý ảnh Tuy đời muộn so với ngành khoa học khác nhƣng tốc độ phát triển nhanh, ứng dụng rộng rãi sống nhƣ y học, giải trí, đặc biệt lĩnh vực an ninh nhƣ nhận dạng dấu vân tay, hay chữ viết, Nền tảng xử lý ảnh dựa vào lý thuyết xử lý tín hiệu từ nhà khoa học trƣớc đề thuật toán cho riêng ngành xử lý ảnh, đề tài “phát khuôn mặt người từ webcam” nghiên cứu thuật toán trình xử lý ảnh, từ xây dựng chƣơng trình phát khuôn mặt Trên giới, ứng dụng đƣợc biết đến nâng cao chất lƣợng ảnh báo đƣợc truyền qua cáp từ Luân đôn đến New York từ năm 1920 Năm 1964, máy tính có khả xử lý nâng cao chất lƣợng ảnh từ mặt trăng vệ tinh Ranger Mỹ bao gồm: làm đƣờng biên, lƣu ảnh Từ năm 1964 đến nay, phƣơng tiện xử lý, nâng cao chất lƣợng, nhận dạng ảnh phát triển không ngừng Các phƣơng pháp tri thức nhân tạo nhƣ mạng nơ ron nhân tạo, thuật toán xử lý đại cải tiến, công cụ nén ảnh ngày đƣợc áp dụng rộng rãi thu nhiều kết khả quan Còn nƣớc ta, xử lý ảnh môn học mẻ trƣờng đại học có giáo trình xử lý ảnh đƣợc viết tiếng việt nên phần làm hạn chế khả nghiên cứu sinh viên không giỏi ngoại ngữ môn học Ở nƣớc ta phần lớn đề tài ứng dụng thƣ viện thuật toán xử lý ảnh đƣợc phát triển công ty lớn nhƣ thƣ viện Opencv intel, với độ tin cậy cao, kể đến số đề tài nƣớc ta nhƣ nhận dạng chữ viết tay, nhận dạng khuôn mặt, nhận dạng dấu vân tay gần đề tài “bãi giữ xe thông minh” học viện kỹ thuật quân GVHD Đậu Trọng Hiển NHẬN XÉT CỦA GIÁO VIÊN GVHD Đậu Trọng Hiển MỤC LỤC LỜI CẢM ƠN NHẬN XÉT CỦA GIÁO VIÊN Phần I ĐẶT VẤN ĐỀ II Mục tiêu đề tài III Nhiệm vụ đề tài IV Giới hạn đề tài Phần II GIẢI QUYẾT VẤN ĐỀ CHƢƠNG I : KIẾN THỨC CƠ BẢN VỀ XỬ LÝ ẢNH I Tổng quan hệ thống xử lý ảnh 1 Thu nhận ảnh: Tiền xử lý ảnh: Phân tích ảnh: Nhận dạng, nội suy: Lƣu trữ: II Một số khái niệm Điểm ảnh (picture element) 2 Độ phân giải (resolution) Mức xám ảnh (grey level) Ảnh số Lƣợc đồ mức xám(histogram) III Các kỹ thuật tăng cƣờng ảnh phát biên Cải thiện ảnh dùng toán tử điểm Cải thiện ảnh dùng toán tử không gian Một số phƣơng pháp phát biên CHƢƠNG II : GIỚI THIỆU HỆ THỐNG NHẬN DẠNG KHUÔN MẶT 17 CHƢƠNG III: CƠ SỞ LÝ THUYẾT 18 I Tiếp cận boosting 18 II Adaboost 19 III Haar feature 20 IV Cascade of classifiers 22 V Cascade of Boosted Classifiers 22 VI Phát khuôn mặt với Cascade of Boosted Classifiers 23 GVHD Đậu Trọng Hiển Tập huấn luyện 23 Xây dựng nhận dạng Adaboost 23 CHƢƠNG IV: Thƣ viện OpenCV 28 I Giới thiệu 28 II Cách cài đặt thƣ viện OpenCV Visual Studio 2008 28 Cấu hình cho Visual Studio 28 Cấu hình Project bạn 29 CHƢƠNG V: TẠO CƠ SỞ DỮ LIỆU ĐỂ NHẬN DẠNG BẰNG OPENCV 31 Các bƣớc chuẩn bị 31 I Thu thập ảnh khuôn mặt 31 Các mẫu negative 31 Các mẫu positive 31 II Tiến hành học huấn luyện cho máy tính 32 III Thử nghiệm sở liệu vừa tạo 34 CHƢƠNG VI: XÂY DỰNG CHƢƠNG TRÌNH PHÁT HIỆN KHUÔN MẶT 35 I Chuẩn bị công cụ lập trình thiết bị cần thiết 35 II Sơ đồ khối chƣơng trình 36 III Tổ chức chƣơng trình 36 Phần III KẾT LUẬN 39 I Kết Luận 39 II Hƣớng phát triển đề tài 39 Phần IV TÀI LIỆU THAM KHẢO 40 GVHD Đậu Trọng Hiển Phần I ĐẶT VẤN ĐỀ GVHD Đậu Trọng Hiển Lý chọn đề tài I Ảnh số máy tính góp phần không nhỏ việc làm cho sống ngƣời trở nên tiện lợi hơn, giúp ta kiểm soát vấn đề an ninh đƣợc tốt thông qua hệ thống nhận diện mở khóa gƣơng mặt hay vân tay, giúp cho việc giữ xe nhanh chóng thông qua hệ thống giữ xe tự động,… Tất hệ thống có chung sở lý thuyết xử lý ảnh Đây ngành khoa học mẻ, đời có muộn ngành khoa học khác nhƣng tốc độ phát triển nhanh, ứng dụng rộng rãi sống nhƣ y học, giải trí, đặc biệt lĩnh vực an ninh nhƣ nhận dạng dấu vân tay, hay chữ viết, Những môn học liên quan đến xử lý ảnh đƣợc đƣa vào giảng dạy trƣờng đại học nƣớc ta vài năm gần đây, môn học xa lạ với sinh viên nƣớc ta nhƣ sinh viên trƣờng ta tài liệu tham khảo tiếng việt hạn chế Bản thân nhóm nghiên cứu sinh viên thuộc khoa Điện-Điện Tử, nên quan tâm muốn tìm hiểu ảnh số ứng dụng xử lý ảnh đời sống ngày để thấy đƣợc gần gũi nhƣ vai trò xử lý ảnh đời sống ngày Chính lý nhóm nghiên cứu chọn đề tài “phát khuôn mặt ngƣời từ webcam” Mục tiêu đề tài II Môn học xử lý ảnh môn học tƣơng đối mẻ hạn chế giáo trình tài liệu tham khảo tiếng việt, mà đề tài trình bày cách ngắn gọn tổng quát trình xử lý ảnh bản, bên cạnh sâu vào số bƣớc cốt lõi trình xử lý ảnh nhƣ tăng cƣờng ảnh, kỹ thuật phát biên ngƣời đọc hiểu rõ trình xử lý ảnh, đồng thời làm sở lý thuyết cho việc xây dựng chƣơng trình nhận dạng khuôn mặt camera ( đề tài sử dụng webcam máy tính để làm camera) phần sau đề tài Nhiệm vụ đề tài III     Tìm hiểu cách xử lý ảnh Tìm hiểu phƣơng pháp nhận dạng ảnh thuật toán adaboost Tìm hiểu ứng dụng cách xử dụng thƣ viện OpenCV Xây dựng hoàn chỉnh chƣơng trình phát khuôn mặt OpenCV Giới hạn đề tài IV  Đề tài không sâu kiến thức xử lý ảnh, dừng lại kiến thức nhằm xây dựng tản cho ngƣời bắt đầu nghiên cứu xử lý ảnh  Phần mềm xây dựng có chức đơn giản với mục đích hƣớng dẫn cho ngƣời học khai thác thƣ viện mã nguồn OpenCV, từ phát triển thành ứng dụng có tính hữu dụng chuyên nghiệp GVHD Đậu Trọng Hiển Phần II GIẢI QUYẾT VẤN ĐỀ GVHD Đậu Trọng Hiển 𝒏 𝑵  Nếu Fi+1 > F, đƣa n mẫu negative vào tập Ni+1 ; tạo tập Pi+1 với tối đa p mẫu positive mà phân lớp có phân loại  i := i+1 𝑭𝒊+𝟏 = ý nghĩa thuật toán mẫu negative tập huấn luyện stage sau mẫu negative mà stage classifier trƣớc phân loại sai, stage sau học mẫu khó Các stage đƣợc xây dựng cho kết hợp chúng xử lý tốt background, chúng loại bỏ sớm background stage nên làm tăng tốc trình nhận dạng đối tƣợng Chương III: Cơ sở lý thuyết Page 27 GVHD Đậu Trọng Hiển CHƢƠNG IV: Thƣ viện OpenCV I II Giới thiệu Cách cài đặt thƣ viện OpenCV Visual Studio 2008 Download thƣ viện OpenCV 2.1.0 "OpenCV-2.1.0-win32-vs2008.exe" địa http://sourceforge.net/projects/opencvlibrary/files/opencv-win/2.1/ Cài đặt vào thƣ mục "C:\Program Files\OpenCV\OpenCV210\" Chọn add it to your Current User PATH trình cài đặt Cấu hình cho Visual Studio Open VC++ Directories configuration: Tools > Options > Projects and Solutions > VC++ Directories Choose "Show directories for: Include files" i Add "$openCVDir\include\opencv" Choose "Show directories for: Library files" Chương IV: Thư viện OpenCV Page 28 GVHD Đậu Trọng Hiển i Add "$openCVDir\lib" Choose "Show directories for: Source files" i Add "$openCVDir\src\cv" ii Add "$openCVDir\src\cvaux" iii Add "$openCVDir\src\cxcore" iv Add "$openCVDir\src\highgui" Cấu hình Project bạn Sau tạo xong project bạn cần add thƣ viện OpenCV vào nhƣ sau Open Project Properties: Project > %projectName% Properties Open Linker Input properties: Configuration Properties > Linker > Input Open the " " window to edit "Additional Dependencies" and on each line put: i "cv210.lib" ii "cxcore210.lib" iii "highgui210.lib" iv Các thƣ viện khác chƣơng trình bạn cần Chương IV: Thư viện OpenCV Page 29 GVHD Đậu Trọng Hiển Buil project, không báo lỗi bạn làm Chương IV: Thư viện OpenCV Page 30 GVHD Đậu Trọng Hiển CHƢƠNG V: TẠO CƠ SỞ DỮ LIỆU ĐỂ NHẬN DẠNG BẰNG OPENCV Các bƣớc chuẩn bị I Thu thập ảnh khuôn mặt Sử dụng công cụ tìm kiếm internet  Google Image  Flick Yahoo Phân loại sở liệu tay Các ảnh sau thu thập đƣợc phân loại thành positive negative với số lƣợng khoảng vài ngàn ảnh Tiến hành lấy mẫu, tạo sở liệu huấn luyện Chuẩn hóa ảnh positive kích thƣớc 24x24 Huấn luyện cho máy Sử dụng lệnh Createsamples haartraining để huấn luyện tạo sở liệu, xuất dạng xml sử dụng chƣơng trình Các mẫu negative Tạo file text chứa thông tin mẫu negative với nội dung sau: bg.txt: img/img1.jpg img/img2.jpg … img/img-n.jpg với img/img1.jpg đƣờng dẫn file ảnh tập negative Các mẫu positive Đƣợc tạo công cụ createsamples Tạo file học vector “vector.vec” dùng lệnh: createsamples.exe -info positive/info.txt -vec data/vector.vec-num 466 –maxxangle 1.1 maxyangle 1.1 -maxzangle 0.5 -w 20 -h 20 với Chương V: Tạo sở liệu để nhận dạng OpenCV Page 31 GVHD Đậu Trọng Hiển -info positive/info.txt : file chứa thông tin tọa độ khung chữ nhật bao đặc trƣng đối tƣợng ảnh mẫu -vec data/vector.vec : đƣờng dẫn chứa file vector.vec tạo -num 466 : huấn luyện gồm 466 ảnh tích cực (có chứa đối tƣợng) -w 20 : chiều rộng mẫu ngõ (tính theo pixel) -h 20 : chiều cao mẫu ngõ (tính theo pixel) Các thông số maxxangle , maxyangle , maxzangle quy định góc xoay tối đa theo hƣớng không gian đối tƣợng mà đảm bảo đối tƣợng đƣợc phát II Tiến hành học huấn luyện cho máy tính haartraining.exe -data data/cascade -vec data/vector.vec -bg negative/infofile.txt -npos 466 -nneg 3125 -nstages 24 -mem 1200 -mode ALL -w 20 -h 20 –nonsym –minhitrate 0.995 – maxfalsealarm 0.5 –weighttrimming 0.95 với, -data data/cascade : đƣờng dẫn chứa file thông số ngõ đƣợc cập nhật(falsealarm , hit-rate) tầng huấn luyện (cascade) -vec data/vector.vec : đƣờng dẫn chứa file vector.vec tạo -bg negative/infofile.txt : đƣờng dẫn đến file chứa ảnh không tích cực -npos 466 : số lƣợng ảnh tích cực (giống khai báo phần trên) -nneg 3125 : số lƣợng ảnh không tích cực (thông tin file đƣợc chứa file infofile.txt) -nstages 24 : số lƣợng giai đoạn (stage) huấn luyện -mem 1200 : dung lƣợng nhớ cần cho trình huấn luyện (MB) Máy tính có nhớ RAM nhiều trình huấn luyện xảy nhanh -nonsym : khai báo đối tƣợng huấn luyện tính đối xứng –minhitrate 0.995 –maxfalsealarm 0.5 –weighttrimming 0.95: Chương V: Tạo sở liệu để nhận dạng OpenCV Page 32 GVHD Đậu Trọng Hiển thông số quy chuẩn độ trùng khít (phù hợp – hit rate) tối thiểu, ngƣỡng sai (false alarm) trọng số huấn luyện Các giá trị mặc định, thay đổi tùy theo “độ khó” đối tƣợng số lƣợng ảnh mẫu Ghi chú: lệnh đƣợc chạy môi trƣờng hệ điều hành Windows đƣợc đóng gói file thực thi lệnh định dạng “.bat” nhằm dễ chỉnh sửa thao tác Theo khuyến cáo Intel, máy tính đƣợc dùng cho công tác huấn luyện đòi hỏi phải có cấu hình mạnh Vì vậy, học viên thực xây dựng sở liệu sử dụng máy tính để bàn với CPU Intel Core Duo E6320 x 1.86 GHz, RAM 2GB, HDD 80GB Với cấu hình máy sở liệu (mỗi file xml) đƣợc tạo thành tiêu tốn thời gian liên tục 42 tiếng đồng hồ (gần ngày) Cơ sở liệu định dạng file xml sau xây dựng có dạng nhƣ Bảng Chương V: Tạo sở liệu để nhận dạng OpenCV Page 33 GVHD Đậu Trọng Hiển III Thử nghiệm sở liệu vừa tạo Gõ vào cmd dòng lệnh facedetect.exe cascade="đường dẫn + tên_sơ_sở_dữ_liệu.xml" đường_dẫn_tên_file_ảnh.jpg Chương VI: Xây dựng chương trình phát khuôn mặt Page 34 GVHD Đậu Trọng Hiển CHƢƠNG VI: XÂY DỰNG CHƢƠNG TRÌNH PHÁT HIỆN KHUÔN MẶT I Chuẩn bị công cụ lập trình thiết bị cần thiết Môi trƣờng xây dựng chƣơng trình phát khuôn mặt là: Máy tính chạy hệ điều hành WINDOWS Máy tính cài Visual Studio 2008 Professional, Net framework 3.5 Ngôn ngữ lập trình Visual C++ MFC Bộ thƣ viện mã nguồn mở OpenCV 2.1.0 Chương VI: Xây dựng chương trình phát khuôn mặt Page 35 GVHD Đậu Trọng Hiển II III Sơ đồ khối chƣơng trình Tổ chức chƣơng trình Hệ thống hoạt động nhƣ sau: Bắt hình từ webcam video, xử lý hình bắt đƣợc Thực thi thuật toán dùng đặc trƣng Haar để phát khuôn mặt Xác định vị trí trích xuất đối tƣợng phát Chương VI: Xây dựng chương trình phát khuôn mặt Page 36 GVHD Đậu Trọng Hiển Sau phát khuôn mặt,chƣơng trình khoanh vùng đối tƣợng Các lệnh chƣơng trình Bắt hình ảnh từ Webcam capture = cvCaptureFromCAM(1); Bắt hình ảnh từ file Video capture = cvCaptureFromAVI(“path”); phát khuôn mặt faces = cvHaarDetectObjects( image, cascade, storage, 1.1, 3, 0,cvSize(60, 60)); Đóng khung đối tƣợng cvRectangle(image, point1, point2, CV_RGB(0,255,0), 2, 1, 0); Chương VI: Xây dựng chương trình phát khuôn mặt Page 37 GVHD Đậu Trọng Hiển CHƢƠNG VI: KẾT QUẢ I Về tốc độ Chƣơng trình hoạt động tốc độ bình thƣờng với giới hạn khuôn mặt từ 50x50 pixel, hoạt động chậm với giới hạn khuôn mặt nhỏ 50x50 pixel II Về độ xác Chƣơng trình xác với khuôn mặt có góc nghiêng không 450 Khuôn mặt che không 30 % phát đƣợc Chương VI: Xây dựng chương trình phát khuôn mặt Page 38 GVHD Đậu Trọng Hiển Phần III KẾT LUẬN I KẾT LUẬN Đề tài “phát khuôn mặt ngƣời từ webcam” đạt đƣợc tƣơng đối đầy đủ mục tiêu đề tài Ngƣời thực tìm hiểu kiến thức xử lý ảnh, tìm hiểu thuật toán nhận dạng adaboost với đặt trƣng Haarlike xây dựng thành công chƣơng trình phát khuôn mặt ngƣời dùng thuật toán nầy II HƢỚNG PHÁT TRIỂN ĐỀ TÀI Với trợ giúp thƣ viện OpenCV không phát đƣợc khuôn mặt ngƣời mà ta xây dựng sở liệu để phát nhiều vật khác Trong tƣơng lai chƣơng trình đƣợc tích hợp thêm khả nhận dạng, phân biệt khuôn mặt có sở liệu, chƣơng trình ứng dụng camera an ninh, hệ thống giám sát hay điểm danh nhân viên… Chương VI: Xây dựng chương trình phát khuôn mặt Page 39 GVHD Đậu Trọng Hiển Phần IV TÀI LIỆU THAM KHẢO Jaesik Choi Realtime On-Road Vehicle Detection with Optical Flows and Haar-like feature detector Computer Science Department „s paper report, 2000 Julien Meynet Fast Face Detection Using AdaBoost 95 pages, 16 th July 2003 Paul Viola, Michael Jones Rapid Object Detection using a Boosted Cascade of Simple Features 2001 Intel Corporation OpenCV with Visual C++.NET 2003 OpenCV user guide Rainer Lienhart, Alexander Kuranov, Vadim Pisarevsky Empirical Analysis of Detection Cascades of Boosted Classifiers for Rapid Object Detection MRL Technical Report, December 2002 Luận văn thạc sỹ “Nhận Dạng xe cở thị giác máy” – Võ Hồng Phong Các Website http://www.intel.com/research/mrl/research/opencv/ http://www.codeproject.com http://forums.congdongcviet.com/ Chương VI: Xây dựng chương trình phát khuôn mặt Page 40

Ngày đăng: 04/09/2016, 15:24

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w