1. Trang chủ
  2. » Giáo Dục - Đào Tạo

BÁO cáo đồ án cơ sở 4 đề tài xây DỰNG CHƯƠNG TRÌNH NHẬN DẠNG GIỚI TÍNH THÔNG QUA ẢNH KHUÔN mặt

32 25 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
Tác giả Lê Quốc Dũng, Đặng Ngọc Châu
Người hướng dẫn ThS. Nguyễn Quang Vũ
Trường học Đại học Đà Nẵng
Chuyên ngành Công nghệ thông tin
Thể loại báo cáo đồ án
Năm xuất bản 2021
Thành phố Đà Nẵng
Định dạng
Số trang 32
Dung lượng 900,48 KB

Cấu trúc

  • Chương 1 GIỚI THIỆU (6)
    • 1.1 Tổng Quan (6)
      • 1.1.1 Mở đầu (6)
      • 1.1.2 Mục tiêu của chuyên đề (6)
      • 1.1.3 Đối tượng nghiên cứu (7)
      • 1.1.4 Phạm vi nghiên cứu (7)
    • 1.2 Phương pháp – kết quả (7)
      • 1.2.1 Phương pháp (7)
      • 1.2.2 Kết quả (7)
    • 1.3 Cấu Trúc đồ án (7)
  • Chương 2 CƠ SỞ LÝ THUYẾT (9)
    • 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 (9)
      • 2.1.1 Tổng quan về Deep Learning (9)
      • 2.1.2 Bài toán nhận dạng khuôn mặt trong thị giác máy tính (15)
    • 2.2 Giới thiệu Convolutional Neural Network (17)
      • 2.2.1 Tổng quan (17)
      • 2.2.2 Kiến trúc CNN (18)
    • 2.3 Tổng quan về Machine Learning (19)
      • 2.3.1 Machine Learning là gì ? (19)
      • 2.3.2 Một vài ứng dụng của Machine Learning (19)
    • 2.4 Thư viện Keras (20)
    • 2.5 Thư viện FaceNet (21)
    • 2.6 Thư viện Sklearn (22)
  • Chương 3 XÂY DỰNG ỨNG DỤNG (25)
    • 3.1 Yêu cầu hệ thống (25)
      • 3.1.1 Phần cứng (25)
      • 3.1.2 Môi trường thực hiện (25)
    • 3.2 Các bước thực hiện (25)
      • 3.2.1 Mô tả dữ liệu (0)
      • 3.2.2 Lựa chọn model (0)
      • 3.2.3 Kết quả đạt được (0)
      • 3.2.4 Tinh chỉnh tham số (0)
      • 3.2.5 Test (0)
  • Chương 4 KẾT LUẬN (30)
    • 4.1 Kết quả (30)
    • 4.2 Ưu điểm - nhược điểm (30)
    • 4.3 Hướng phát triển (31)
  • TÀI LIỆU THAM KHẢO (32)

Nội dung

GIỚI THIỆU

Tổng Quan

Hiện nay, an ninh bảo mật đang trở thành một yêu cầu cấp thiết trên toàn cầu, dẫn đến sự phát triển của các hệ thống nhận dạng con người với độ tin cậy cao Trong số đó, nhận dạng khuôn mặt đang thu hút nhiều sự quan tâm vì đây là phương pháp phổ biến mà con người sử dụng để phân biệt nhau Việc thu thập và xử lý thông tin từ ảnh để nhận diện đối tượng ngày càng được ứng dụng rộng rãi, cho phép thu nhận nhiều thông tin mà không cần tác động trực tiếp đến đối tượng nghiên cứu Sự tiến bộ trong khoa học máy tính đã tạo điều kiện thuận lợi cho việc nhận dạng khuôn mặt từ ảnh số Mặc dù các hệ thống nhận dạng offline đã đạt độ tin cậy cao, nhưng các hệ thống nhận dạng online vẫn cần cải thiện để đáp ứng tốt hơn nhu cầu hiện tại.

Trong đồ án này, chúng tôi sẽ tiếp tục nghiên cứu bài toán nhận dạng offline, trong đó dữ liệu được thu thập thành các file và gửi về trung tâm để phân tích Phần đầu của dự án sẽ tập trung vào nhận dạng thông thường, trong khi phần hai sẽ xử lý vấn đề 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 nhằm giảm chiều dữ liệu của các vector biểu diễn 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 mô hình 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á sâu vào nhiều lớp của 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ố quan trọng trong 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 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 tác 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 ngày càng trở nên phổ biến và đóng góp lớn vào việc nâng cao sự tiện lợi trong cuộc sống hàng ngày 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 cần có 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 khả dụng của nó để đạt được kết quả chính xác thông qua các mô hình học tập lặp Tất cả thông tin thu thập từ dữ liệu này được sử dụng để cải thiện hiệu suất và độ chính xác của các ứng dụng trong nhiều lĩnh vực khác nhau.

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, dẫn đến những kết luận đáng tin cậy Công nghệ deep learning sẽ tiếp tục ảnh hưởng mạnh mẽ đến cả lĩnh vực kinh doanh và đời sống 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 dựa vào 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 độ phân 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ẽ tiếp tục phát triển Mỗi cấp độ mới thu thập thêm thông tin và kết hợp với kiến thức đã học ở cấp độ trước Cuối cùng, hệ thống tạo ra một thông tin đầu vào ghép, đi qua nhiều cấp độ phân cấp và hỗ trợ 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 học cách nhận diện giọng nói và ngữ điệu của bạn, mang lại trải nghiệm giao tiếp gần gũi với con người thông qua các mạng lưới thần kinh tiên tiến Những trợ lý này không chỉ hỗ trợ bạn trong việc mua sắm, điều hướng và ghi chú, mà còn có khả năng chuyển đổi giọng nói 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 của 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ệ thiết bị khỏi việc mở khóa trái phép, đồng thời mang đến trải nghiệm liền mạch 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 Khi mở khóa điện thoại, Deep Learning phân tích hàng ngàn điểm dữ liệu để tạo ra bản đồ độ sâu của khuôn mặt, từ đó thuật toán 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 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 để cải thiện trải nghiệm người dùng Hệ thống gợi ý phim và sản phẩm được xây dựng dựa trên thói quen và sở thích cá nhân, giúp người dùng dễ dàng tìm thấy nội dung phù hợp Những lựa chọn này không chỉ dựa trên các mục đã truy cập gần đây mà còn xem xét mối quan hệ với các thương hiệu, diễn viên và nghệ sĩ, từ đó tạo ra một trải nghiệm mua sắm và giải trí tối ưu hơn cho người dùng.

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ự tinh tế của AI Các tổ chức hiện đang áp dụng học sâu để phát triển các ứng dụng NLP phức tạp, bao gồm 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 Sự phát triển này có thể khiến nhiều công việc liên quan đến chuyên môn ngôn ngữ và viết lách trở nên dư thừa trong tương lai gần.

Chăm sóc sức khỏe đang trải qua sự chuyển mình mạnh mẽ với việc ứng dụng công nghệ như trợ lý ảo và các bài tập phục hồ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ác công nghệ như phát hiện sớm bệnh tật, hình ảnh định lượng, phẫu thuật robot và công cụ hỗ trợ quyết định đang trở thành những yếu tố quyết định trong lĩnh vực y học Trong khi đó, lĩnh vực ô tô tự lái cũng đang phát triển nhanh chóng, với Uber AI Labs tại Pittsburgh dẫn đầu trong việc hiện thực hóa xe tự lái Công nghệ Deep Learning cho phép xe tự lái học hỏi từ hàng triệu tình huống, kết hợp dữ liệu từ cảm biến, GPS và bản đồ để tạo ra những mô hình chính xác cho việc điều hướng, đảm bảo an toàn và thoải mái cho người sử dụng.

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

Nhận dạng hình ảnh là một lĩnh vực quan trọng trong công nghệ hiện đại, sử dụng mạng thần kinh chuyển đổi để xử lý hình ảnh kỹ thuật số Công nghệ này cho phép máy tính thực hiện các tác vụ như nhận dạng khuôn mặt, nhận dạng đối tượng và phân tích chữ viết tay thông qua deep learning Bằng cách áp dụng trí tuệ nhân tạo và phương pháp học máy, máy tính có khả năng nhận diện nội dung trong hình ảnh Ngoài ra, công nghệ nhận dạng hình ảnh còn được ứng dụng trong việc tô màu hình ảnh đen trắng và thêm âm thanh cho các bộ phim câm, mở ra nhiều cơ hội mớ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 (Face Recognition) là 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 đã được 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 (Fingerprint Recognition) và nhận dạng mống mắt (Iris Recognition).

Nhận dạng khuôn mặt tương đồng với nhận dạng vân tay và mống mắt, nhưng khác biệt ở 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 và được áp 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 So với hai phương pháp trên, nhận dạng khuôn mặt có nguồn dữ liệu phong phú hơn từ ảnh và video, đồng thời yêu cầu ít sự tương tác có kiểm soát hơn, vì việc nhận dạng vân tay và mống mắt cần sự hợp tác trong môi trường nhất định.

Giới thiệu Convolutional Neural Network

Mạng nơron tích chập (CNN) bao gồm nhiều lớp chập và các 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 hoặc tín hiệu 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 trong những lợi ích nổi bật của CNN là dễ dàng huấn luyện và có ít thông số hơn so với mạng kết nối đầy đủ với cùng số lượng đơ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à một hình ảnh có kích thước m x m x r, trong đó m là chiều cao và chiều rộng, còn r là số kênh (ví dụ như 3 cho ảnh RGB) Lớp chập sử dụng k bộ lọc có kích thước n < n < 4, với 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 việc xoắn với hình ảnh Mỗi bản đồ đặc trưng sau đó được lấy mẫu con bằng cách sử 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 quá trình 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

Chập hình ảnh đầu vào với các bộ lọc huấn luyện và bias bổ sung tạo ra nhiều bản đồ đặc trưng trong lớp C1 Mỗi bản đồ đặc trưng trong S2 được tổng hợp từ các bản đồ tương ứng trong lớp C1 Quá trình chập và tổng hợp cực đại trong lớp C3 và S4 tương tự như trong lớp C1 và S2 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 1 chiều.

Tổng quan về Machine Learning

Machine Learning là một 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ụ cụ thể Nó đề cập đến các hệ thống mà hiệu suất của máy tính sẽ tốt hơn 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 hỏi 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 sẽ tự động học hỏi và cải thiện qua thời gian.

“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à phương pháp mà trong đó thuật toán xây dựng một hàm ánh xạ dữ liệu tới 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ỉ hàm ánh xạ một vector tới các lớp khác nhau bằng cách phân tích một số mẫu dữ liệu, từ đó đưa ra kết quả chính xác.

- 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 giao thông phổ biến nhất, đặc biệt khi các dịch vụ như Grab và Be ngày càng được sử dụng rộng rãi Ứng dụng này không chỉ cung cấp chỉ đường cho người dùng mà còn phân tích thông tin về quãng đường tối ưu và thời gian di chuyển nhanh nhất Dữ liệu lịch sử của các tuyến đường đã được thu thập và kết hợp với thông tin từ người dùng như vị trí, tốc độ trung bình, giúp Google dự đoán lưu lượng giao thông sắp tới Nhờ vào các thuật toán Machine Learning phức tạp, Google Maps có khả năng điều chỉnh tuyến đường của bạn một cách tối ưu nhất.

- 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 và nhận dạng hình ảnh để tự động gắn thẻ bạn bè trên nền tảng của mình Tính năng này tìm kiếm và xác định khuôn mặt phù hợp trong cơ sở dữ liệu của Facebook, nhờ vào công nghệ DeepFace, giúp người dùng dễ dàng gắn thẻ bạn bè mà không cần phải thực hiện thủ công.

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 rất đa dạng và quan trọng.

 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 bằng cách chỉ cần đặt câu hỏi đơn giản, chẳng hạ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ẵn có cho chuyến công tác của tôi?" Trợ lý cá nhân sẽ tìm kiếm thông tin cần thiết hoặc nhớ lại các truy vấn trước đó để 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 trong những tính năng quan trọng nhất của Machine Learning, giúp nhận diện các giao dịch đáng ngờ Khi khách hàng thực hiện giao dịch, mô hình máy học sẽ phân tích kỹ lưỡng hồ sơ của họ để tìm kiếm các mẫu bất thường Trong lĩnh vực Machine Learning, 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 deep learning cấp cao, 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 dễ dàng xây dựng và triển khai các mô hình Do đó, tôi quyết định chọn Keras kết hợp với TensorFlow làm backend để giới thiệu về các mô hình.

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 được phát triển bởi các nhà nghiên cứu của Google vào năm 2015, nhằm mục đích 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), giúp nén tất cả thông tin quan trọng từ hình ảnh vào một dạng dễ xử lý Cụ thể, FaceNet chuyển đổi hình ảnh khuôn mặt thành một vector gồm 128 số, cho phép định danh khuôn mặt một cách hiệu quả thông qua nhúng tương tự.

Facenet là một loại mạng siam, được sử dụng để biểu diễn hình ảnh trong không gian Euclidean n chiều, thường là 128 Mục tiêu của Facenet là giảm 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 phương pháp biểu diễn khuôn mặt dưới dạng vector nhúng (embedding) thông qua một lớp bottleneck, giúp giảm chiều dữ liệu một cách hiệu quả.

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

Hàm loss function chỉ đánh giá 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 một trong hai khả năng: nhận diện 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 lớp khác Điều này dẫn đến việc không thể đồng thời học cả hai khía cạnh giống nhau và khác nhau trong 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 (CNN) để giảm số chiều dữ liệu xuống còn 128, giúp tăng tốc độ 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 như một loss function, giúp học đồng thời sự tương đồng giữa hai bức ảnh trong cùng nhóm và phân biệt các bức ảnh không cùng nhóm Phương pháp này mang lại hiệu quả vượt trội so với các kỹ thuật trước đây.

Thư viện Sklearn

Scikit-learn, commonly known as Sklearn, is the most powerful library for machine learning algorithms written in Python This library 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 hiệu quả 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 làm 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 (Cross Validation) là một kỹ thuật đá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ử (validation data) trong quá trình huấn luyện mô hình Kỹ thuật này giúp đánh giá chính xác khả năng dự đoán của mô hình trên dữ liệu mới, từ đó cải thiện độ tin cậy của mô hình.

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

Dimensionality reduction aims to minimize the number of significant attributes in a dataset through techniques such as data representation, feature selection, and aggregation A prime example of this is the Principal Component Analysis (PCA) algorithm, which effectively simplifies complex data while retaining essential information.

Các phương pháp tập hợp (Ensemble methods) là kỹ thuật sử dụng nhiều thuật toán học máy khác nhau nhằm nâng cao hiệu suất dự đoán Bằng cách kết hợp các mô hình riêng lẻ, phương pháp này giúp cải thiện độ chính xác và giảm thiểu sai số so với việc chỉ sử dụng một thuật toán duy nhất.

- 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 encompasses 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 models are designed to analyze labeled data, enabling them to make predictions and classifications based on input features.

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, dẫn đến việc mô hình đạt được kết quả tốt nhưng vẫn thiếu độ chính xác cao khi nhận diện khuôn mặt của người già và trẻ em Để cải thiện điều này, 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

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

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: 23/04/2022, 07:38

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ÁO cáo đồ án cơ sở 4 đề tài 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ÁO cáo đồ án cơ sở 4 đề tài 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ÁO cáo đồ án cơ sở 4 đề tài 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 12)
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ÁO cáo đồ án cơ sở 4 đề tài 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 15)
Hình 5.Hệ thống nhận diện khuôn mặt - BÁO cáo đồ án cơ sở 4 đề tài 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 16)
Hình 6.Kiến trúc CNN trong nhận diện hành động con người - BÁO cáo đồ án cơ sở 4 đề tài 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 18)
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ÁO cáo đồ án cơ sở 4 đề tài 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 21)
Hình 8.Kết quả chương trình - BÁO cáo đồ án cơ sở 4 đề tài 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 29)

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