« Home « Kết quả tìm kiếm

Trần Dương Quang_Báo cáo DACS 5_Điểm danh bằng nhận diện khuôn mặt


Tóm tắt Xem thử

- TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀTRUYỀN THÔNG VIỆT - HÀN ĐỒ ÁN CƠ SỞ 5ĐỀ TÀI: XÂY DỰNG ỨNG DỤNG ĐIỂM DANH BẰNG CÔNG NGHỆ NHẬN DẠNG KHUÔN MẶT Sinh viên thực hiện : Trần Dương Quang Lớp : 18IT3 Giảng viên hướng dẫn : TS Lê Thị Thu Nga Đà nẵng, tháng 5 năm 2020 TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG VIỆT - HÀN ĐỒ ÁN CƠ SỞ 5ĐỀ TÀI: XÂY DỰNG ỨNG DỤNG ĐIỂM DANH BẰNG CÔNG NGHỆ NHẬN DẠNG KHUÔN MẶT Sinh viên thực hiện : Trần Dương Quang Lớp : 18IT3 Giảng viên hướng dẫn : TS Lê Thị Thu Nga Đà nẵng, tháng 5 năm 2020 NHẬN XÉT(Của giảng viên hướng dẫn) 1 LỜI CẢM ƠN Nhóm đồ án chúng em xin gửi lời cảm ơn đến cô Lê Thị Thu Nga– giảng viênhướng dẫn đồ án cơ sở 5, và các thầy cô giảng dạy các bộ môn chuyên ngành khác đã dạyvà hướng dẫn nhiệt tình trong quá trình em thực hiện đồ án.
- Công nghệ nhận diện khuôn mặt và thư viện sử dụng trong Python .
- Công nghệ nhận diện khuôn mặt .
- PHÂN TÍCH HỆ THỐNG I.
- Phân tích thiết kế hệ thống .
- Cài đặt thư viện numpy .
- Lấy dữ liệu sinh viên từ bàn phím và webcam .
- Kết nối với cơ sở dữ liệu mysql .
- Update dữ liệu khi có sinh viên điểm danh .
- Hàm tạo và thêm sinh viên vào hệ thống .
- Hàm huấn luyện tập dữ liệu KẾT LUẬN I.
- Nhược điểm DANH MỤC TÀI LIỆU THAM KHẢO DANH MỤC CỤM TỪ VIẾT TẮTSTT Cụm từ Viết tắt 1 Cơ Sở Dữ Liệu CSDL 2 Viện Tiêu chuẩn và Công nghệ Quốc NIST gia 3 Cơ quan Dự án Nghiên cứu Tiên tiến DARPA Quốc phòng 4 Công nghệ nhận dạng khuôn mặt FERET 5 Nhà cung cấp nhận dạng khuôn mặt FRVT 6 Thử thách nhận dạng khuôn mặt FRGC 5 DANH MỤC HÌNH VẼHình 1.
- Giao diện trang chủ hệ thống Hình 3.
- Huấn luyện tập dữ liệu ảnh Hình 5.
- Tiến hành nhận diện MỞ ĐẦU Cùng với sự phát triển dữ dội của ngành công nghệ thông tin thì trí tuệ nhân tạo cũngđóng một vai trò rất quan trong.
- Và một trong những công nghệ trí tuệ nhân tạođược áp dụng phổ biến nhất là nhận diện khuôn mặt.
- Công nghệ nhận diện khuôn mặt là gì? Công nghệ nhận diện khuôn mặt là chỉ một ứng dụng máy tính tự động xác định hoặcnhận diện một người nào đó từ một hình ảnh kỹ thuật số hoặc một khung hình video từmột nguồn video.Một trong những công nghệ lâu đời nhất để thực hiện điều này là sosánh các đặc điểm của khuôn mặt chọn trước từ hình ảnh và một cơ sở dữ liệu về khuônmặt.
- Một trong những lĩnhvực đang được nhiều người quan tâm của trí tuệnhân tạo đó là nhận dạng khuôn mặt(Face Recognition).
- Như chúng ta đã biết, khuôn mặt đóng vai trò quan trọng trong quátrình giao tiếp giữa người với người, nó mang một lượng thông tin giàu có, chẳng hạnnhư từ khuôn mặt chúng ta có thể xác định giới tính, tuổi tác, chủng tộc, trạng thái cảmxúc, đặc biệt là xác định mối quan hệ với đối tượng (có quen biết hay không).
- Do đó, bài toán nhận dạng khuôn mặt đóng vai trò quan trọng trong nhiều lĩnh vựcđời sống hằng ngày của con người như các hệ thống giám sát, quản lý vào ra, tìm kiếmthông tin một người nổi tiếng,…đặc biệt là an ninh, bảo mật.
- Công nghệ nhận diện khuôn mặt và thư viện sử dụng trong Python 1.
- Công nghệ nhận diện khuôn mặt 1.1 Lịch sử phát triển - Những ngày đầu của nhận dạng khuôn mặt – những năm 1960 Những người tiên phong sớm nhất về nhận dạng khuôn mặt là Woody Bledsoe,Helen Chan Wolf và Charles Bisson.
- Năm 1964 và 1965, Bledsoe, cùng với Wolf vàBisson bắt đầu làm việc bằng cách sử dụng máy tính để nhận ra khuôn mặt con người.
- Nâng cao độ chính xác của nhận dạng khuôn mặt - những năm 1970 Tiếp tục công việc ban đầu của Bledsoe, cây dùi cui được goldstein, Harmon vàLesk nhặt được trong những năm 1970, người đã mở rộng công việc bao gồm 21 dấu hiệuchủ quan cụ thể bao gồm màu tóc và độ dày môi để tự động nhận dạng.
- Trong khi độ chính xác tiên tiến, các phép đo và địa điểm vẫn cần phải được tínhtoán bằng tay được chứng minh là cực kỳ tốn nhiều công sức nhưng vẫn đại diện cho mộtsự tiến bộ trên công nghệ RAND Tablet của Bledsoe.
- Sử dụng đại số tuyến tính để nhận dạng khuôn mặt - những năm 1980 / 90 Phải đến cuối những năm 1980, chúng tôi mới thấy sự tiến bộ hơn nữa với sự pháttriển của Nhận dạng khuôn mặt như một sinh trắc học khả thi cho các doanh nghiệp.
- Năm1988, Sirovich và Kirby bắt đầu áp dụng đại số tuyến tính cho vấn đề nhận dạng khuônmặt Một hệ thống được gọi là Eigenface cho thấy rằng phân tích tính năng trên một bộsưu tập các hình ảnh trên khuôn mặt có thể tạo thành một tập hợp các tính năng cơ bản.Họ cũng có thể cho thấy rằng ít hơn một trăm giá trị được yêu cầu để mã hóa chính xácmột hình ảnh khuôn mặt được chuẩn hóa.
- 8 Năm 1991, Turk và Pentland tiếp tục công việc của Sirovich và Kirby bằng cáchkhám phá cách phát hiện khuôn mặt trong một hình ảnh dẫn đến các trường hợp nhậndạng khuôn mặt tự động sớm nhất.
- Bước đột phá quan trọng này đã bị cản trở bởi các yếutố công nghệ và môi trường, tuy nhiên nó mở đường cho sự phát triển trong tương laitrong công nghệ Nhận dạng khuôn mặt - Chương trình FERET – 1990s/2000s Cơ quan Dự án Nghiên cứu Tiên tiến Quốc phòng (DARPA) và Viện Tiêu chuẩnvà Công nghệ Quốc gia (NIST) đã triển khai chương trình Công nghệ Nhận dạng Khuônmặt (FERET) vào đầu những năm 1990 để khuyến khích thị trường nhận dạng khuôn mặtthương mại.
- Dự án liên quan đến việc tạo ra một cơ sở dữ liệu hình ảnh khuôn mặt.Trong bộ thử nghiệm có 2.413 hình ảnh khuôn mặt tĩnh đại diện cho 856 người.
- Hy vọngrằng một cơ sở dữ liệu lớn các hình ảnh thử nghiệm để nhận dạng khuôn mặt sẽ truyềncảm hứng cho sự đổi mới và có thể dẫn đến công nghệ nhận dạng khuôn mặt mạnh mẽhơn.
- Kiểm tra nhà cung cấp nhận dạng khuôn mặt - những năm 2000 Viện Tiêu chuẩn và Công nghệ Quốc gia (NIST) bắt đầu thử nghiệm nhà cung cấpnhận dạng khuôn mặt (FRVT) vào đầu những năm 2000.
- Dựa trên FERET, FRVTs đượcthiết kế để cung cấp các đánh giá độc lập của chính phủ về các hệ thống nhận dạng khuônmặt có sẵn trên thị trường, cũng như các công nghệ nguyên mẫu.
- Những đánh giá nàyđược thiết kế để cung cấp cho các cơ quan thực thi pháp luật và chính phủ Hoa Kỳ thôngtin cần thiết để xác định những cách tốt nhất để triển khai công nghệ nhận dạng khuônmặt - Nhận dạng khuôn mặt Grand Challenge – 2006 Ra mắt vào năm 2006, mục tiêu chính của Thử thách lớn về nhận dạng khuôn mặt(FRGC) là thúc đẩy và thúc đẩy công nghệ nhận dạng khuôn mặt được thiết kế để hỗ trợcác nỗ lực nhận dạng khuôn mặt hiện có trong Chính phủ Hoa Kỳ[2].
- FRGC đã đánh giá các thuật toán nhận dạng khuôn mặt mới nhất hiện có.
- Hình ảnhkhuôn mặt có độ phân giải cao, quét khuôn mặt 3D và hình ảnh mống mắt đã được sửdụng trong các thử nghiệm.
- Kết quả chỉ ra rằng các thuật toán mới chính xác gấp 10 lầnso với các thuật toán nhận dạng khuôn mặt năm 2002 và chính xác hơn 100 lần so vớinăm 1995, cho thấy những tiến bộ của công nghệ nhận dạng khuôn mặt trong thập kỷqua.
- Truyền thông xã hội - 2010-Hiện tại Trở lại năm 2010, Facebook bắt đầu triển khai chức năng nhận dạng khuôn mặtgiúp xác định những người có khuôn mặt có thể xuất hiện trong các bức ảnh mà ngườidùng Facebook cập nhật hàng ngày.
- Không có tác động tiêucực rõ ràng đến việc sử dụng hoặc phổ biến của trang web, hơn 350 triệu ảnh được tải lênvà gắn thẻ bằng nhận dạng khuôn mặt mỗi ngày.
- Nhận diện khuôn mặt là gì.
- Nhận diện khuôn mặt là một loại phần mềm sinh trắc học ánh xạ các đặc điểmkhuôn mặt của một cá nhân về mặt toán học và lưu trữ dữ liệu dưới dạng faceprint (dấu 9khuôn mặt).
- Phần mềm sử dụng các thuật toán Deep Learning để so sánh ảnh chụp trựctiếp hoặc hình ảnh kỹ thuật số với faceprint được lưu trữ để xác minh danh tính của mộtcá nhân.
- Hệ thống này thường được sử dụng trong các hệ thống an ninh và có thể được sosánh với các dạng sinh trắc học khác như các hệ thống nhận dạng vân tay hay tròng mắt(theo wikipedia).
- Ứng dụng nhận diện khuôn mặt hoạt động như thế nào? Quá trình mà sinh trắc học nhận diện khuôn mặt hoạt động bao gồm.
- Lấy mẫu: Trước hết, để có thể phân tích khuôn mặt và nhận diện, cần phải táchkhuôn mặt ra khỏi khung cảnh còn lại trước đã - Phân tích: Chúng ta nhận diện gương mặt mọi người qua các đặc điểm, hệ thốngnhận diện cũng vậy, nhưng nó thực hiện đánh giá các đặc điểm ở 1 level cao hơn - So sánh: Mỗi khuôn mặt đều có nhiều điểm mốc, những phần lồi lõm tạo nên cácđặc điểm của khuôn mặt.
- Các hệ thống nhận diện gương mặt định nghĩa những điểm nàylà những điểm nút.
- Kết quả: Hệ thống sau đó sẽ quyết định kết quả so sánh có phù hợp hay không.
- Mặc dù hệ thống nhận dạng khuôn mặt chỉ sử dụng 80 điểm nút, nhưng nó có thểxác định nhanh chóng và chính xác mục tiêu khi điều kiện thuận lợi.
- Theo Viện Tiêu chuẩn và Công nghệ Quốc gia (NIST), tỷ lệ phát hiện không chínhxác trong các hệ thống nhận dạng khuôn mặt đã giảm một nửa cứ sau 2 năm, kể từ năm1993.
- Các ví dụ về nhận dạng khuôn mặt - Camera chất lượng cao trong thiết bị di động đã làm cho tính năng nhận dạngkhuôn mặt trở thành một lựa chọn khả thi để xác thực cũng như nhận dạng.
- Chẳng hạn,iPhone X và Xs của Apple, bao gồm công nghệ Face ID, cho phép người dùng mở khóađiện thoại với một faceprint được ánh xạ bởi camera của điện thoại.
- Face ID có thể đượcsử dụng để xác thực mua hàng với Apple Pay và trong iTunes Store, App Store và iBooks 10Store.
- Apple mã hóa và lưu trữ dữ liệu faceprint trên đám mây, nhưng việc xác thực diễnra trực tiếp trên thiết bị - Các ví dụ khác về nhận dạng khuôn mặt bao gồm Amazon, MasterCard vàAlibaba, những bên đã triển khai các phương thức thanh toán bằng cách nhận dạng khuônmặt, thường được gọi là Selfie Pay.
- Các nhà phát triển có thể sử dụng Amazon Rekognition, một dịch vụ phân tíchhình ảnh, để thêm các tính năng nhận dạng và phân tích khuôn mặt vào một ứng dụng.Google cung cấp khả năng tương tự với API Google Cloud Vision.
- Ứng dụng của công nghệ nhận dạng khuôn mặt trong các ngành nghề Nhận dạng khuôn mặt có thể được sử dụng cho vô số ứng dụng, từ bảo mật đến quảngcáo.
- Một số trường hợp sử dụng bao gồm.
- Bảo mật doanh nghiệp, vì các doanh nghiệp có thể sử dụng nhận dạng khuôn mặtđể vào tòa nhà.
- Các nhà tiếp thị có thể sử dụng nhận dạng khuôn mặt để xác định độ tuổi,giới tính và dân tộc để nhắm mục tiêu tới đối tượng cụ thể 1.6.
- Lợi ích của việc nhận dạng khuôn mặt Với việc sử dụng nhận dạng khuôn mặt mang đến một loạt các lợi ích tiềm năng, baogồm.
- Không cần phải trực tiếp tiếp xúc với thiết bị để xác thực (các kỹ thuật xác thựcsinh trắc học dựa trên tiếp xúc khác như máy quét dấu vân tay, có thể không hoạt độngchính xác nếu có vết bẩn trên tay của một người.
- Có thể được sử dụng để giúp tự động hóa việc xác thực.
- Nhược điểm của nhận dạng khuôn mặt - Nhận dạng khuôn mặt không phải là hoàn hảo và khó khăn để thực hiện trong cácđiều kiện nhất định.
- Ralph Gross, một nhà nghiên cứu tại Viện Mellon RoboticsCarnegie, mô tả một trở ngại liên quan đến các góc nhìn của khuôn mặt: "Nhận dạngkhuôn mặt đã thực hiện được khá tốt ở phía mặt trước và phía chênh lệch 20 độ, nhưngngay sau khi bạn đi về phía góc khuất, thì nó có vấn đề.
- Các điều kiện khác mà nhận dạng khuôn mặt không làm việc tốt bao gồm thiếuánh sáng, đeo kính mát, tóc dài, hoặc các đối tượng khác mà một phần khuôn mặt bị che,và các hình ảnh độ phân giải thấp.
- Một bất lợi nghiêm trọng là nhiều hệ thống sẽ kém hiệu quả nếu biểu hiện khuônmặt khác nhau.
- Ngay cả một nụ cười lớn, cũng có thể làm cho hệ thống giảm tính hiệu 11quả.
- Ngoài ra còn có sự không thống nhất trong các dữ liệu được sử dụng bởi các nhànghiên cứu.
- Các nhà nghiên cứu có thể sử dụng bất cứ nơi nào từ nhiều đối tượng khácnhau cho đến điểm số của các đối tượng, và một vài trăm bức hình cho tới hàng ngàn bứchình.
- Điều quan trọng là các nhà nghiên cứu cho phép những bộ dữ liệu mà họ sử dụngcũng có thể được sử dụng bởi người khác, hoặc có ít nhất một bộ dữ liệu chuẩn.
- Ngày 18/1/2013 các nhà nghiên cứu Nhật Bản đã tạo ra một tấm che mặt riêng tưsử dụng ánh sáng gần dãi hồng ngoại làm cho bộ mặt bên dưới không thể nhận ra bởiphần mềm nhận dạng khuôn mặt 12 2.
- Cấu trúc của Python còn chophép người sử dụng viết mã lệnh với số lần gõ phím tối thiểu.
- OpenCv được thiết kế một cách tối ưu, sử dụng tối đa mạnhcủa các dòng chip đa lõi… để thực hiện các phép tính toán trong thời gian thực, nghĩa làtốc độ đáp ứng của nó thể đủ nhanh cho các ứng dụng thông thường.
- OpenCv là thư viện được thiết kế để chạy trên nhiều nền tảng khác nhau (cross-platform),nghĩa là nó có thể chạy trên hệ điều hành Window, Linux, Mac, iOS… Việc sửdụng thư viện OpenCv tuân theo các quy định về sử dụng phần mềm mã nguồn mở BSDdo đó bạn có thể sử dụng thư viện này một cách miễn phí cho các mục đích phi thươngmại lẫn thương mại.
- Thư viện OpenCV ban đầu được sự hỗ trợ từ Intel, sau đó được hỗ trợ bởi WillowGarage, một phòng thí nghiệm chuyên nghiên cứu về công nghệ robot.
- Phân tích thiết kế hệ thống 1.
- Nhiệm vụ và chức năng Nhiệm vụ chính của chương trình là nhận dạng một khuôn mặt người xem khuôn mặtđó có được biết đến hay chưa.
- Ngoài ra, chương trình còn thực hiện công việc phát hiện,tách các khuôn mặt người (nếu có) từ một ảnh tĩnh, hoặc từ các frame ảnh thu được từcamera.
- Hình 1 Sơ đồ ngữ cảnh hệ thống - Như vậy, các chức năng của chương trình bao gồm: o Lấy một ảnh từ kết nối đến webcam hiển thị lên o Thực hiện tách các khuôn mặt o Thực hiện lưu khuôn mặt phát hiện được vào CSDL o Nhận dạng ảnh một khuôn mặt.
- Phát hiện khuôn mặt.
- Xử lí khuôn mặt  Xử lý đầu ra  Lưu điểm danh 153.
- Cài đặt python và OpenCV Download Python tại https://www.python.org/downloads/, sau đó hoàn thành các bướccài đặt và chuẩn bị cho khởi động Pip là hệ thống quản lý các package của Python.
- Mình có thể tìm kiếm các package màpip hỗ trợ thông qua lệnh pip search.
- pip search "opencv" Như hình trên mình thấy, pip hiện tại hỗ trợ package opencv-python (phiên bản4.3.0.36), nên mình có thể cài đặt OpenCV cho Python thông qua pip.
- Sử dụng lệnh pipinstall để cài đặt OpenCV.
- pip install opencv-python==4.3.0.36 Kiểm tra lại, nếu có thể import được OpenCV mà không báo lỗi thì việc cài đặt thànhcông.
- Lấy dữ liệu sinh viên từ bàn phím và webcam5.
- Kết nối với cơ sở dữ liệu mysql6.
- Update dữ liệu khi có sinh viên điểm danh 2210.
- Hàm huấn luyện tập dữ liệu 23II.
- Giao diện trang chủ hệ thống 24Hình 3.
- Huấn luyện tập dữ liệu ảnh 25Hình 5.
- Riêng phương pháp nhận dạng mặt người bằng thư viện OpenCV đượctrình bày ở chương 1 và chương 2.
- Từ kết quả cho thấy, độ chính xác của chương trìnhchỉ đạt ở 70% nhận dạng đúng.
- Để chương trình có thể sử dụng trong thực tế cần rất nhiều thời gian nghiên cứu và giảiquyết các vấn đề gặp phải, thực hiện các ý tưởng mới để nâng cao tốc độ, hiệu suất và độchính xác của chương trình.
- Ưu điểm Trong số các kỹ thuật sinh trắc học, nhận dạng khuôn mặt có thể không đáng tin cậy vàhiệu quả nhất.
- Các hệ thống thiết kế được lắp đặt tại các sân bay, khuchung cư, và những nơi công cộng khác có thể xác định các cá nhân giữa đám đông, màkhông bỏ sót một ai.
- Tuy nhiên, câu hỏi đã được đặt ra về hiệuquả của phần mềm nhận dạng khuôn mặt trong trường hợp của an ninh đường sắt và sânbay.
- Nhược điểm Mặc dù nhận dạng khuôn mặt đã thực hiện được khá tốt ở phía mặt trước và phíachênh lệch 20 độ, nhưng ngay sau khi bạn đi về phía góc khuất, thì nó có vấn đề.
- Một số điều kiện có thể ảnh hưởng tới tính chính xác của phương pháp như.
- Thiếu ánh sáng, đeo kính mát, tóc dài, hoặc một phần khuôn mặt bị che  Hình ảnh độ phân giải thấp  Hệ thống sẽ kém hiệu quả nếu biểu hiện khuôn mặt khác nhau, ví dụ như khi cườilớn cũng có ảnh hưởng

Xem thử không khả dụng, vui lòng xem tại trang nguồn
hoặc xem Tóm tắt