Chương 1: Tông quan về cơ sở lý thuyết. Chương 2: Xây dựng hệ thống nhận diện khuôn mặt. Chương 3: Xây dựng chương trinh. Mục đích của đề tài xây dựng một dự án phần mềm ứng dụng nhận dạng khuôn mặt - Tìm hiệu về thư viện OpenC$v.
Nghiên cứu phương pháp trích chọn đặc trưng Haar Cascade. Tìm hiểu các phương pháp xác định khuôn mặt (Face Detection). „ Đôi tượng và phạm vi nghiên cứu đề tài we Đối tượng: + -_ Các phương pháp, thuật toán phục vụ cho việc phát hiện và nhận dạng khuôn mặt người trên ảnh. - Bộ thư viện xử lý ảnh OpenC$v.
Pham vi nghiên cứu: + - Tập trung tìm hiểu phát hiện khuôn mat (Face Recognition) chứ không chú trọng tìm hiểu phát hiện khuôn mặt (Face Detection). -_ Việc xử lý ảnh, nhận dạng khuôn mặt thỏa mãn các điều kiện: * Ánh sáng bình thường, ngược sáng, ánh sáng đèn điện (Với bộ cở sở dữ liệu tự thu thập). 11 * Góc ảnh: Trực diện (frontal) hoặc góc nghiêng. * Không bị che khuât (no occulusion).
* Anh co chất lượng cao (high quality). 12 CHUONG 1: TONG QUAN VE CO SO LY THUYET 1. 1 Giới thiệu về python Python là một ngôn ngữ lập trình thông dịch, đa năng và dễ học, được sử dụng trong nhiều lĩnh vực khác nhau. Python được thiết kế để đọc đễ hiểu và có cú pháp øọn gàng, øiúp cho người mới học lập trình dễ dàng tiếp cận và phát triển các ứng dụng.
Với nhiều tính năng mạnh mẽ như hỗ trợ đa nền tảng, độ tin cậy cao, và bộ thư viện phong phú, Python là một trong những ngôn ngữ lập trình phô biến nhất trên thế giới. Nó được sử dụng rộng rãi trong các ứng dụng web, khoa học dữ liệu, trí tuệ nhân tạo, phát triển same, đỗ họa, hệ thống và mạng, và nhiều ứng dụng khác. Các đặc điểm chính của Python bao gồm: Cú pháp đơn giản: Python sử dụng cú pháp đơn giản và dễ đọc, với các từ khóa và cấu trúc ngôn ngữ dễ hiểu, giúp cho việc viết mã nguồn dé dang hon so voi các ngôn ngữ lập trinh khác. Hỗ trợ đa nền tảng: Python có thê chạy trên nhiều nền tảng khác nhau bao gồm Windows, Linux và MacOS, và là một ngôn ngữ lập trình có tính đi động cao.
Kiểu đữ liệu động: Python là một ngôn ngữ lập trình có kiểu dữ liệu động, có nghĩa là các biến không cần phải được khai báo trước khi sử dụng. Kiểu đữ liệu được xác định tự động dựa trên giá trị được gán vào biến. Hỗ trợ các thư viện va framework manh mé: Python có một cộng đồng lớn với nhiều thư viện và ffamework phố biến để giúp cho việc phát triển ứng dụng dé đàng hơn. Các thư viện phô biến như NumPy, Pandas, Matplotlib, TensorFlow, Django, Flask va nhiéu hon nia.
Hỗ trợ lập trình hướng đối tượng: Python hỗ trợ lập trình hướng đối tượng, cho phép các lập trình viên xây dựng các đối tượng và lớp đối tượng riêng để tạo ra các ứng dụng phức tạp hơn. Tốc độ xử lý cao: Python có tốc độ xử lý tương đối nhanh và được tối ưu hóa cho các tác vụ tính toán khoa học và máy học. Dễ học và dễ sử dụng: Python là một ngôn ngữ lập trình dễ học và dễ sử dụng cho người mới bắt đâu. 13 Ôthon Lịch sử của Python Python được Guido van Rossum phát triển vào cuối những năm tám mươi và đầu những năm chín mươi tại Viện nghiên cửu quốc gia về toán học và khoa học máy tính ở Hà Lan.
Python có nguồn gốc từ nhiều ngôn ngữ khác, bao gồm ABC, Modula-3, C, C+t, Algol-68, SmallTalk va Ủnix shell và các ngôn ngữ scrIpt khác. Python có bản quyền giống như Perl, mã nguồn Python hiện có sẵn theo giấy phép GNU (GPL). Python hiện được duy trì bởi một nhóm phát triển cốt lõi tại viện nghiên cứu quốc gia về toán học và khoa học máy tính ở Hà Lan Guido van Rossum vẫn giữ một vai trò quan trọng trone việc chỉ đạo tiến trình của nó. Các tính năng của Python -_ Dễ học: Python có ít từ khóa, cấu trúc đơn giản và cú pháp được định nghĩa rõ ràng.
Điều này cho phép người mới học tiếp cận ngôn ngữ một cách nhanh chóng. - Dé doc: Ma Python được định nghĩa rõ ràng hơn và có thể nhìn thấy bằng mắt. -_ Dễ bảo trì: Mã nguồn của Python khá dễ bảo trì. -_ Một thư viện tiêu chuẩn rộng: Phần lớn thư viện của Python rất đễ đính kèm và đa nền tảng tương thích trén UNIX, Windows va Macintosh.
- Chế độ tương tác: Python có hỗ trợ cho chế độ tương tác cho phép kiểm tra tương tác và debug. - Portable: Python có thể chạy trên nhiều nền tảng phần cứng khác nhau và có cùng giao điện trên tất cả các nền tảng. - Có thể mở rộng: Tôi có thể thêm các module cấp thấp vào trình thông địch Python. Các module này cho phép các lập trình viên thêm hoặc tùy chỉnh các công cụ của mình để hiệu quả hơn.
- Co sé dir ligu: Python cung cấp phương thức giao tiếp cho tất cả các cơ sở đữ liệu. 14 -_ Lập trình GUI: Python hỗ trợ các ứng dụng GUI có thể được tạo và chuyển sang nhiều cuộc gọi hệ thông, thư viện và hệ thống cửa số, như Windows MEC, Macintosh và hệ thống X Window cua Unix. - Kha nang mé rong: Python cung cap cau tric va hé trợ tốt hơn cho các chương trình lớn hơn so với kịch bản lệnh shellL Ngoài các tính năng được đề cập ở trên, Python còn có một danh sách lớn các tính năng khác, một số tính năng được liệt kê bên dưới: - - Nó hễ trợ các phương pháp lập trình thủ t và có cấu trúc cũng như OOP. - Nó có thể được sử dụng như một ngôn ngữ kịch bản hoặc có thể được biên dịch thành mã byte để xây dựng các ứng dụng lớn.
- Nó cung cấp các kiểu đữ liệu động ở mức rất cao và hỗ trợ kiểm tra kiểu động. -_ Nó hễ trợ thu gom rac ty động. - Nocé thé dé dang tích hợp voi C, C++, COM, ActiveX, CORBA va Java. Python làm được những gì? - Web Development: Mét sé Framework nhu Flask, DJango, FastAPI.
giúp xây dựng các ứng dụng Web, Web APIs nhanh và dễ dàng. -_ Desktop GUI: Tôi có thể xây dựng các ưng dụng Desktop với Pythong bằng cách sử dung PyQt5, Tkinter, Kivy. - Tri tuệ nhân tạo & Máy học (AI & ML): Đây có lẽ là một trong những ứng dụng khiến cho Python trở nên rất “hot” như vậy. Do có nhiều thư viện hỗ trợ nên Python có thê nói là một ngôn ngữ lập trình rất mạnh mẽ trong ngảnh Trí tuệ nhân tạo và Máy học.
- Software Testing/Web Automation: Automation Testing dang ngay cảng trở nên phố biến hon Python có thư viện Selenium dang dugc su dung rat nhiều trong lĩnh vực Automation Testing và lẫy dữ liệu trên các trang web. - Xử lý hình ảnh, video: Công nghệ xử lý ảnh hiện nay đang ngày cảng phát triển với sự hỗ trợ của nhiều thư viện khác nhau. Tiêu biểu nhất phải kê đến các thư viện như OpenCV, và thư viện này cũng hỗ trợ Python rất mạnh.2 Giới thiệu Pycharm PyCharm là một nền tảng hybrid được JetBrains phát triển như một IDE cho Python. Nó thường duoc str dung dé phat triển ứng dụng Python.
Một số tô chức kỳ lân như Twitter, Facebook, Amazon và Pinterest cũng sử dụng PyCharm làm IDE Python của họ. PyCharm hỗ trợ chạy trên Windows, Linux hoặc Mac OS. Ngoài ra, nó chứa cac module va cac package giúp các lập trình viên phát triển phần mềm bang Python tiết kiệm thời gian và công sức. Hơn nữa, nó cũng có thế được tùy chỉnh theo yêu cầu của các nhà phát triển.
Các tính năng của Pycharm: - Trinh sửa code thông minh. - Hỗ trợ cho nhiều công nghệ web khác. - H6 tro cho cdc web framework Python phé biến. - H6tro cho Thư viện Khoa hoc Python.
Uu va nhuge diém cia viée sir dung PyCharm: - Uudiém: + Cai dat PyCharm rat dé dang. + PyCharm la mét IDE dé str dung. + Có rất nhiều plugin hữu ích và phím tắt hữu ích trong PyCharm. + PyCharm tich hop các tính năng cua thư viện và IDE như tự động hoàn thành vả tô màu.
+ Nó cho phép xem mã nguồn trong một cú nhấp chuột. + Tiết kiệm thời gian phát triển phần mềm + Tính năng đánh dấu lỗi trong code giúp nâng cao hơn nữa quá trình phat trién. + Cộng đồng các nhà phát triển Python vô cùng lớn và tôi có thể giải quyết các thắc mắc/ nghỉ ngờ của mình một cách đễ dàng. -_ Nhược điểm: + PyCharm không miễn phí và phiên bản Professional của nó khá đắt.
+ Tinh nang ty dién (auto-complete) sé khéng tét cho các lập trình viên newbie + Nó có thế gây ra sự cố trong khi sửa chữa các công cụ như venv.3 Tổng quan về xử lý ảnh 1.1 Xứ lý ảnh là gì ? Con người thu nhận thông tin qua các g1ác quan, trong đó thị siác đóng vai trò quan trọng nhất. Những năm trở lại đây với sự phát triển của phần cứng máy tính, xử lý ảnh và đồ họa đã phát triển một cách mạnh mẽ và có nhiều ứng dụng trong cuộc sông. Xử lý ảnh và đồ họa đóng vai trò quan trọng trone tương tác người máy. Quá trình xử lý ảnh được xem như là quá trình thao tác ảnh đầu vào nhằm cho ra kết quả mong muốn.
Kết quả đầu ra của một quá trình xử lý ảnh có thể là một ảnh “tốt hơn” hoặc một kết luận. Tiên xử > > Phan „| Hiểu3 điển = „| Nhận dang x > ảnh lý ảnh đoạn anh va m6 tá và nội suy Cơ sở tri thức Hinh 1. 1 Quá trình xử lý ảnh Ảnh có thể xem là tập hợp các điểm ảnh và mỗi điểm ảnh được xem như là đặc trưng cường độ sáng hay một dấu hiệu nảo đó tại một vị trí nào đó của đối tượng trong không gian va nó có thể xem như một hàm n biến P(cl, c2,. Do do, anh trong xử lý ảnh có thể xem như ảnh n chiều.
Sơ đồ tổng quát của một hệ thống xử lý ảnh: Anh [aa] xo ny anit KT oe “Tét hon” Hinh 1. 2 Các bước cơ bản trong một hệ thống xử lý ảnh So dé trong hinh 1.1 bao gdm các phần sau: Phan thu nhan anh (Image Acquisition) Ảnh có thể nhận qua camera màu hoặc đen trắng. Thường thì ảnh nhận qua camera là ảnh tương tự (loại camera ống chuẩn CCIR với tần số 1⁄25, mỗi ảnh 25 dòng), cũng có loại camera đã số hóa (như loại CCD-Change Coupled Device) là loại photodiot tạo cường độ sáng tại mỗi điểm ảnh.