1. Trang chủ
  2. » Thể loại khác

ĐẠI HỌC CNTT VÀ TRUYỀN THÔNG VIỆT-HÀNBÁO CÁO ĐỒ ÁN CƠ SỞ 4ĐỀ TÀI: XÂY DỰNG PHƯƠNG PHÁP NHẬN DIỆN KHUÔN MẶT BẰNG PYTHON VÀ OPENCV

30 83 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

Tiêu đề Xây dựng phương pháp nhận diện khuôn mặt bằng Python và OpenCV
Tác giả Nguyễn Thị Nhật Lệ
Người hướng dẫn THS. Lê Song Toàn
Trường học Đại Học Đà Nẵng - Trường Đại Học Công Nghệ Thông Tin Và Truyền Thông Việt-Hàn
Chuyên ngành Công Nghệ Thông Tin
Thể loại Đồ án
Năm xuất bản 2020
Thành phố Đà Nẵng
Định dạng
Số trang 30
Dung lượng 3,76 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Việc nhận diện khuôn mặt được kết hợpvới các biện pháp sinh trắc học khác như: kiểm tra vân tay hay tròng mắt, tạo thành hệthống an ninh đa tầng lớp được nhiều quốc gia trên thế giới sử

Trang 1

ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

VÀ TRUYỀN THÔNG VIỆT-HÀN

BÁO CÁO

ĐỒ ÁN CƠ SỞ 4

ĐỀ TÀI: XÂY DỰNG PHƯƠNG PHÁP NHẬN DIỆN

KHUÔN MẶT BẰNG PYTHON VÀ OPENCV

Giảng viên hướng dẫn : THS.LÊ SONG TOÀN

Sinh viên thực hiện : NGUYỄN THỊ NHẬT LỆ

Lớp : 18IT4

Đà Nẵng, ngày 25 tháng 12 năm 2020

Trang 2

ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

VÀ TRUYỀN THÔNG VIỆT-HÀN

ĐỒ ÁN CƠ SỞ 4

ĐỀ TÀI: XÂY DỰNG PHƯƠNG PHÁP NHẬN DIỆN

KHUÔN MẶT BẰNG PYTHON VÀ OPENCV

Trang 3

Đà Nẵng, ngày 25 tháng 12 năm 2020

MỞ ĐẦU

Trong xã hội hiện đại ngày nay, khuôn mặt của mỗi người đóng vai trò rất quantrọng trong đời sống Nhờ những đường nét, góc cạnh trên gương mặt mà họ có thể đoánđược tuổi tác, thái độ, cảm xúc của người đó Nhờ những biểu cảm trên khuôn mặt,chúng ta có thể biết được họ đang vui hay buồn, đang bực tức hay dễ chịu Và nhờ mỗingười có một gương mặt khác nhau, chúng ta có thể biết được họ là ai

Khuôn mặt đóng vai trò quan trọng như vậy, cộng nghệ nhận diện khuôn mặthiện nay đã được phát triển lên và phổ biến rất nhiều Nhờ có công nghệ nhận diệnkhuôn mặt mà các lĩnh vực trong đời sống đã được cải thiện đáng kể

Cụm từ “công nghệ nhận diện khuôn mặt ” đang ngày càng trở nên phổ biến vàđược nhắc tới nhiều hơn Đây là từ khóa “hot” đang được các nhãn hàng công nghệ lớntrên thế giới như: Apple, Facebook hay Microsoft theo đuổi nghiên cứu và ứng dụng

Hệ thống nhận diện khuôn mặt là một ứng dụng máy tính nhận dạng một ngườinào đó từ một hình ảnh hoặc từ một đoạn video Việc nhận diện khuôn mặt được kết hợpvới các biện pháp sinh trắc học khác như: kiểm tra vân tay hay tròng mắt, tạo thành hệthống an ninh đa tầng lớp được nhiều quốc gia trên thế giới sử dụng để bảo vệ những sựkiện hay địa điểm nhạy cảm

Trên thế giới, công nghệ nhận diện khuôn mặt hay công nghệ nhận diện hình ảnh

đã được nghiên cứu cách đây hàng chục năm Tuy nhiên, tại Việt Nam, đây vẫn là mộtlĩnh vực còn khá mới mẻ Hiện kỹ sư trong nước đã bắt kịp rất nhanh với xu hướng côngnghệ mới này, từ đó cho ra đời những ứng dụng thiết thực trong đời sống như: đảm bảo

an ninh, quản lý nhân sự, hạn chế gian lận trong thi cử, tăng cường bảo mật trong giaodịch

Trong phạm vi báo cáo này, chúng em xin trình bày quá trình thực hiện “Xây dựngphương pháp nhận diện khuôn mặt bằng Python và OpenCv” Cuối cùng, mặc dù đã cốgắng rất nhiều nhưng do thời gian có hạn, khả năng dịch và hiểu tài liệu chưa tốt nên nộidung đồ án này không thể tránh khỏi những thiếu sót, rất mong được sự chỉ bảo, góp ýcủa các thầy cô và các bạn

Trang 4

LỜI CẢM ƠN

Trước tiên chúng em xin gửi lời cảm ơn chân thành và sâu sắc nhất đến thầy giáoTHS.Lê Song Toàn đã hướng dẫn, định hướng, giúp đỡ chúng em rất nhiều để chúng em

có thể hoàn thành tốt bài đồ án này

Chúng em xin gửi lời cảm ơn chân thành tới các quý thầy cô giáo trong đoàntrường Đại học Công nghệ Thông tin và Truyền thông Việt – Hàn đã giảng dạy tận tìnhtrong quá trình học tập, thực hành, làm bài tập, giúp chúng em hiểu rõ hơn các nội dunghọc tập

Vì thời gian có hạn và kinh nghiệm vẫn còn hạn chế nên bài đồ án này vẫn chưatránh khỏi những thiếu sót Em mong các quý thầy cô có thể thông cảm để chúng em cóthể khắc phục trong việc học tập, nghiên cứu, thực hiện đồ án này

Chúng em xin chân thành cảm ơn !

Đà Nẵng, ngày 25 tháng 12 năm 2020

Trang 5

NHẬN XÉT

(của giảng viên hướng dẫn)

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

Chữ ký của giảng viên hướng dẫn

Trang 6

MỤC LỤC

Trang 7

DANH MỤC HÌNH VẼ

Trang 8

CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN

1.1 Tổng quan về nhận diện khuôn mặt

Hơn một thấp kỉ qua có rất nhiều công trình nghiên cứu về bài toán xác địnhkhuôn mặt người từ ảnh đen trắng, xám đến ảnh màu như ngày hôm nay Các nhà nghiêncứu đi từ bài toán đơn giản, mỗi ảnh chỉ có một mặt người nhìn thẳng vào thiết bị thuhình và đầu ở tư thế thẳng đứng trong ảnh đen trắng

Cho đến ngày hôm nay bài toán mở rộng cho ảnh màu, có nhiều khuôn mặt trongcùng một ảnh, có nhiều tư thế thay đổi trong ảnh Không những thế mà còn mở rộng cảphạm vi từ môi trường xung quanh khá đơn giản cho đến môi trường xung quanh rấtphức tạp nhằm đáp ứng nhu cầu của con người

Nhận dạng dựa trên các đặc trưng khuôn mặt là phương pháp nhận dạng khuôn

mặt dựa trên việc xác định các đặc trưng hình học của các chi tiết trên một khuôn mặt(như vị trí, diện tích, hình dạng của mắt, mũi, miệng,…), và mối quan hệ giữa chúng(như khoảng cách của hai mắt, khoảng cách của hai lông mày,…)

Ưu điểm của phương pháp này là nó gần với cách mà con người sử dụng để nhậnbiết khuôn mặt Hơn nữa với việc xác định đặc tính và các mối quan hệ, phương phápnày có thể cho kết quả tốt trong các trường hợp ảnh có nhiều nhiễu như bị nghiêng, bịxoay hoặc ánh sáng thay đổi

Nhược điểm của phương pháp này là cài đặt thuật toán phức tạp do việc xác địnhmối quan hệ giữa các đặc tính đòi hỏi các thuật toán phức tạp Mặt khác, với các ảnhkích thước bé thì các đặc tính sẽ khó phân biệt do đó khó tính toán được các đặc trưngtrên khuôn mặt

Trong những năm gần đây các ứng dụng về trí tuệ nhân tạo ngày càng phát triển vàđược đánh giá cao Một lĩnh vực đang được quan tâm của trí tuệ nhân tạo nhằm tạo racác ứng dụng thông minh, có tính người đó là nhận dạng Trong đề tài này em chọn đốitượng là khuôn mặt

Trang 9

1.2 Phương pháp và kết quả

1.2.1 Phương pháp triển khai thực hiện đề tài

Trang 10

CHƯƠNG 2: NGHIÊN CỨU TỔNG QUAN

2.1 Cơ sở lý thuyết

2.1.1 Ngôn ngữ lập trình Python

Python được biết đến là một loại ngôn ngữ lập trình hướng đối tượng, bậc cao vàmạnh mẽ với mục đích lập trình rất đa năng Ngôn ngữ này được ra đời vào năm 1991bởi Guido Van Rossum Với ưu điểm là dễ đọc, dễ học và dễ nhớ, Python đã dần trởthành một ngôn ngữ phổ biến, được áp dụng rất nhiều trong ngành công nghệ thông tinhiện nay, đặc biệt phù hợp với những ai mới tiếp xúc và theo đuổi ngành công nghệthông tin

Và hiện nay, Python được sử dụng ở rất nhiều mảng khác nhau trong ngành côngnghệ thông tin như là:

 Sử dụng trong lĩnh vực lập trình website: Đây là ứng dụng phổ biến nhấtcủa Python và người dùng có thể dễ dàng tạo ra các web app với khả năng

mở rộng thông qua framework và hệ thống quản trị nội dung (CMS) đãđược tích hợp sẵn trong Python Một số nền tảng phổ biến được viết bằngngôn ngữ lập trình Python hiện nay để tạo web app như là Flask, Django,Plone

 Sử dụng trong lĩnh vực khoa học tính toán: Hiện nay, có rất nhiều thư việntrong Python được áp dụng cho khoa học, tính toán các số liệu như làNumPy hay SciPy Ngoài ra, còn có một số thư viện khác như là EarthPy

để áp dụng cho khoa học trái đất, AstroPy áp dụng cho thiên văn học,

 Python sử dụng trong việc tạo nguyên mẫu cho phần mềm: Mặc dù chậmhơn so với một số ngôn ngữ khác như là Java hay C++ và bị giới hạn vớinhững yêu cầu bắt buộc Tuy nhiên, Python vẫn là sự lựa chọn hoàn hảocho các lập trình viên có thể tạo ra được nguyên mẫu của các phần mềmdùng thử Ví dụ như bạn có thể sử dụng thư viện viết game Pygame và tạonguyên mẫu trước và sau đó nếu cảm thấy phù hợp thì sẽ sử dụng ngônngữ khác để tạo bản dùng thật

Ngoài ra, ngôn ngữ lập trình Python cũng được tạo ra với kiểu động, sử dụng cơchế cấp phát bộ nhớ tự động, cấu trúc cấp dữ liệu vô cùng mạnh mẽ, cách tiếp cận kháđơn giản nhưng lại mang đến hiệu quả rất tốt đối với việc lập trình đối tượng

Trang 11

2.1.2 Tại sao nên lựa chọn ngôn ngữ lập trình Python

Hiệu nay, Python là loại ngôn ngữ lập trình được nhiều chuyên gia khuyên nêntheo đuổi, đặc biệt là đối với những bạn trẻ mới chập chững bước chân vào ngành côngnghệ thông tin và chưa am hiểu sâu về lĩnh vực thì sẽ cần học ngôn ngữ Python để làmquen và là nền tảng phát triển các loại ngôn ngữ khác Lý do để lựa chọn Python rất đơngiản đó là:

 Các cú pháp rất đơn giản, thú vị và bạn có thể dễ dàng hiểu về cách thứchoạt động, có thể code được bằng Python Bởi thực tế, các cú pháp củaPython sẽ khá giống so với ngôn ngữ tự nhiên Do đó, ngay cả khi bạnchưa thực hành lập trình bao giờ thì vẫn có thể dự đoán được các đoạncode

 Học ngôn ngữ Python không quá khắt khe và bạn sẽ không cần phải xácđịnh kiểu của một biến trong Python hay không cần thêm dấu chấm phẩyvào cuối câu lệnh Ngôn ngữ Python sẽ buộc các bạn phải tuân thủ theonhững bài tập đã có sẵn với chỉ dẫn chi tiết, cụ thể và điều này sẽ giúp choquá trình học Python của các bạn trở nên dễ dàng hơn

 Một ưu điểm nữa ở Python mà các bạn nên lựa chọn theo đuổi đó chính làbạn sẽ không cần phải viết quá nhiều code bởi Python cung cấp đến nhữngchương trình cùng rất nhiều chức năng tốt và ít các dòng code hơn Điềunày sẽ khá phù hợp với những bạn mới học và chưa rành về code

 Ngoài ra, Python cũng cung cấp đến cho bạn một cộng đồng hỗ trợ vôcùng lớn với các diễn đàn hoạt động trực tuyến giúp giải đáp những vấn đềthắc mắc khi cần thiết

Trang 12

2.1.3 Những tính năng nổi bật của ngôn ngữ lập trình Python

Khám phá ngôn ngữ lập trình Python, bạn sẽ phải bất ngờ với những tính năng vôcùng nổi bật, giúp cho quá trình lập trình trở nên nhanh chóng, dễ dàng hơn như là:

 Ngôn ngữ lập trình nhập môn rất đơn giản, dễ học với các cú pháp rõ rànghơn rất nhiều so với những loại ngôn ngữ khác như là C++, C#, Java, Đặc biệt, Python sẽ giúp cho việc lập trình của bạn trở nên thú vị và tậptrung vào những giải pháp nhiều hơn chứ không phải những cú pháp

 Python hoàn toàn miễn phí và có mã nguồn mở, do đó, bạn có thể thoảimái, tự do sử dụng, phân phối Python hay thậm chí còn có thể sử dụng chomục đích thương mại Và cũng bởi là mã nguồn mở nên bạn không chỉ sửdụng được các phần mềm hay các chương trình trong Python mà còn cóthể tự thay đổi các mã nguồn của nó Python cũng không ngừng được cảithiện, nâng cấp hiện đại, phù hợp với từng giai đoạn, thời kỳ

 Ngôn ngữ lập trình Python cung cấp các chương trình có khả năng dichuyển từ nền tảng này sang nền tảng khác một cách đơn giản, dễ dàng.Điều đặc biệt là dù đã di chuyển nhưng nó vẫn sẽ chạy bình thường màkhông có bất kỳ thay đổi nào Hơn nữa, các chương trình cũng chạy rấtliền mạch trên hầu hết toàn bộ các nền tảng như là Linux, Windows,MacOS

 Python có tính năng mở rộng và có thể nhúng Cụ thể đó là với một ứngdụng đòi hỏi sự phức tạp cao, bạn vẫn có thể dễ dàng kết hợp các phầncode với nhau thông qua C hay C++, các loại ngôn ngữ khác để đưa vàocode Python Việc này sẽ giúp cho các ứng dụng của bạn có những tínhnăng tốt và chất lượng hơn, có khả năng scripting mà một số loại ngônngữ lập trình khác không hề có

 Python mang đến tính năng thông dịch cấp cao và bạn sẽ không còn phải

lo lắng về các nhiệm vụ khó khăn, phức tạp khác như là quản lý bộ nhớhay dọn dẹp bớt những dữ liệu không cần thiết, không có nghĩa, Khichạy code Python, các chương trình sẽ tự động chuyển đổi code sang mộtngôn ngữ máy tính để bạn có thể dễ hiểu hơn, đồng thời không cần phải lolắng về bất kỳ một hoạt động cấp thấp nào

Trang 13

Hướng đối tượng: Mọi thứ trong Python đều là hướng đối tượng Lập trình

hướng đối tượng (OOP) giúp giải quyết những vấn đề phức tạp một cáchtrực quan Với OOP, bạn có thể phân chia những vấn đề phức tạp thànhnhững tập nhỏ hơn bằng cách tạo ra các đối tượng

 Một tính năng nữa khá nổi bật của Python đó chính là mang đến một thưviện tiêu chuẩn lớn để có thể giải quyết được những vấn đề nghiêm trọng,giúp quá trình của bạn trở nên đơn giản, dễ dàng hơn bởi bạn sẽ không cầnphải tự viết toàn bộ code Ví dụ như bạn cần phải thực hiện kết nối các cơ

sở dữ liệu MySQL trên Web server thì có thể ngay lập tức nhập vào thưviện đó để sử dụng mà không cần lo lắng sẽ bị hỏng code

 Tính năng cuối cùng của Python đó chính là mọi thứ đều hướng đối tượnghay còn được gọi là lập trình đối tượng Tính năng này sẽ giúp giải quyếtđược toàn bộ những vấn đề phức tạp theo cách trực quan nhất có thể Hơnnữa, với lập trình hướng đối tượng, bạn có thể phân chia được những vấn

đề phức tạp đó thành những tập con nhỏ hơn theo phương pháp tạo ra cácđối tượng khác

2.1.4 Python được sử dụng ở đâu

Lập trình ứng dụng web: Bạn có thể tạo web app có khả năng mở rộng

(scalable) được bằng cách sử dụng framework và CMS (Hệ thống quản trị nội dung)được tích hợp trong Python Vài nền tảng phổ biến để tạo web app là: Django, Flask,Pyramid, Plone, Django CMS Các trang như Mozilla, Reddit, Instagram và PBS đềuđược viết bằng Python

Khoa học và tính toán: Có nhiều thư viện trong Python cho khoa học và tính

toán số liệu, như SciPy và NumPy, được sử dụng cho những mục đích chung chungtrong tính toán Và, có những thư viện cụ thể như: EarthPy cho khoa học trái đất,AstroPy cho Thiên văn học, Ngoài ra, Python còn được sử dụng nhiều trong machinelearning, khai thác dữ liệu và deep learning

Tạo nguyên mẫu phần mềm: Python chậm hơn khi so sánh với các ngôn ngữ

được biên dịch như C++ và Java Nó có thể không phải là lựa chọn tốt nếu nguồn lực bịgiới hạn và yêu cầu về hiệu quả là bắt buộc Tuy nhiên, Python là ngôn ngữ tuyệt vời đểtạo những nguyên mẫu (bản chạy thử - prototype)

Trang 14

2.1.5 Hướng dẫn cài đặt và cấu hình Python

2.1.5.1 Tải Python về máy

Để tải Python, hãy truy cập vào địa chỉ http://www.python.org/downloads/

Hình 1 Tùy chọn các phiên bản để tải cho phù hợp.

Hình 2 Chọn phiên bản phù hợp với cấu hình máy tính.

Trang 16

Hình 6 Chọn thư mục cần lưu

Hình 7 Nhấn close để đóng

Trang 17

2.1.5.3 Khởi chạy Python

Hình 8 Chọn thư mục IDLE(Python)

Hình 9

Hình 10

Hình 11

Trang 18

2.1.6.2 Lợi ích của phần mềm Pycharm

Một khía cạnh quan trọng của chương trình là hiểu được nền tảng mã mà bạnđang đưa vào PyCharm đảm bảo bạn có thể khám phá dự án của bạn chỉ với một vàithao tác trên phím, nó cung cấp cho bạn một cái nhìn tổng quan về cấu trúc dự án và chophép bạn truy cập vào các tài liệu có liên quan ngay từ trình soạn thảo Hiểu được mộtnền tảng code nhanh hơn có nghĩa là thúc đẩy nhanh hơn quá trình phát triển của bạn

2.1.6.3 Các tính năng chính của Pycharm

 Hỗ trợ Windows, macOS và Linux

 Hỗ trợ mã hoàn thiện thông minh, điều hướng bằng một cú nhấp chuột vàkiểm tra kiểu PEP8

 Tái cấu trúc an toàn và tự động trong dự án của bạn

 Tự động phát hiện các vấn đề mã: ví dụ: phân tích mã không sử dụng

 Trình gỡ lỗi hiệu suất cao

 Chế độ mô phỏng Vim

2.1.6.4 Cài đặt Pycharm và sử dụng Pycharm

Truy cập đường link: https://www.jetbrains.com/pycharm/ để tải Pycharm

Đối với các dự án cá nhân thì bản Community đã hoàn toàn đầy đủ tính năng Hãy tải

Hình 12 Download PyCharm trên trang chủ JetBrains

Trang 19

Sau khi download thành công, PyCharm sẽ được lưu tại một thư mục Download của máy tính.

Ta click đúp lên file bộ cài, để tiến hành cài đặt PyCharm

Màn hình chào mừng được hiển thị, ta nhấn Next để tiếp tục

Hình 13 Bắt đầu cài đặt PyCharm lên máy

Hình 14 Giao diện cài Đặt PyCharm đầu tiên - Chọn Next

Trang 20

Sau đó, ta chọn đường dẫn thư mục chứa bộ cài nói trên.

Hình 15 Chọn đường dẫn lưu PyCharm - Để mặc định

Tiếp theo, ta chọn các tùy chọn cho việc cài đặt

Nếu máy chưa cài đặt Java thì ta tích vào tất cả các tùy chọn trên màn hình này

Hình 16 Chọn cài Tùy chọn Cài Đặt - Lựa chọn Như Hình nếu chưa cài Java, OS 64 Bit

Trang 21

Sau đó ta chọn Install trong màn hình tiếp theo, để bắt đầu tiến hành cài đặt PyCharm

Sau khi cài đặt xong, PyCharm sẽ hỏi ta có muốn khởi động lại máy luôn hay không Ta có thể chọn RebootNow để khởi động lại máy tính nhằm hoàn tất quá trình cài đặt

Hình 17 Lựa chọn Install để cài đặt PyCharm

Hình 18 Chọn Reboot Now để khởi động lại và hoàn tất cài đặt PyCharm

Ngày đăng: 20/04/2021, 22:28

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w