Đồ án tốt nghiệp công nghệ thông tin tìm hiểu về thị giác máy tính và xây dựng chương trình dò tìm vị trí khuôn mặt trong ảnh video và làm mờ

Đồ án kỹ thuật nghiên cứu tốt nghiệp công nghệ thông tin tìm hiểu về thị giác máy tính và xây dựng chương trình dò tìm vị trí, thiết kế chi tiết, tính toán kỹ thuật theo tiêu

Trường đại học

Đại học Hải Phòng

Chuyên ngành

Công nghệ thông tin

Người đăng

Ẩn danh

Thể loại

Đồ án tốt nghiệp

2024

57
13
0

Phí lưu trữ

30 Point

Mục lục chi tiết

LỜI CAM ĐOAN

1. MỞ ĐẦU

1.1. TỔNG QUAN VỀ ĐỀ TÀI

1.2. Lý do chọn đề tài

1.3. Mục tiêu đề tài

1.4. Đối tượng và phạm vi nghiên cứu

1.5. Ý nghĩa của đề tài

2. GIỚI THIỆU BÀI TOÁN

2.1. Tổng quan về thị giác máy tính và nhận dạng khuôn mặt

2.1.1. Tổng quan thị giác máy tính

2.1.2. Nhận dạng khuôn mặt – face recognition

2.1.3. Cách thức hoạt động của nhân dạng khuôn mặt

2.1.4. Một số ứng dụng của nhân dạng khuôn mặt

2.2. Tổng quan về thuật toán Gaussian Blur

2.2.1. Khái niệm thuật toán Gaussian Blur

2.2.2. Các kỹ thuật trong hàm Gaussian Blur

2.2.3. Ứng dụng của Gaussian Blur trong xử lý ảnh

2.2.4. Lợi ích và giới hạn của Gaussian Blur

2.2.5. So sánh Gaussian Blur với các phương pháp làm mờ khác

3. GIẢI BÀI TOÁN NHẬN DẠNG KHUÔN MẶT VỚI THƯ VIỆN FACE RECOGNITION

3.1. Một số phương pháp phát hiện khuôn mặt

3.1.1. Phát hiện khuôn mặt với OpenCV Haar Cascade

3.1.2. Phát hiện khuôn mặt với Dlib HoG

3.1.3. Phát hiện khuôn mặt với OpenCV Deep Learning

3.1.4. Phát hiện khuôn mặt với Dlib Deep Learning

3.1.5. Phát hiện khuôn mặt với Mediapipe Deep Learning

3.2. Thư viện Face Recognition

4. CÀI ĐẶT VÀ THỬ NGHIỆM HỆ THỐNG

4.1. Ngôn ngữ lập trình Python và thư viện OpenCV

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

4.1.2. Thư viện OpenCV. Thư viện Thinkter

4.2. Cài đặt công cụ, thư viện

4.2.1. Cài đặt thư viện Face Recognition

4.2.2. Cài đặt thư viện OpenCV

4.3. Cài đặt và thử nghiệm

4.4. Giao diện chương trình

4.5. Kết quả chương trình

TÀI LIỆU THAM KHẢO

Tóm tắt

I. Đồ án tốt nghiệp CNTT

Đồ án tốt nghiệp CNTT là một công trình nghiên cứu quan trọng, đánh dấu sự hoàn thành chương trình học của sinh viên. Đồ án này tập trung vào việc áp dụng thị giác máy tính để xây dựng chương trình nhận diện và làm mờ khuôn mặt trong ảnh và video. Đây là một lĩnh vực đang phát triển mạnh, mang lại nhiều ứng dụng thực tiễn trong đời sống và công nghệ.

1.1. Mục tiêu và ý nghĩa

Mục tiêu chính của đồ án là phát triển một hệ thống tự động có khả năng phát hiện và nhận dạng khuôn mặt trong ảnh và video, đồng thời tích hợp tính năng làm mờ để bảo vệ quyền riêng tư. Đồ án không chỉ mang tính học thuật mà còn có giá trị ứng dụng cao trong các lĩnh vực như an ninh, giám sát và bảo mật dữ liệu cá nhân.

1.2. Phạm vi nghiên cứu

Phạm vi nghiên cứu bao gồm việc tối ưu hóa các thuật toán máy học và thị giác máy tính để phát hiện khuôn mặt, cũng như nghiên cứu các kỹ thuật làm mờ hiệu quả. Đồ án cũng đánh giá hiệu suất và độ chính xác của chương trình trong các tình huống thực tế.

II. Thị giác máy tính

Thị giác máy tính là một lĩnh vực trọng tâm của trí tuệ nhân tạo, tập trung vào việc giúp máy tính hiểu và xử lý hình ảnh, video. Đồ án này khai thác sức mạnh của thị giác máy tính để giải quyết bài toán nhận diện và làm mờ khuôn mặt, một ứng dụng quan trọng trong nhiều ngành công nghiệp.

2.1. Tổng quan về thị giác máy tính

Thị giác máy tính bao gồm các nhiệm vụ như phân loại hình ảnh, phát hiện đối tượng và theo dõi video. Công nghệ này sử dụng các mô hình học sâu và mạng nơ-ron tích chập (CNN) để phân tích và hiểu dữ liệu hình ảnh. Đồ án áp dụng các kỹ thuật này để phát hiện và xử lý khuôn mặt trong ảnh và video.

2.2. Ứng dụng thực tiễn

Thị giác máy tính được ứng dụng rộng rãi trong các lĩnh vực như an ninh, y tế, và giao thông. Trong đồ án này, công nghệ này được sử dụng để xây dựng chương trình nhận diện khuôn mặt và làm mờ, giúp bảo vệ quyền riêng tư và ẩn danh trong các tình huống cụ thể.

III. Chương trình nhận diện khuôn mặt

Chương trình nhận diện khuôn mặt là trọng tâm của đồ án, sử dụng các thư viện và thuật toán tiên tiến để phát hiện và xử lý khuôn mặt trong ảnh và video. Đây là một bước tiến quan trọng trong việc ứng dụng thị giác máy tính vào thực tế.

3.1. Phương pháp phát hiện khuôn mặt

Đồ án sử dụng các phương pháp như OpenCV Haar Cascade, Dlib HoG, và các mô hình học sâu để phát hiện khuôn mặt. Mỗi phương pháp có ưu nhược điểm riêng, và đồ án đánh giá hiệu quả của từng phương pháp trong các tình huống khác nhau.

3.2. Thư viện Face Recognition

Thư viện Face Recognition được sử dụng để nhận diện khuôn mặt với độ chính xác cao. Đồ án cài đặt và thử nghiệm thư viện này, đồng thời tối ưu hóa hiệu suất để đảm bảo chương trình hoạt động mượt mà trong thời gian thực.

IV. Làm mờ khuôn mặt

Làm mờ khuôn mặt là một tính năng quan trọng của đồ án, giúp bảo vệ quyền riêng tư và ẩn danh trong các tình huống cần thiết. Đồ án sử dụng thuật toán Gaussian Blur để thực hiện việc làm mờ một cách hiệu quả.

4.1. Thuật toán Gaussian Blur

Gaussian Blur là một kỹ thuật làm mờ phổ biến trong xử lý ảnh, sử dụng hàm Gaussian để giảm nhiễu và làm mờ hình ảnh. Đồ án áp dụng thuật toán này để làm mờ khuôn mặt trong ảnh và video, đảm bảo tính thẩm mỹ và hiệu quả.

4.2. Ứng dụng thực tiễn

Tính năng làm mờ khuôn mặt có thể được sử dụng trong các hệ thống giám sát, chia sẻ video trực tuyến, hoặc các tình huống cần bảo vệ danh tính. Đồ án đánh giá hiệu quả của tính năng này trong các tình huống thực tế.

V. Xây dựng chương trình CNTT

Xây dựng chương trình CNTT là quá trình phát triển và triển khai hệ thống nhận diện và làm mờ khuôn mặt. Đồ án sử dụng ngôn ngữ lập trình Python và các thư viện như OpenCV để xây dựng chương trình một cách hiệu quả.

5.1. Ngôn ngữ và công cụ

Python được chọn làm ngôn ngữ lập trình chính do tính linh hoạt và hỗ trợ mạnh mẽ từ cộng đồng. Các thư viện như OpenCV và Face Recognition được sử dụng để xử lý hình ảnh và nhận diện khuôn mặt.

5.2. Thử nghiệm và đánh giá

Chương trình được thử nghiệm trên nhiều bộ dữ liệu ảnh và video khác nhau để đánh giá độ chính xác và hiệu suất. Kết quả thử nghiệm cho thấy chương trình hoạt động hiệu quả trong các tình huống thực tế.

21/02/2025

Trích đoạn nội dung tài liệu

Mở đầu ▪ Phần 1: Giới thiệu về đề tài ▪ Phần 2: Giới thiệu bài toán ▪ Phần 3: Giải bài toán nhận dạng khuôn mặt với thư viện Face Recognition ▪ Phần 4: Cài đặt và thử nghiệm hệ thống ▪ Kết luận ▪ Tài liệu tham khảo 3 CHƯƠNG 2. GIỚI THIỆU BÀI TOÁN 2. Tổng quan về thị giác máy tính và nhận dạng khuôn mặt 2. Tổng quan thị giác máy tính Thị giác máy tính (Computer vision) là một lĩnh vực khoa học liên ngành đề cập đến cách máy tính có thể đạt được hiểu biết cấp cao từ hình ảnh hoặc video kỹ thuật số.

Từ góc độ kỹ thuật, nó tìm cách hiểu và tự động hóa các nhiệm vụ mà hệ thống thị giác của con người có thể thực hiện. Các nhiệm vụ về thị giác máy tính bao gồm các phương pháp thu thập, xử lý, phân tích và hiểu hình ảnh kỹ thuật số cũng như trích xuất dữ liệu chiều cao từ thế giới thực để tạo ra thông tin số hoặc biểu tượng, ví dụ: dưới các hình thức quyết định. Hiểu theo ngữ cảnh này có nghĩa là sự chuyển đổi các hình ảnh trực quan (đầu vào của võng mạc) thành các mô tả về thế giới có ý nghĩa đối với các quá trình suy nghĩ và có thể gợi ra hành động thích hợp. Sự hiểu biết về hình ảnh này có thể được coi là sự tách rời thông tin biểu tượng từ dữ liệu hình ảnh bằng cách sử dụng các mô hình được xây dựng với sự hỗ trợ của hình học, vật lý, thống kê và lý thuyết học tập.

Ngành khoa học về thị giác máy tính liên quan đến lý thuyết đằng sau các hệ thống nhân tạo trích xuất thông tin từ hình ảnh. Dữ liệu hình ảnh có thể ở nhiều dạng, chẳng hạn như chuỗi video, chế độ xem từ nhiều máy ảnh, dữ liệu đa chiều từ máy quét 3D hoặc thiết bị quét y tế. Ngành công nghệ về thị giác máy tính tìm cách áp dụng các lý thuyết và mô hình của nó vào việc xây dựng các hệ thống thị giác máy tính. Các lĩnh vực phụ của thị giác máy tính bao gồm tái tạo cảnh, phát hiện đối tượng, phát hiện sự kiện, theo dõi video, nhận dạng đối tượng, ước tính tư thế 3D, học tập, lập chỉ mục, ước tính chuyển động, hỗ trợ trực quan, tạo mô hình cảnh 3D và phục hồi hình ảnh.

Thị giác máy tính (Computer vision) Lịch sử của thị giác máy tính Các nhà khoa học và kỹ sư đã cố gắng phát triển các cách để máy móc có thể nhìn và hiểu dữ liệu hình ảnh trong khoảng 60 năm qua. Thí nghiệm bắt đầu vào năm 1959 khi các nhà sinh lý học thần kinh cho một con mèo xem một loạt hình ảnh, cố gắng tìm ra mối tương quan giữa phản ứng trong não của nó. Họ phát hiện ra rằng nó phản ứng đầu tiên với các cạnh hoặc đường nét cứng và về mặt khoa học, điều này có nghĩa là quá trình xử lý hình ảnh bắt đầu với các hình dạng đơn giản như các cạnh thẳng. Hệ thống máy tính quét ảnh thời kỳ trước 5 Cùng lúc đó, công nghệ quét hình ảnh máy tính đầu tiên được phát triển, cho phép máy tính số hóa và thu được hình ảnh.

Một cột mốc quan trọng khác đã đạt được vào năm 1963 khi máy tính có thể chuyển đổi hình ảnh hai chiều thành dạng ba chiều. Vào những năm 1960, AI nổi lên như một lĩnh vực nghiên cứu học thuật và nó cũng đánh dấu sự khởi đầu của nhiệm vụ AI nhằm giải quyết vấn đề thị giác của con người. Năm 1974 chứng kiến sự ra đời của công nghệ nhận dạng ký tự quang học (OCR), có thể nhận dạng văn bản được in ở bất kỳ phông chữ hoặc kiểu chữ nào. Tương tự, nhận dạng ký tự thông minh (ICR) có thể giải mã văn bản viết tay sử dụng mạng lưới thần kinh.

Kể từ đó, OCR và ICR đã tìm được đường vào xử lý tài liệu và hóa đơn, nhận dạng biển số xe, thanh toán di động, chuyển đổi máy và các ứng dụng phổ biến khác. Năm 1982, nhà thần kinh học David Marr đã chứng minh rằng tầm nhìn hoạt động theo thứ bậc và giới thiệu các thuật toán cho máy móc để phát hiện các cạnh, góc, đường cong và các hình dạng cơ bản tương tự. Đồng thời, nhà khoa học máy tính Kunihiko Fukushima đã phát triển một mạng lưới tế bào có thể nhận dạng các mẫu. Mạng này được gọi là Neocognitron, bao gồm các lớp tích chập trong mạng lưới thần kinh.

Đến năm 2000, trọng tâm nghiên cứu là nhận dạng đối tượng; và đến năm 2001, những ứng dụng nhận diện khuôn mặt theo thời gian thực đầu tiên xuất hiện. Tiêu chuẩn hóa cách gắn thẻ và chú thích các tập dữ liệu trực quan đã xuất hiện từ những năm 2000. Năm 2010, bộ dữ liệu ImageNet đã có sẵn. Nó chứa hàng triệu hình ảnh được gắn thẻ trên hàng nghìn lớp đối tượng và cung cấp nền tảng cho CNN cũng như các mô hình học sâu được sử dụng ngày nay.

Năm 2012, một nhóm từ Đại học Toronto đã đưa CNN tham gia một cuộc thi nhận dạng hình ảnh. Mô hình có tên AlexNet đã giảm đáng kể tỷ lệ lỗi khi nhận dạng hình ảnh. Sau bước đột phá này, tỷ lệ lỗi đã giảm xuống chỉ còn vài phần trăm. 6 Thị giác máy tính hoạt động như thế nào? Hình 2.

Mô phỏng hoạt động của thị giác máy tính Thị giác máy tính cần rất nhiều dữ liệu. Nó chạy đi phân tích dữ liệu nhiều lần cho đến khi phân biệt được sự khác biệt và cuối cùng nhận ra được hình ảnh. Ví dụ, để huấn luyện máy tính nhận dạng lốp ô tô, nó cần được cung cấp một lượng lớn hình ảnh lốp và các mục liên quan đến lốp để tìm hiểu sự khác biệt và nhận biết lốp, đặc biệt là lốp không có khuyết tật. Hai công nghệ thiết yếu được sử dụng để thực hiện điều này: một loại máy học được gọi là học sâu và mạng nơ-ron tích chập (CNN).

Học máy sử dụng các mô hình thuật toán cho phép máy tính tự dạy về bối cảnh của dữ liệu trực quan. Nếu đủ dữ liệu được cung cấp qua mô hình, máy tính sẽ “nhìn” vào dữ liệu và tự dạy mình cách phân biệt hình ảnh này với hình ảnh khác. Các thuật toán cho phép máy tự học thay vì ai đó lập trình để nhận dạng hình ảnh. CNN giúp mô hình học máy hoặc học sâu “nhìn” bằng cách chia hình ảnh thành các pixel được gắn thẻ hoặc nhãn.

Nó sử dụng các nhãn để thực hiện các phép tích chập (một phép toán trên hai hàm để tạo ra hàm thứ ba) và đưa ra dự đoán về những gì nó “nhìn thấy”. Mạng lưới thần kinh chạy các phép tích chập và kiểm tra tính chính xác của các dự đoán của nó trong một loạt các lần lặp cho đến khi các dự đoán bắt đầu 7 trở thành hiện thực. Sau đó nó nhận biết hoặc nhìn thấy hình ảnh theo cách tương tự như con người. Giống như con người tạo ra một hình ảnh từ xa, CNN trước tiên phân biệt các cạnh cứng và hình dạng đơn giản, sau đó điền thông tin khi chạy lặp lại các dự đoán của mình.

CNN được sử dụng để hiểu các hình ảnh đơn lẻ. Mạng thần kinh tái phát (RNN) được sử dụng theo cách tương tự cho các ứng dụng video để giúp máy tính hiểu các hình ảnh trong một loạt khung hình có liên quan với nhau như thế nào. Ứng dụng của thị giác máy tính Có rất nhiều nghiên cứu đang được thực hiện trong lĩnh vực thị giác máy tính nhưng không dừng lại ở đó. Các ứng dụng trong thế giới thực chứng minh tầm quan trọng của thị giác máy tính đối với những nỗ lực trong kinh doanh, giải trí, giao thông vận tải, chăm sóc sức khỏe và cuộc sống hàng ngày.

Ứng dụng của thị giác máy tính Động lực chính cho sự phát triển của các ứng dụng này là dòng thông tin hình ảnh tràn ngập từ điện thoại thông minh, hệ thống an ninh, camera giao thông và các thiết bị đo trực quan khác. Dữ liệu này có thể đóng một vai trò quan trọng trong hoạt động của nhiều ngành, nhưng ngày nay không được sử dụng. Thông tin tạo ra nền tảng thử nghiệm để huấn luyện các ứng dụng thị giác máy tính và là bệ phóng để chúng trở thành một phần trong hàng loạt hoạt động của con người: 8 IBM đã sử dụng thị giác máy tính để tạo ra Những khoảnh khắc của tôi cho giải golf Masters 2018. IBM Watson® đã xem hàng trăm giờ các thước phim Masters và có thể xác định khung cảnh (và âm thanh) của những cảnh quay quan trọng.

Nó tuyển chọn những khoảnh khắc quan trọng này và cung cấp chúng cho người hâm mộ dưới dạng cuộn phim nổi bật được cá nhân hóa. Google Dịch cho phép người dùng hướng camera của điện thoại thông minh vào một biển hiệu bằng ngôn ngữ khác và gần như ngay lập tức nhận được bản dịch của biển hiệu đó sang ngôn ngữ ưa thích của họ. Sự phát triển của phương tiện tự lái dựa vào thị giác máy tính để hiểu được đầu vào hình ảnh từ camera của ô tô và các cảm biến khác. Điều cần thiết là phải xác định các ô tô khác, biển báo giao thông, vạch kẻ đường, người đi bộ, xe đạp và tất cả thông tin trực quan khác gặp trên đường.

IBM đang áp dụng công nghệ thị giác máy tính với các đối tác như Verizon để đưa AI thông minh lên đỉnh cao và giúp các nhà sản xuất ô tô xác định các khiếm khuyết về chất lượng trước khi xe rời khỏi nhà máy. Ví dụ về thị giác máy tính Nhiều tổ chức không có đủ nguồn lực để tài trợ cho các phòng thí nghiệm thị giác máy tính và tạo ra các mô hình học sâu và mạng lưới thần kinh. Họ cũng có thể thiếu khả năng tính toán cần thiết để xử lý các bộ dữ liệu trực quan khổng lồ. Các công ty như IBM đang trợ giúp bằng cách cung cấp các dịch vụ phát triển phần mềm thị giác máy tính.

Các dịch vụ này cung cấp các mô hình học tập được xây dựng sẵn từ đám mây—và cũng giúp giảm bớt nhu cầu về tài nguyên máy tính. Người dùng kết nối với các dịch vụ thông qua giao diện lập trình ứng dụng (API) và sử dụng chúng để phát triển các ứng dụng thị giác máy tính. Ví dụ về quá trình xử lý của một hệ thống thị giác máy tính Hình 2.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ

Đồ án tốt nghiệp CNTT: Thị giác máy tính và xây dựng chương trình nhận diện, làm mờ khuôn mặt trong ảnh và video là một nghiên cứu chuyên sâu về ứng dụng thị giác máy tính trong việc nhận diện và xử lý khuôn mặt. Tài liệu này không chỉ cung cấp lý thuyết nền tảng mà còn hướng dẫn chi tiết cách xây dựng một chương trình thực tế, giúp người đọc hiểu rõ cách áp dụng công nghệ này vào các bài toán cụ thể. Đặc biệt, việc làm mờ khuôn mặt trong ảnh và video có ý nghĩa quan trọng trong bảo mật thông tin và quyền riêng tư.

Nếu bạn quan tâm đến các ứng dụng khác của thị giác máy tính, hãy khám phá Luận văn nghiên cứu về mạng neural convolutional áp dụng vào bài toán nhận dạng đối tượng trong lĩnh vực thị giác máy tính, nơi đi sâu vào việc sử dụng mạng neural để nhận diện đối tượng. Bên cạnh đó, Luận văn thạc sĩ kỹ thuật điều khiển và tự động hóa điều khiển bám theo và bắt vật chuyển động trong không gian 3D sử dụng kỹ thuật stereo vision và visual servoing sẽ mang đến góc nhìn mới về việc ứng dụng thị giác máy tính trong điều khiển tự động. Cuối cùng, Tiểu luận đồ án tốt nghiệp phát triển mô hình học máy phát hiện và định vị vật thể ứng dụng trong điều khiển cánh tay robot là một tài liệu hữu ích để hiểu sâu hơn về sự kết hợp giữa học máy và thị giác máy tính.

Mỗi liên kết trên là cơ hội để bạn mở rộng kiến thức và khám phá thêm các ứng dụng thú vị của thị giác máy tính trong nhiều lĩnh vực khác nhau.