1. Trang chủ
  2. » Công Nghệ Thông Tin

bài tập nhóm XÂY DỰNG CHƯƠNG TRÌNH NHẬN DẠNG GIỚI TÍNH THÔNG QUA ẢNH KHUÔN MẶT

65 101 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 Chương Trình Nhận Dạng Giới Tính Thông Qua Ảnh Khuôn Mặt
Người hướng dẫn Thầy Nguyễn Quang Vũ
Trường học Đại học Đà Nẵng
Thể loại Đồ án
Năm xuất bản 2021
Thành phố Đà Nẵng
Định dạng
Số trang 65
Dung lượng 2,48 MB

Cấu trúc

  • Chương 1 GIỚI THIỆU

    • 1.1 Tổng Quan

      • 1.1.1 Mở đầu

      • 1.1.2 Mục tiêu của đồ án

      • 1.1.3 Đối tượng nghiên cứu

      • 1.1.4 Phạm vi nghiên cứu

    • 1.2 Phương pháp – kết quả

      • 1.2.1 Phương pháp

      • 1.2.2 Kết quả

    • 1.3 Cấu Trúc đồ án

  • Chương 2 CƠ SỞ LÝ THUYẾT

    • 2.1 Tổng quan về Deep Learning và bài toán nhận diện khuôn mặt trong thị giác máy tính

      • 2.1.1 Tổng quan về Deep Learning

        • 2.1.1.1 Deep Learning là gì?

        • 2.1.1.2 Tầm quan trọng của Deep Learning

        • 2.1.1.3 Deep Learning hoạt động như thế nào ?

        • 2.1.1.4 Các thuật toán Deep Learning sử dụng

        • 2.1.1.5 Một số ứng dụng của Deep Learning

      • 2.1.2 Bài toán nhận dạng khuôn mặt trong thị giác máy tính

    • 2.2 Giới thiệu Convolutional Neural Network

      • 2.2.1 Tổng quan

      • 2.2.2 Kiến trúc CNN

    • 2.3 Tổng quan về Machine Learning

      • 2.3.1 Machine Learning là gì ?

      • 2.3.2 Một vài ứng dụng của Machine Learning

    • 2.4 Thư viện Keras

    • 2.5 Thư viện FaceNet

    • 2.6 Thư viện Sklearn

  • Chương 3 XÂY DỰNG ỨNG DỤNG

    • 3.1 Yêu cầu hệ thống

      • 3.1.1 Phần cứng

      • 3.1.2 Môi trường thực hiện

    • 3.2 Các bước thực hiện

      • 3.2.1 Chuẩn bị dữ liệu

      • 3.2.2 Cài đặt thư viện Multi Task Convolutional Neural Network để trích xuất khuôn mặt

      • 3.2.3 Cài đặt một số thư viện khác.

      • 3.2.4 Liên kết Googgle Collab và Google Drive

      • 3.2.5 Phân chia bộ train và bộ test

      • 3.2.6 Face Embedding

      • 3.2.7 Kiểm tra độ chính xác

      • 3.2.8 Viết hàm dự đoán

      • 3.2.9 Test kết quả

  • Chương 4 KẾT LUẬN

    • 4.1 Kết quả.

    • 4.2 Ưu điểm - nhược điểm

    • 4.3 Hướng phát triển.

  • TÀI LIỆU THAM KHẢO

Nội dung

XÂY DỰNG CHƯƠNG TRÌNH NHẬN DẠNG GIỚI TÍNH THÔNG QUA ẢNH KHUÔN MẶT XÂY DỰNG CHƯƠNG TRÌNH NHẬN DẠNG GIỚI TÍNH THÔNG QUA ẢNH KHUÔN MẶT XÂY DỰNG CHƯƠNG TRÌNH NHẬN DẠNG GIỚI TÍNH THÔNG QUA ẢNH KHUÔN MẶT

GIỚI THIỆU

Tổng Quan

Hiện nay, vấn đề an ninh bảo mật đang trở thành yêu cầu cấp thiết trên toàn cầu, đặc biệt là trong lĩnh vực nhận dạng con người Nhận dạng khuôn mặt, một phương pháp phổ biến để phân biệt cá nhân, đang thu hút sự chú ý lớn nhờ vào độ tin cậy ngày càng cao Việc thu thập và xử lý thông tin qua hình ảnh giúp nhận biết đối tượng mà không cần can thiệp nhiều, tạo điều kiện thuận lợi cho nghiên cứu Sự phát triển của khoa học máy tính đã thúc đẩy khả năng nhận dạng khuôn mặt từ ảnh số, với các hệ thống nhận dạng offline đạt độ tin cậy cao Tuy nhiên, các hệ thống nhận dạng online vẫn còn nhiều hạn chế cần khắc phục.

Trong đồ án này, chúng em tập trung vào việc giải quyết bài toán nhận dạng offline, trong đó dữ liệu được thu thập và chuyển về trung tâm để phân tích Phần đầu của nghiên cứu sẽ tập trung vào nhận dạng thông thường, trong khi phần hai sẽ đi sâu vào nhận dạng giới tính.

1.1.2 Mục tiêu của đồ án

Sử dụng thư viện Multi Task Convolutional Neural Network để trích xuất khuôn mặt từ ảnh đầu vào, sau đó áp dụng mô hình đã được huấn luyện trước FaceNet để giảm chiều dữ liệu các vector khuôn mặt xuống còn 128 chiều Cuối cùng, các thuật toán Machine Learning được sử dụng để huấn luyện và lựa chọn mô hình tốt nhất.

 Input: Ảnh chụp mặt người.

 Output: Giới tính của người đó.

- Tìm hiểu về Machine Learning và Deep Learning

- Các thuật toán nhận diện

- Nghiên cứu thư viện Multi Taks Convolutional Neural Network và FaceNet

- Xây dựng chương trình nhận dạng giới tính con người sử dụng Machine Learning.

- Ứng dụng đề tài phục vụ cho việc nghiên cứu về nhiều lĩnh vực.

Phương pháp – kết quả

- Phương pháp nghiên cứu lý thuyết:

+ Tìm hiểu tổng quan về Machine Learning và bài toán nhận diện khuôn mặt trong thị giác máy tính.

- + Tìm hiểu thư viện Multi Taks Convolutional Neural Network và FaceNet.

+ Tìm hiểu thư viện Keras và một số thư viện khác.

- Phương pháp nghiên cứu thực nghiệm:

+ Tiến hành phân tích và cài đặt trên Python

+ Tiến hành training data cho máy học.

- Tạo ra chương trình nhận dạng giới tính thông qua ảnh có sẵn thực trên hệ điều hành Window.

Cấu Trúc đồ án

Nội dung chính của chuyên đề được chia thành 4 phần như sau:

Chương 1: Giới thiệu: Chương này trình bày một cách tổng quan về mục tiêu, đối tượng và phạm vi nghiên cứu, các hướng tiếp cận để giải quyết bài toán nhận dạng và kết quả dự tính.

Chương 2: Cơ sở lý thuyết: Tìm hiểu phương pháp máy học và tìm hiểu các thư viện, ứng dụng Machine Learning và bài toán nhận diện khuôn mặt.

Chương 3: Xây dựng ứng dụng: Trên cơ sở thư viện mã nguồn mở xây dựng chương trình nhận diện giới tính con người qua ảnh có sẵn, cùng với những phân tích chương trình.

Chương 4: Kết luận và hướng phát triển: Đánh giá kết quả và hướng phát triển nghiên cứu.

CƠ SỞ LÝ THUYẾT

Tổng quan về Deep Learning và bài toán nhận diện khuôn mặt trong thị giác máy tính

2.1.1 Tổng quan về Deep Learning

Deep Learning là một nhánh của Trí tuệ nhân tạo, sử dụng kỹ thuật học máy để giúp máy tính và thiết bị hoạt động một cách logic Tên gọi "Deep Learning" xuất phát từ việc nó khám phá nhiều lớp trong mạng, bao gồm cả lớp ẩn, cho phép trích xuất thông tin phức tạp hơn khi học sâu hơn.

Phương pháp Deep Learning sử dụng các chương trình phức tạp để mô phỏng trí thông minh của con người, giúp máy móc nhận diện và phân loại các họa tiết khác nhau Nhận dạng mẫu là yếu tố cốt lõi của Deep Learning, cho phép máy tính hoạt động mà không cần lập trình mở rộng nhờ vào Machine Learning Thông qua Deep Learning, máy móc có khả năng xử lý các tệp hình ảnh, văn bản và âm thanh để thực hiện các nhiệm vụ tương tự như con người.

Hình 1.Deep Learning là gì ? 2.1.1.2 Tầm quan trọng của Deep Learning

Deep Learning đang trở nên phổ biến hơn bao giờ hết, góp phần làm cho cuộc sống hàng ngày của chúng ta tiện lợi hơn Xu hướng này dự kiến sẽ tiếp tục phát triển trong tương lai, từ công nghệ hỗ trợ đỗ xe tự động đến nhận diện khuôn mặt tại sân bay Deep Learning đang thúc đẩy mạnh mẽ quá trình tự động hóa trong thế giới hiện đại.

Deep learning ngày càng trở nên quan trọng do sự gia tăng nhanh chóng của dữ liệu trong thế giới hiện nay, điều này tạo ra nhu cầu về cấu trúc dữ liệu quy mô lớn Công nghệ này tận dụng khối lượng dữ liệu ngày càng lớn và tính sẵn có của chúng để cải thiện độ chính xác của kết quả thông qua các mô hình học tập lặp.

Phân tích lặp đi lặp lại các bộ dữ liệu lớn giúp loại bỏ lỗi và sự khác biệt trong quá trình tìm kiếm, từ đó dẫn đến kết luận đáng tin cậy Deep learning sẽ tiếp tục ảnh hưởng mạnh mẽ đến cả lĩnh vực kinh doanh và cá nhân, đồng thời tạo ra nhiều cơ hội việc làm trong tương lai.

2.1.1.3 Deep Learning hoạt động như thế nào ?

Deep learning sử dụng các phương pháp lặp để dạy máy móc mô phỏng trí thông minh con người thông qua mạng lưới thần kinh nhân tạo Các cấp độ ban đầu giúp máy học thông tin đơn giản, và khi nâng cao, thông tin sẽ phát triển phức tạp hơn Mỗi cấp độ mới sẽ thu thập thêm thông tin và kết hợp với kiến thức đã có từ các cấp độ trước Cuối cùng, hệ thống sẽ tạo ra một thông tin đầu ra tổng hợp, có ý nghĩa cho tư duy logic phức tạp.

Hình 2.Cách thức hoạt động của Deep Learning

2.1.1.4 Các thuật toán Deep Learning sử dụng

Hình 3.Các thuật ngữ Deep Learning

2.1.1.5 Một số ứng dụng của Deep Learning

Trợ lý ảo như Amazon Echo, Google Assistant, Alexa và Siri đang sử dụng công nghệ học sâu để tạo ra trải nghiệm người dùng cá nhân hóa Chúng có khả năng nhận diện giọng nói và ngữ điệu của bạn, mang đến trải nghiệm gần gũi hơn với con người thông qua các mạng nơ-ron sâu Những trợ lý này không chỉ giúp bạn mua sắm, điều hướng và ghi chú mà còn có thể chuyển đổi thông tin thành văn bản và đặt lịch hẹn cho các dịch vụ như thẩm mỹ viện.

Nhận dạng khuôn mặt trên iPhone sử dụng công nghệ Deep Learning để xác định các điểm dữ liệu từ khuôn mặt người dùng, giúp mở khóa điện thoại và nhận diện trong hình ảnh Công nghệ này bảo vệ điện thoại khỏi việc mở khóa trái phép và mang lại trải nghiệm mượt mà ngay cả khi người dùng thay đổi kiểu tóc, giảm cân hoặc trong điều kiện ánh sáng kém Mỗi lần mở khóa, Deep Learning phân tích hàng ngàn điểm dữ liệu để tạo bản đồ độ sâu khuôn mặt, từ đó xác định chính xác danh tính người dùng.

Cá nhân hóa đang trở thành xu hướng quan trọng trong lĩnh vực Thương mại và Giải trí, với các ông lớn như Amazon và Netflix đầu tư vào công nghệ Deep Learning để mang đến trải nghiệm mua sắm và giải trí được cá nhân hóa cho người dùng Hệ thống gợi ý các bộ phim dựa trên "mẫu" của người dùng được xây dựng từ học tập sâu, giúp doanh nghiệp cung cấp các tùy chọn phù hợp với sở thích, lịch sử truy cập gần đây, và mối quan hệ với các thương hiệu, diễn viên, nghệ sĩ.

Xử lý ngôn ngữ tự nhiên (NLP) là một trong những công nghệ quan trọng nhất trong lĩnh vực trí tuệ nhân tạo, giúp nâng cao khả năng sử dụng và sự trưởng thành của AI Các tổ chức đang áp dụng học sâu để cải thiện tính phức tạp trong các ứng dụng NLP Những ứng dụng phổ biến như tóm tắt tài liệu, trả lời câu hỏi, mô hình hóa ngôn ngữ, phân loại văn bản và phân tích tình cảm đang phát triển mạnh mẽ Với sự tiến bộ này, nhiều công việc phụ thuộc vào chuyên môn ngôn ngữ và ngôn ngữ viết sẽ trở nên dư thừa trong tương lai gần.

Chăm sóc sức khỏe đã trải qua sự phát triển mạnh mẽ với sự xuất hiện của trợ lý ảo và các công cụ theo dõi sức khỏe, giúp ghi lại dữ liệu sinh lý và tâm lý của bệnh nhân Công nghệ này cho phép phát hiện sớm bệnh tật, ứng dụng hình ảnh định lượng và phẫu thuật robot, tạo ra những bước tiến lớn trong y học Trong khi đó, lĩnh vực ô tô tự lái, với sự dẫn dắt của Uber AI Labs, đang nỗ lực hiện thực hóa những chiếc xe tự lái thông qua công nghệ Deep Learning Các thử nghiệm cho thấy xe tự lái ngày càng học hỏi tốt hơn từ hàng triệu tình huống, giúp nâng cao độ an toàn và sự thoải mái cho người dùng Dữ liệu từ cảm biến, GPS và bản đồ địa lý được tích hợp để tạo ra các mô hình chính xác cho việc điều hướng, xử lý giao thông và nhận diện người đi bộ.

Học sâu đang nhanh chóng phát triển khả năng tạo ra văn bản gốc, bao gồm cả thơ ca, nhờ vào việc sử dụng các bộ dữ liệu lớn từ internet và các tác phẩm văn học như của Shakespeare Các mô hình học sâu này học hỏi và mô phỏng sự sáng tạo của con người, từ chính tả, dấu câu, ngữ pháp đến văn phong và giọng điệu Sự tiến bộ này đã cho ra đời nhiều chú thích và tiêu đề trên các nền tảng khác nhau, chứng minh cho tiềm năng của công nghệ trong tương lai.

Nhận dạng hình ảnh sử dụng mạng thần kinh chuyển đổi cho phép máy tính xử lý và phân tích hình ảnh kỹ thuật số, bao gồm nhận dạng khuôn mặt, đối tượng và chữ viết tay Công nghệ này dựa trên trí tuệ nhân tạo và học máy, giúp máy tính nhận diện nội dung trong hình ảnh Ngoài ra, nó còn hỗ trợ các ứng dụng như tô màu hình ảnh đen trắng và thêm âm thanh vào phim câm, mở ra nhiều cơ hội cho các nhà khoa học dữ liệu và chuyên gia trong lĩnh vực này.

Hình 4.Ứng dụng của Deep Learning 2.1.2 Bài toán nhận dạng khuôn mặt trong thị giác máy tính

Nhận dạng khuôn mặt là một phương pháp sinh trắc học nhằm xác định hoặc xác minh danh tính cá nhân thông qua việc so sánh hình ảnh chụp trực tiếp hoặc hình ảnh kỹ thuật số với dữ liệu đã lưu trữ Phương pháp này thuộc lĩnh vực nghiên cứu của sinh trắc học, tương tự như nhận dạng vân tay và nhận dạng mống mắt.

Nhận dạng khuôn mặt tương tự như nhận dạng vân tay và mống mắt, nhưng khác biệt chủ yếu nằm ở bước trích chọn đặc trưng Trong khi nhận dạng vân tay và mống mắt đã phát triển mạnh mẽ và ứng dụng rộng rãi, nhận dạng khuôn mặt vẫn đối mặt với nhiều thách thức và là lĩnh vực nghiên cứu hấp dẫn Đặc biệt, nhận dạng khuôn mặt có nguồn dữ liệu phong phú hơn, vì hình ảnh khuôn mặt có thể được tìm thấy trong nhiều bức ảnh và video trên mạng, đồng thời yêu cầu ít sự tương tác có kiểm soát hơn so với nhận dạng vân tay và mống mắt.

Giới thiệu Convolutional Neural Network

Mạng Nơron Chập (CNN) bao gồm nhiều lớp chập và lớp kết nối, được thiết kế để khai thác cấu trúc 2 chiều của hình ảnh đầu vào Kiến trúc này sử dụng kết nối cục bộ và trọng số ràng buộc, giúp tạo ra các đặc trưng không thay đổi Một ưu điểm nổi bật của CNN là dễ dàng huấn luyện hơn và có ít thông số hơn so với các mạng kết nối đầy đủ với cùng số đơn vị ẩn.

Mạng nơ-ron tích chập (CNN) bao gồm nhiều lớp chập và lớp lấy mẫu con tùy chọn, tiếp theo là các lớp kết nối Đầu vào cho lớp chập là hình ảnh có kích thước m x m x r, với m là chiều cao và chiều rộng của hình ảnh, và r là số kênh (chẳng hạn như 3 cho ảnh RGB) Lớp chập sử dụng k bộ lọc có kích thước n < n < 4, trong đó n nhỏ hơn kích thước hình ảnh và q có thể bằng hoặc nhỏ hơn số kênh r Các bộ lọc này tạo ra k bản đồ đặc trưng có kích thước m – n + 1 thông qua quá trình xoắn với hình ảnh Mỗi bản đồ được lấy mẫu con bằng cách áp dụng hợp nhất trung bình hoặc lớn nhất trên các khu vực lân cận 2 x 2, với phạm vi p từ 2 đến 5 tùy thuộc vào kích thước hình ảnh Trước hoặc sau khi lấy mẫu con, một bias bổ sung và hàm kích hoạt phi tuyến được áp dụng cho mỗi bản đồ đặc trưng.

Hình 6.Kiến trúc CNN trong nhận diện hành động con người

Trong quá trình xử lý hình ảnh, các bộ lọc huấn luyện khác nhau và các bias bổ sung được áp dụng để chập hình ảnh đầu vào, tạo ra nhiều bản đồ đặc trưng trong lớp C1 Mỗi bản đồ đặc trưng trong lớp S2 được hình thành thông qua thao tác tổng hợp các bản đồ tương ứng từ lớp C1 Các bước chập và tổng hợp cực đại trong lớp C3 và S4 tương tự như trong các lớp trước đó Cuối cùng, các đặc trưng thu được sau khi tổng hợp cực đại trong lớp S4 được mã hóa thành một vector một chiều để phục vụ cho bước nhận diện.

Tổng quan về Machine Learning

Machine Learning là thuật ngữ chỉ việc dạy máy tính cải thiện hiệu suất trong các nhiệm vụ thông qua việc học hỏi từ kinh nghiệm Cụ thể, nó liên quan đến các hệ thống mà hiệu suất của máy tính được nâng cao sau nhiều lần thực hiện nhiệm vụ Khả năng cốt lõi của machine learning là sử dụng thuật toán để phân tích dữ liệu, học từ đó và đưa ra quyết định hoặc dự đoán liên quan Thay vì lập trình chi tiết cho từng hành động, máy tính có thể tự động điều chỉnh và cải thiện dựa trên thông tin đã học.

“huấn luyện” bằng cách sử dụng lượng dữ liệu và các thuật toán để học cách thực hiện nhiệm vụ.

Có 2 loại Máy học chính bao gồm học có giám sát (supervised learning) và học không giám sát (unsupervised learning).

Học có giám sát là quá trình mà thuật toán xây dựng một hàm ánh xạ dữ liệu để đạt được kết quả mong muốn Một ví dụ điển hình của học có giám sát là bài toán phân loại, trong đó chương trình cần học cách xấp xỉ một hàm ánh xạ từ một vector tới các lớp khác nhau bằng cách phân tích một tập mẫu dữ liệu, từ đó xác định kết quả của hàm.

- Học không giám sát - mô hình hóa một tập dữ liệu, không có sẵn các ví dụ đã được gắn nhãn.

2.3.2 Một vài ứng dụng của Machine Learning

Google Maps hiện là ứng dụng phổ biến nhất trong việc chỉ đường khi tham gia giao thông, đặc biệt khi kết hợp với các dịch vụ di chuyển như Grab và Be Ứng dụng này không chỉ cung cấp thông tin về quãng đường tối ưu và thời gian di chuyển nhanh nhất, mà còn phân tích dữ liệu lịch sử và thông tin từ người dùng như vị trí, tốc độ trung bình và tuyến đường Qua việc thu thập và tổng hợp những dữ liệu này, Google sử dụng các thuật toán Machine Learning phức tạp để dự đoán lưu lượng giao thông trong tương lai, từ đó điều chỉnh tuyến đường một cách hiệu quả nhất cho người dùng.

- Mạng xã hội Facebook: Một trong những ứng dụng phổ biến nhất của Machine

Facebook sử dụng công nghệ nhận diện khuôn mặt để tự động gắn thẻ bạn bè trên nền tảng của mình Tính năng này dựa trên DeepFace, cho phép Facebook xác định và so sánh khuôn mặt trong hình ảnh với cơ sở dữ liệu của người dùng, từ đó đề xuất việc gắn thẻ một cách chính xác.

Trợ lý cá nhân ảo giúp người dùng tìm kiếm thông tin hữu ích thông qua các yêu cầu bằng văn bản hoặc giọng nói Ứng dụng của Machine Learning trong lĩnh vực này đóng vai trò quan trọng trong việc cải thiện khả năng tương tác và độ chính xác của các trợ lý ảo.

 Chuyển đổi lời nói thành văn bản

 Xử lý ngôn ngữ tự nhiên

Chuyển đổi văn bản thành giọng nói giúp bạn dễ dàng truy cập thông tin chỉ bằng cách đặt câu hỏi đơn giản như "Lịch trình của tôi vào ngày mai là gì?" hoặc "Có chuyến bay nào sắp tới cho chuyến công tác của tôi?" Trợ lý cá nhân của bạn sẽ tìm kiếm thông tin hoặc nhớ lại các truy vấn liên quan để cung cấp câu trả lời chính xác và nhanh chóng.

Phát hiện gian lận là một tính năng quan trọng trong Machine Learning, giúp nhận diện các giao dịch đáng ngờ của khách hàng Mô hình máy học sẽ phân tích hồ sơ giao dịch một cách kỹ lưỡng để tìm kiếm các mẫu bất thường Trong lĩnh vực này, phát hiện gian lận thường được xem như một hình thức phân loại hoạt động.

Thư viện Keras

Keras là một thư viện nơ-ron mã nguồn mở được viết bằng ngôn ngữ lập trình

Python Nó có khả năng chạy trên đầu trang của Tensorflow, Microsoft Cognitive Toolkit,

R, Theano hoặc StripeML Được thiết kế để cho phép thử nghiệm nhanh với các mạng thần kinh sâu, nó tập trung vào việc thân thiện với người dùng, mô-đun và mở rộng.

Keras là một thư viện 'high-level' cho phép người dùng dễ dàng xây dựng và triển khai các mô hình học sâu, sử dụng các backend như TensorFlow, CNTK, hoặc Theano (mặc dù Theano sẽ không còn được duy trì) Với cú pháp đơn giản hơn nhiều so với TensorFlow, Keras giúp người dùng tập trung vào việc phát triển các mô hình thay vì phải lo lắng về các chi tiết kỹ thuật phức tạp Do đó, tôi chọn Keras kết hợp với TensorFlow làm backend cho bài viết này.

Một số tính năng của Keras:

- Keras ưu tiên trải nghiệm của người lập trình

- Keras đã được sử dụng rộng rãi trong doanh nghiệp và cộng đồng nghiên cứu

- Keras giúp dễ dàng biến các thiết kế thành sản phẩm

- Keras hỗ trợ huấn luyện trên nhiều GPU phân tán

- Keras hỗ trợ đa backend engines và không giới hạn bạn vào một hệ sinh thái.

Thư viện FaceNet

FaceNet là một mạng lưới thần kinh sâu do các nhà nghiên cứu của Google phát triển vào năm 2015, chuyên trích xuất các đặc trưng từ hình ảnh khuôn mặt của con người.

Hình 7.FaceNet lấy hình ảnh khuôn mặt làm đầu vào và xuất ra vector embedding

FaceNet sử dụng hình ảnh khuôn mặt làm đầu vào để tạo ra một vector 128 chiều, đại diện cho các đặc điểm quan trọng nhất của khuôn mặt Trong lĩnh vực học máy, vector này được gọi là nhúng (embeddings) và chứa tất cả thông tin quan trọng từ hình ảnh Quá trình này cho phép FaceNet nén một khuôn mặt thành một vector gồm 128 số, giúp định danh khuôn mặt một cách hiệu quả với nhúng tương tự.

Facenet là một loại mạng siêu đối xứng (siam network) được thiết kế để biểu diễn hình ảnh trong không gian Euclide n chiều, thường là 128 chiều Mục tiêu của Facenet là giảm thiểu khoảng cách giữa các vector embedding, từ đó tăng cường mức độ tương đồng giữa chúng.

Hầu hết các thuật toán nhận diện khuôn mặt trước Facenet đều sử dụng một vector nhúng (embedding) để biểu diễn khuôn mặt, thông qua một layer bottleneck nhằm giảm chiều dữ liệu.

Các thuật toán embedding thường gặp hạn chế là số chiều embedding lớn, thường từ 1000 trở lên, điều này ảnh hưởng đến tốc độ xử lý Để cải thiện hiệu suất tính toán, chúng ta thường áp dụng thuật toán PCA nhằm giảm chiều dữ liệu.

Hàm loss function chỉ đo lường khoảng cách giữa hai bức ảnh, do đó trong quá trình huấn luyện, mô hình chỉ có thể học được một trong hai khả năng: sự giống nhau nếu chúng thuộc cùng một lớp, hoặc sự khác nhau nếu chúng thuộc các lớp khác nhau Điều này dẫn đến việc không thể học đồng thời cả hai khía cạnh này trong cùng một lượt huấn luyện.

Facenet đã giải quyết cả 2 vấn đề trên bằng các hiệu chỉnh nhỏ nhưng mang lại hiệu quả lớn:

Mạng cơ sở sử dụng mạng nơ-ron tích chập (convolutional neural network) để giảm chiều dữ liệu xuống còn 128 chiều, giúp tăng tốc quá trình suy diễn và dự báo mà vẫn đảm bảo độ chính xác cao.

Hàm triplet loss được sử dụng làm hàm mất mát, giúp học hiệu quả sự tương đồng giữa hai bức ảnh trong cùng một nhóm và phân biệt các bức ảnh thuộc nhóm khác Phương pháp này cho thấy hiệu quả vượt trội so với các phương pháp trước đây.

Thư viện Sklearn

Scikit-learn (Sklearn) is a powerful library for machine learning algorithms written in Python It offers a comprehensive set of tools for tackling various machine learning and statistical modeling tasks, including classification, regression, clustering, and dimensionality reduction.

Thư viện này kết hợp nhiều thuật toán hiện đại và cổ điển, giúp bạn dễ dàng học hỏi và phát triển các giải pháp hữu ích cho bài toán của mình.

Thư viện Scikit-learn, được cấp phép bản quyền chuẩn FreeBSD, tương thích với nhiều nền tảng Linux và thường được sử dụng như tài liệu học tập Để cài đặt Scikit-learn, trước tiên bạn cần cài đặt thư viện SciPy (Scientific Python).

- Numpy: Gói thư viện xử lý dãy số và ma trận nhiều chiều

- SciPy: Gói các hàm tính toán logic khoa học

- Matplotlib: Biểu diễn dữ liệu dưới dạng đồ thị 2 chiều, 3 chiều

- IPython: Notebook dùng để tương tác trực quan với Python

- SymPy: Gói thư viện các kí tự toán học

- Pandas: Xử lý, phân tích dữ liệu dưới dạng bảng

Thư viện tập trung vào việc mô hình hóa dữ liệu Nó không tập trung vào việc truyền tải dữ liệu, biến đổi hay tổng hợp dữ liệu.

Sau đây là một số nhóm thuật toán được xây dựng bởi thư viện scikit-learn:

- Clustering: Nhóm thuật toán Phân cụm dữ liệu không gán nhãn Ví dụ thuật toán

Kiểm thử chéo là phương pháp đánh giá độ hiệu quả của thuật toán học giám sát bằng cách sử dụng dữ liệu kiểm thử trong quá trình huấn luyện mô hình Phương pháp này giúp xác định khả năng tổng quát của mô hình, đảm bảo rằng nó hoạt động tốt trên dữ liệu chưa thấy.

Datasets là tập hợp các bộ dữ liệu được tích hợp sẵn trong thư viện, bao gồm nhiều bộ đã được chuẩn hóa, như iris và digit, giúp nâng cao hiệu suất trong quá trình huấn luyện.

Dimensionality reduction aims to reduce the number of important attributes in a dataset through techniques such as data representation, feature selection, and aggregation One common method used for this purpose is Principal Component Analysis (PCA).

Phương pháp tập hợp, hay còn gọi là Ensemble methods, sử dụng nhiều thuật toán học máy để nâng cao hiệu suất dự đoán, vượt trội hơn so với bất kỳ thuật toán học đơn lẻ nào.

- Feature extraction: Trích xuất đặc trưng Mục đích là để định nghĩa các thuộc tình với dữ liệu hình ảnh và dữ liệu ngôn ngữ.

- Feature selection: Trích chọn đặc trưng Lựa chọn các đặc trưng có ý nghĩa trong việc huấn luyện mô hình học giám sát.

- Parameter Tuning: Tinh chỉnh tham số Các thuật toán phục vụ việc lựa chọn tham số phù hợp để tối ưu hóa mô hình.

- Manifold Learning: Các thuật toán học tổng hợp và Phân tích dữ liệu đa chiều phức tạp.

Supervised learning models encompass a wide range of machine learning algorithms, including linear models, discriminant analysis, naive Bayes, lazy methods, neural networks, support vector machines, and decision trees These techniques are essential for tasks where the goal is to predict outcomes based on labeled training data.

XÂY DỰNG ỨNG DỤNG

Yêu cầu hệ thống

- Thư viện Multi Task Convolutional Neural Network và FaceNet

Các bước thực hiện

Dữ liệu gồm 2200 bức ảnh từ 2 bộ dữ liệu là CelebA và UTK Faces gồm 919 nam và 1281 nữ

Bộ dữ liệu Celeb chủ yếu chứa hình ảnh khuôn mặt của người nổi tiếng, do đó, mô hình phát triển từ dữ liệu này có độ chính xác chưa cao khi nhận diện khuôn mặt của người già và trẻ em Để cải thiện độ chính xác, cần bổ sung thêm 200 ảnh từ bộ dữ liệu UTK Faces.

Phân chia bộ dữ liệu: Trainingset: 80% và Testset: 20%

3.2.2 Cài đặt thư viện Multi Task Convolutional Neural Network để trích xuất khuôn mặt

3.2.3 Cài đặt một số thư viện khác

Để lưu trữ các mảng đã chuyển đổi từ ảnh khuôn mặt, việc sử dụng deep learning trong quá trình trích xuất khuôn mặt và vector embedding có thể tốn nhiều thời gian Do đó, việc lưu lại các mảng này giúp tiết kiệm thời gian cho các lần sử dụng sau.

Asarray: chuyển ảnh về pixels

Expand_dims: mở rộng chiều cho tương ứng đầu vào của model facenet.

3.2.4 Liên kết Googgle Collab và Google Drive

Lấy toàn bộ dữ liệu huấn luyện, dữ liệu nén

3.2.5 Phân chia bộ train và bộ test

Phân chia bộ train và bộ test để trích xuất khuôn mặt bằng train_test_split do sklearn hỗ trợ theo tỉ lệ train 80% và test 20%

Chuyển đổi tử ảnh sang vector số thực

3.2.7 Kiểm tra độ chính xác

Sử dụng hàm cross_val_score do sklearn hỗ trợ để đánh giá

Dưới đây là kết một vài quả dự đoán chính xác của model.

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

Ngày đăng: 20/04/2022, 21:57

HÌNH ẢNH LIÊN QUAN

Hình 1.Deep Learning là gì? 2.1.1.2 Tầm quan trọng của Deep Learning - bài tập nhóm XÂY DỰNG CHƯƠNG TRÌNH NHẬN DẠNG GIỚI TÍNH THÔNG QUA ẢNH KHUÔN MẶT
Hình 1. Deep Learning là gì? 2.1.1.2 Tầm quan trọng của Deep Learning (Trang 10)
Hình 2.Cách thức hoạt động của Deep Learning - bài tập nhóm XÂY DỰNG CHƯƠNG TRÌNH NHẬN DẠNG GIỚI TÍNH THÔNG QUA ẢNH KHUÔN MẶT
Hình 2. Cách thức hoạt động của Deep Learning (Trang 11)
Hình 3.Các thuật ngữ Deep Learning 2.1.1.5 Một số ứng dụng của Deep Learning - bài tập nhóm XÂY DỰNG CHƯƠNG TRÌNH NHẬN DẠNG GIỚI TÍNH THÔNG QUA ẢNH KHUÔN MẶT
Hình 3. Các thuật ngữ Deep Learning 2.1.1.5 Một số ứng dụng của Deep Learning (Trang 13)
Hình 4.Ứng dụng của Deep Learning 2.1.2 Bài toán nhận dạng khuôn mặt trong thị giác máy tính - bài tập nhóm XÂY DỰNG CHƯƠNG TRÌNH NHẬN DẠNG GIỚI TÍNH THÔNG QUA ẢNH KHUÔN MẶT
Hình 4. Ứng dụng của Deep Learning 2.1.2 Bài toán nhận dạng khuôn mặt trong thị giác máy tính (Trang 16)
Hình 5.Hệ thống nhận diện khuôn mặt - bài tập nhóm XÂY DỰNG CHƯƠNG TRÌNH NHẬN DẠNG GIỚI TÍNH THÔNG QUA ẢNH KHUÔN MẶT
Hình 5. Hệ thống nhận diện khuôn mặt (Trang 17)
6.5. Lập biểu thức chọn cho các trường dùng để nhóm khi tính tổng - bài tập nhóm XÂY DỰNG CHƯƠNG TRÌNH NHẬN DẠNG GIỚI TÍNH THÔNG QUA ẢNH KHUÔN MẶT
6.5. Lập biểu thức chọn cho các trường dùng để nhóm khi tính tổng (Trang 17)
6.6. Lập biểu thức chọn để giới hạn những bản ghi. - bài tập nhóm XÂY DỰNG CHƯƠNG TRÌNH NHẬN DẠNG GIỚI TÍNH THÔNG QUA ẢNH KHUÔN MẶT
6.6. Lập biểu thức chọn để giới hạn những bản ghi (Trang 18)
Hình 6.Kiến trúc CNN trong nhận diện hành động con người - bài tập nhóm XÂY DỰNG CHƯƠNG TRÌNH NHẬN DẠNG GIỚI TÍNH THÔNG QUA ẢNH KHUÔN MẶT
Hình 6. Kiến trúc CNN trong nhận diện hành động con người (Trang 19)
Hình 7.FaceNet lấy hình ảnh khuôn mặt làm đầu vào và xuất ra vector embedding - bài tập nhóm XÂY DỰNG CHƯƠNG TRÌNH NHẬN DẠNG GIỚI TÍNH THÔNG QUA ẢNH KHUÔN MẶT
Hình 7. FaceNet lấy hình ảnh khuôn mặt làm đầu vào và xuất ra vector embedding (Trang 22)
Hình 8.Kết quả chương trình - bài tập nhóm XÂY DỰNG CHƯƠNG TRÌNH NHẬN DẠNG GIỚI TÍNH THÔNG QUA ẢNH KHUÔN MẶT
Hình 8. Kết quả chương trình (Trang 31)
BÁO CÁO BÀI TẬP LỚN MÔN HỆ THỐNG SẢN - bài tập nhóm XÂY DỰNG CHƯƠNG TRÌNH NHẬN DẠNG GIỚI TÍNH THÔNG QUA ẢNH KHUÔN MẶT
BÁO CÁO BÀI TẬP LỚN MÔN HỆ THỐNG SẢN (Trang 39)
a) Lịch sử hình thành của Acecook 7 - bài tập nhóm XÂY DỰNG CHƯƠNG TRÌNH NHẬN DẠNG GIỚI TÍNH THÔNG QUA ẢNH KHUÔN MẶT
a Lịch sử hình thành của Acecook 7 (Trang 39)
a) Lịch sử hình thành của Acecook - bài tập nhóm XÂY DỰNG CHƯƠNG TRÌNH NHẬN DẠNG GIỚI TÍNH THÔNG QUA ẢNH KHUÔN MẶT
a Lịch sử hình thành của Acecook (Trang 45)
- Mục đích: Tạo hình dáng cho sợi mì. Thực hiện các công đoạn sau hiệu quả hơn. - Yêu cầu: Tạo sợi đều, tương đương với nhau. - bài tập nhóm XÂY DỰNG CHƯƠNG TRÌNH NHẬN DẠNG GIỚI TÍNH THÔNG QUA ẢNH KHUÔN MẶT
c đích: Tạo hình dáng cho sợi mì. Thực hiện các công đoạn sau hiệu quả hơn. - Yêu cầu: Tạo sợi đều, tương đương với nhau (Trang 48)
+ Khối lượng đúng chủng loại mì theo bảng thành phần gia vị mì. - bài tập nhóm XÂY DỰNG CHƯƠNG TRÌNH NHẬN DẠNG GIỚI TÍNH THÔNG QUA ẢNH KHUÔN MẶT
h ối lượng đúng chủng loại mì theo bảng thành phần gia vị mì (Trang 51)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

w