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

TÌM HIỂU PHƯƠNG PHÁP NHẬN DẠNG KHUÔN MẶT NGƯỜI VÀ MÔ PHỎNG TRÊN MATLAB

37 95 1

Đ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

Định dạng
Số trang 37
Dung lượng 1,68 MB

Cấu trúc

  • DANH SÁCH HÌNH ẢNH

  • LỜI MỞ ĐẦU

  • CHƯƠNG I. TÌM HIỂU VỀ MATLAB

    • 1.1. Tổng quan về Matlab

      • 1.1.1. Tại sao chọn Matlab ?

      • 1.1.2. Sơ lược lịch sử Matlab

      • 1.1.3. Ngôn ngữ lập trình

      • 1.1.4. Đặc điểm của Matlab và các ứng dụng

      • 1.1.5. Tổng quan về cấu trúc dữ liệu của Matlab

      • 1.1.6. Hệ thống MATLAB

      • 1.1.7. Làm quen với MATLAB

    • 1.2. Sử dụng MATLAB

    • 1.3. Cơ bản về ảnh số

      • 1.3.1. Biểu diễn ảnh và xuất nhập ảnh

      • 1.3.2. Các loại hình ảnh trong MATLAB

  • CHƯƠNG II. TÌM HIỂU VỀ NHẬN DIỆN KHUÔN MẶT NGƯỜI

    • 2.1. Tìm hiểu về nhận diện khuôn mặt

      • 2.1.1. Định nghĩa nhận dạng khuôn mặt người

      • 2.1.2. Ứng dụng của phương pháp nhận dạng khuôn mặt người

      • 2.1.3. Phương pháp nhận dạng khuôn mặt người

    • 2.2. Deep Learning Toolbox trong MATLAB

      • 2.2.1. Deep Learning là gì?

      • 2.2.2. Ứng dụng của Deep Learning

      • 2.2.3. Điều gì làm cho Deep Learning trở thành hiện đại nhất?

      • 2.2.4. Bên trong một mạng Deep Neural

      • 2.2.5. Cách để học của một mạng Deep Neural?

      • 2.2.6. Giới thiệu về Mạng Neural phức hợp

      • 2.2.7. Sự khác biệt Deep Learning và Machine Learning

    • 2.3. Nhận dạng khuôn mặt bằng thuật toán AlexNet.

  • CHƯƠNG III. MÔ PHỎNG PHƯƠNG PHÁP NHẬN DẠNG MẶT NGƯỜI BẰNG MATLAB

    • 3.1. Các hàm chương trình trong Alexnet Network.

    • 3.2. Mô phỏng.

      • 3.2.1. Đưa hình ảnh để tạo dữ liệu

      • 3.2.2. Đào tạo

      • 3.2.3. Thực hiện nhận diện

      • 3.2.4. Nhận xét

  • KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN.

    • Kết luận.

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

  • TÀI LIỆU THAM KHẢO

Nội dung

TÌM HIỂU VỀ MATLAB

Tổng quan về Matlab

Hiện nay, sự phát triển của khoa học kỹ thuật và công nghệ đã thúc đẩy nhu cầu ứng dụng các vấn đề vào thực tiễn Do đó, việc xây dựng chương trình mô phỏng cho các vấn đề này trở nên cần thiết Đồ án này thực hiện việc xây dựng chương trình mô phỏng bằng ngôn ngữ Matlab.

Hiện nay, nhiều ngôn ngữ lập trình như Basic, Pascal, C và Java đang được ứng dụng rộng rãi trong nhiều lĩnh vực Trong số đó, Matlab nổi bật với khả năng tính toán số với ma trận, vẽ đồ thị hàm số, thực hiện thuật toán và tạo giao diện người dùng Matlab cũng hỗ trợ liên kết với các chương trình viết bằng nhiều ngôn ngữ khác nhau Với thư viện Toolbox, Matlab cho phép mô phỏng và thực nghiệm nhiều mô hình trong thực tế và kỹ thuật Chính vì những ưu điểm này, tôi đã quyết định chọn ngôn ngữ lập trình Matlab để mô phỏng phương pháp nâng cao chất lượng ảnh bằng biến đổi mức xám.

1.1.2 Sơ lược lịch sử Matlab

Matlab, viết tắt của "MATrix LABoratory", được phát minh bởi Cleve Moler vào cuối thập niên 1970 Ông cũng từng là chủ nhiệm khoa máy tính tại Đại học New Mexico.

Ban đầu, MATLAB được viết bởi ngôn ngữ Fortran Cho đến 1980, nó vẫn chỉ là mô ̣t bô ̣ phâ ̣n được dùng nô ̣i bô ̣ của Đại Học Standford.

Năm 1983, Jack Little đã phát triển lại MATLAB bằng ngôn ngữ C, đồng thời bổ sung các thư viện hỗ trợ cho việc thiết kế hệ thống điều khiển.

Hộp Công Cụ (Tool box) là một phần quan trọng trong việc mô phỏng, giúp Jack xây dựng MATLAB thành mô hình ngôn ngữ lập trình cơ sở ma trận Steve Bangert đã thực hiện trình thông dịch cho MATLAB, một công trình kéo dài gần một năm rưỡi Sau đó, Jack Little cùng với Cleve Moler và Steve Bangert quyết định biến MATLAB thành một dự án thương mại, dẫn đến sự ra đời của công ty The MathWorks vào năm 1984.

Phiên bản đầu tiên MATLAB 1.0 ra đời năm 1984 viết bằng C cho MS-DOS

PC được phát hành đầu tiên tại IEEE Conference on Design and Control (hô ̣i nghị IEEE về thiết kế và Điều khiển) tại Las Vegas, bang Nevada Hoa Kì.

- Năm 1986, MATLAB 2 ra đời trong đó hỗ trợ UNIX Năm 1987, MATLAB 3 phát hành.

- Năm 1990 Simulink 1.0 được phát hành chung với MATLAB

Năm 1992, MATLAB 4 đã được phát hành với tính năng hỗ trợ đồ họa màu 2-D và 3-D, cùng với các ma trận truy tìm Cũng trong năm này, phiên bản MATLAB Student Edition được giới thiệu, phục vụ cho nhu cầu học tập của sinh viên.

- Năm 1993 MATLAB cho MS Windows ra đời Đồng thời công ty này có WEB site là mathwork.com.

- Năm 1995 MATLAB cho LINUX ra đời Trình dịch MATLAB có khả năng chuyển dịch từ ngôn ngữ MATLAB sang ngôn ngữ C cung được phát hành trong dịp này.

- Năm 1996 MATLAB 5 bao gồm thêm các kiểu dữ liệu, phát triển hình ảnh hoá, bô ̣ truy sửa lỗi (debugger), và giao diện đồ họa GUI.

- Năm 2002 MATLAB 6.5 phát hành, sử dụng phương pháp dịch JIT (Just in Time) và tái hỗ trợ MAC.

- Năm 2004 MATLAB 7 phát hành, có khả năng chính xác đơn và kiểu nguyên, hỗ trợ hàm lồng nhau, công cụ vẽ điểm, và phát triển thuâ ̣t toán tương tác.

Hiện nay, đã là phiên bản 14 với SP3 cải thiện Simulink cùng với hơn 75 sản phẩm khác.

Matlab được dùng rô ̣ng rãi trong giáo dục, phổ biến nhất trong lĩnh vực số tuyến tính và giải tích.

Ngôn ngữ lập trình dùng trong hệ tính toán số cũng có tên gọi là MATLAB.

Nó là một ngôn ngữ lập trình thủ tục, nhưng đã được bổ sung một số đặc điểm của lập trình hướng đối tượng trong các phiên bản gần đây.

1.1.4 Đă ̣c điểm của Matlab và các ứng dụng

Các ứng dụng tiêu biểu của MATLAB bao gồm:

• Hỗ trợ toán học và tính toán.

• Mô hình, mô phỏng

• Phân tích, khảo sát và hiển thị sô liệu.

• Đồ họa khoa học và kỹ thuâ ̣t

• Phát triển ứng dụng với các giao diện đồ họa.

Tên phần mềm MATLAB xuất phát từ thuật ngữ "Matrix Laboratory" Ban đầu, MATLAB được phát triển bằng ngôn ngữ FORTRAN để cung cấp truy cập dễ dàng vào phần mềm ma trận từ các dự án LINPACK và EISPACK Sau đó, phần mềm này được viết lại bằng ngôn ngữ C, dựa trên các thư viện trước đó, và đã mở rộng ra nhiều lĩnh vực tính toán khoa học cũng như ứng dụng kỹ thuật.

Matlab là một môi trường tính toán số và lập trình mạnh mẽ, cho phép thực hiện các phép toán với ma trận, vẽ đồ thị hàm số và biểu đồ thông tin Ngoài ra, Matlab hỗ trợ thực hiện thuật toán, tạo giao tiếp người dùng và liên kết với các chương trình viết bằng nhiều ngôn ngữ lập trình khác Chính vì vậy, Matlab được sử dụng rộng rãi trong nhiều lĩnh vực và dễ dàng hơn so với các ngôn ngữ lập trình khác như Basic, Pascal hay C.

Phần mềm MATLAB được trang bị nhiều ToolBox, là các gói chương trình cho các lĩnh vực ứng dụng đa dạng như xử lý tín hiệu, nhận dạng hệ thống, xử lý ảnh, mạng nơ ron, logic mờ, tài chính, tối ưu hóa, phương trình đạo hàm riêng và sinh tin học Những ToolBox này bao gồm mã nguồn viết bằng MATLAB dựa trên các thuật toán hiệu quả, cho phép người dùng chỉnh sửa hoặc bổ sung hàm mới Nhờ vào thư viện Toolbox, MATLAB hỗ trợ mô phỏng và thực nghiệm nhiều mô hình trong thực tế và kỹ thuật.

MATLAB được phát triển chủ yếu để giải quyết các bài toán bằng số, khác với MATHEMATICA và MAPLE, vốn tập trung vào tính toán ký hiệu Tuy nhiên, MATLAB cũng hỗ trợ tính toán ký hiệu thông qua các hàm trong Symbolic Math ToolBox.

1.1.5 Tổng quan về cấu trúc dữ liệu của Matlab

MATLAB là một hệ thống tương giao mạnh mẽ, sử dụng mảng dữ liệu không giới hạn kích thước, cho phép giải quyết các vấn đề lập trình máy tính, đặc biệt là thông qua các phép toán ma trận và vector Người dùng có thể kết hợp ngôn ngữ lập trình C và Fortran để phát triển ứng dụng và thực hiện các lệnh trong MATLAB Được thiết kế để truy cập dễ dàng vào phần mềm ma trận, MATLAB đã được cải tiến bởi các chương trình Linpack và Eispack, và hiện nay được phát triển bởi lapack và Artpack, tạo ra một nghệ thuật phần mềm tiên tiến cho ma trận.

Dữ liệu trong MATLAB được biểu diễn dưới dạng ma trận với nhiều kiểu dữ liệu khác nhau, bao gồm kiểu đơn single, kiểu double (kiểu dữ liệu phổ biến trong MATLAB), kiểu Sparse, cũng như các kiểu số nguyên như int8, uint8, int16, và các kiểu dữ liệu khác như char, cell.

MATLAB giúp giải quyết các bài toán phức tạp và được sử dụng rộng rãi trong việc nghiên cứu và phát triển sản phẩm tối ưu trong sản xuất Ngoài ra, MATLAB cho phép người dùng áp dụng các kỹ thuật phân tích, thiết kế và mô phỏng các mô hình một cách hiệu quả.

Hệ thống MATLAB được chia làm 5 phần:

The development environment serves as the workspace for various tools and resources, facilitating the use of commands and files Key components include the Desktop, Command Window, Command History, and Browsers for accessing help documentation.

 Thư viện, các hàm toán học:

Sử dụng MATLAB

 Một số lệnh,biến thường sử dụng trong MATLAB:

Clear: lệnh xóa tất cả các biến đã được định nghĩa trước trong chương trình

Clear biến 1, biến 2 : xóa các biến được liệt kê trong câu lệnh.

Who: hiển thị các biến được định nghĩa trong chương trình.

Whos: hiển thị các biến được định nghĩa trong chương trình cùng với thông số về biến.

Kích thước của biến được định nghĩa dưới dạng ma trận, trong đó phần tử đầu tiên thể hiện số hàng và phần tử thứ hai thể hiện số cột của ma trận.

Save: lưu giữ các biến vào một File dưới dạng Matlab.mat.

Load: Tải các biến đã được lưu giữ trong một File đưa vào vùng làm việc.

Trong lập trình, có một số biến được định nghĩa trước, bao gồm "ans", tự động gán tên cho kết quả của phép tính mà người dùng không đặt tên; "realmax", đại diện cho giá trị số lớn nhất mà máy tính có khả năng tính toán; và "realmin", thể hiện giá trị số nhỏ nhất mà máy tính có thể xử lý.

Cơ bản về ảnh số

Khi mô phỏng một hệ thống thông tin, việc phân tích phản ứng của hệ thống trước các yếu tố gây nhiễu từ thế giới thực là rất quan trọng Điều này được thực hiện thông qua các công cụ đồ họa, giúp đánh giá xem chất lượng hệ thống có đáp ứng các tiêu chuẩn đã đặt ra hay không Các công cụ đánh giá chất lượng kênh truyền do MATLAB cung cấp là giải pháp hiệu quả cho vấn đề này.

1.3.1 Biểu diễn ảnh và xuất nhập ảnh

MATLAB là một công cụ tính toán mạnh mẽ dựa trên xử lý ma trận, rất phù hợp để biểu diễn hình ảnh Mỗi hình ảnh trong MATLAB thường được thể hiện bằng một ma trận hai chiều, trong đó mỗi phần tử tương ứng với một pixel Điểm ảnh đầu tiên nằm ở góc trên bên trái, tương ứng với hàng 1, cột 1 Đối với các hình ảnh RGB, chúng được biểu diễn bằng ma trận ba chiều, với chiều thứ ba có kích thước bằng 3, chia thành ba ma trận hai chiều đại diện cho độ sáng của màu đỏ (R), xanh dương (B) và xanh lục (G).

MATLAB lưu trữ hình ảnh dưới các kiểu dữ liệu như logical, uint8, uint16 và double Người dùng có thể thực hiện các phép toán và thao tác cơ bản trên ma trận, như truy xuất phần tử, thay đổi kích thước, sắp xếp và cắt bỏ, miễn là các thao tác này tương thích với các kiểu dữ liệu hình ảnh Tuy nhiên, đối với các kiểu dữ liệu uint8 và uint16, không thể sử dụng các phép toán số học cơ bản như cộng, trừ, nhân, chia Để khắc phục điều này, MATLAB cung cấp các hàm hỗ trợ thực hiện các phép toán này, sẽ được đề cập ở phần cuối.

1.3.2 Các loại hình ảnh trong MATLAB

The Image Processing Toolbox in MATLAB supports four fundamental types of image representations: indexed images, intensity images, binary images, and RGB images.

Trong cách biểu diễn ảnh này, mỗi bức ảnh được mô tả bởi hai ma trận: ma trận dữ liệu ảnh X và ma trận màu (bản đồ màu) map Ma trận dữ liệu có thể là uint8, uint16 hoặc double, trong khi ma trận màu là một ma trận kích thước m x 3 với các phần tử kiểu double có giá trị trong khoảng [0,1] Mỗi hàng trong ma trận màu xác định các thành phần red, green, blue của m màu sử dụng trong ảnh Giá trị của phần tử trong ma trận dữ liệu chỉ ra màu của điểm ảnh tương ứng với hàng nào trong ma trận màu; với kiểu double, giá trị 1 tương ứng với hàng đầu tiên, còn với kiểu uint8 hoặc uint16, giá trị 0 tương ứng với hàng đầu tiên Cần lưu ý rằng MATLAB không hỗ trợ đầy đủ các phép toán cho kiểu uint16, do đó, khi xử lý cần chuyển đổi sang kiểu uint8 hoặc double thông qua các hàm imapprox hoặc im2double.

Hình 1.3 Biểu diễn ảnh bằng phương pháp chỉ số

 Ảnh biểu diễn theo độ sáng

Mỗi bức ảnh được thể hiện dưới dạng một ma trận hai chiều, trong đó giá trị từng phần tử chỉ ra độ sáng của điểm ảnh Ma trận này có thể có các kiểu dữ liệu như uint8, uint16 hoặc double, với giá trị nhỏ nhất (0) tương ứng với màu đen và giá trị lớn nhất (255, 65535 hoặc 1) tương ứng với màu trắng Do đó, ảnh được biểu diễn theo cách này còn được gọi là ảnh "trắng đen" hoặc ảnh gray scale.

Hình 1.4 Biểu diễn ảnh theo độ sáng.

Ảnh nhị phân được biểu diễn dưới dạng ma trận hai chiều với kiểu logical, trong đó mỗi điểm ảnh chỉ có thể mang một trong hai giá trị: 0 (đen) hoặc 1 (trắng).

Hình 1.5 Ảnh nhị phân

Ảnh RGB, hay còn gọi là ảnh "truecolor", nổi bật với tính trung thực của nó Được biểu diễn bằng một ma trận ba chiều kích thước m x n x 3, trong đó m x n là kích thước ảnh theo pixel, ma trận này xác định các thành phần màu đỏ, xanh lá cây và xanh dương cho mỗi điểm ảnh Các phần tử trong ma trận có thể thuộc kiểu uint8, uint16 hoặc double, với mỗi điểm ảnh sử dụng 24 bit, cho phép hiển thị khoảng 16 triệu màu sắc khác nhau Cách biểu diễn ảnh RGB được thể hiện rõ trong hình 1.6.

Hình 1.6 Biểu diễn ảnh RGB

TÌM HIỂU VỀ NHẬN DIỆN KHUÔN MẶT NGƯỜI

Tìm hiểu về nhận diện khuôn mặt

2.1.1 Định nghĩa nhận dạng khuôn mặt người

Nhận diện khuôn mặt người (Face Detection) là một công nghệ máy tính giúp xác định vị trí và kích thước của khuôn mặt trong các bức ảnh kỹ thuật số Kỹ thuật này tập trung vào việc nhận diện các đặc trưng của khuôn mặt, đồng thời loại bỏ những yếu tố không liên quan như tòa nhà, cây cối và cơ thể.

2.1.2 Ứng dụng của phương pháp nhận dạng khuôn mặt người

Có nhiều ứng dụng đã được và đang thiết kế, tôi chỉ xin đưa ra một số loại ứng dụng sau:

Hệ thống tương tác giữa người và máy hỗ trợ người khuyết tật giao tiếp hiệu quả hơn Những người sử dụng ngôn ngữ ký hiệu có thể dễ dàng trao đổi với người bình thường, trong khi những người bị bại liệt có thể diễn đạt mong muốn của mình thông qua các ký hiệu nháy mắt Điều này cho thấy tầm quan trọng của việc phát triển các bài toán điệu bộ của bàn tay và khuôn mặt trong công nghệ tương tác.

Nhận dạng người A để xác định xem có phải là tội phạm truy nã hay không là rất quan trọng, giúp cơ quan an ninh quản lý con người hiệu quả hơn Công việc này có thể được thực hiện cả trong môi trường bình thường và trong điều kiện ánh sáng yếu, nhờ vào công nghệ camera hồng ngoại.

Hệ thống quan sát và bảo vệ sử dụng camera để nhận diện và theo dõi con người, nhằm phát hiện các hành vi vi phạm, như xâm phạm vào những khu vực cấm.

Hiện nay, tình trạng mất thẻ ATM và mã số PIN đang gia tăng, dẫn đến việc nhiều người bị kẻ gian rút tiền trái phép Để bảo vệ tài khoản, người dùng cần lưu trữ thông tin giao dịch như thời điểm rút tiền và kiểm tra thường xuyên Ngoài ra, một số chủ thẻ lợi dụng tình huống này để báo mất thẻ và yêu cầu ngân hàng hoàn tiền, gây khó khăn cho các giao dịch an toàn.

Các ngân hàng thường kiểm tra và lưu trữ hình ảnh khuôn mặt của người rút tiền trong các giao dịch tài chính Việc này giúp họ đối chứng và xử lý các giao dịch một cách an toàn và hiệu quả hơn.

• Thẻ căn cước, chứng minh nhân dân (Face Identification)

Hệ thống điều khiển vào ra hiện đại cho văn phòng, công ty và trụ sở, tích hợp công nghệ nhận diện vân tay và mống mắt, cho phép nhân viên dễ dàng truy cập vào các khu vực cần thiết Nhân viên có thể đăng nhập vào máy tính cá nhân của mình chỉ bằng cách xác định khuôn mặt, mà không cần nhớ tên đăng nhập hay mật khẩu.

Hiện nay, an ninh sân bay và quy trình xuất nhập cảnh tại Mỹ đã được thắt chặt, với việc cơ quan xuất nhập cảnh áp dụng xác thực danh tính người xuất nhập cảnh và kiểm tra nhằm phát hiện các nhân vật khủng bố.

Trong tương lai, các loại thẻ thông minh sẽ được phát triển với những đặc trưng cá nhân hóa của người dùng Khi người dùng khác cố gắng truy cập hoặc xử lý thông tin tại các hệ thống, họ sẽ phải trải qua quy trình kiểm tra nhận diện khuôn mặt để xác minh xem có phải là chủ thẻ hay không.

Tìm kiếm và tổ chức dữ liệu liên quan đến con người thông qua khuôn mặt trên nhiều hệ cơ sở dữ liệu lớn, bao gồm internet và các hãng truyền hình, là một nhiệm vụ quan trọng trong việc quản lý thông tin.

Tìm kiếm các đoạn video có Tổng thống Bush phát biểu, các bộ phim có sự tham gia của diễn viên Lý Liên Kiệt, và các trận đấu bóng đá có Ronaldo thi đấu.

Hiện nay, có nhiều phương pháp để xác định xem một bức ảnh có phải là ảnh khỏa thân hay không Gần đây, khuôn mặt của người được coi là một yếu tố quan trọng trong việc áp dụng những phương pháp này.

• Ứng dụng trong video phone.

Lưu trữ hình ảnh trên điện thoại di động có thể được phân loại dựa vào nhận dạng khuôn mặt và trích xuất đặc trưng Bằng cách sử dụng các đặc trưng này, hình ảnh sẽ được sắp xếp một cách hợp lý, giúp người dùng dễ dàng truy tìm khi cần thiết.

• Kiểm tra trạng thái người lái xe có ngủ gật, mất tập trung hay không, và hỗ trợ thông báo khi cần thiết.

• Phân tích cảm xúc trên khuôn mặt.

• Trong lãnh vực thiết kế điều khiển robot.

Hãng Canon đã tích hợp công nghệ nhận dạng khuôn mặt vào các máy chụp hình thế hệ mới, giúp cải thiện chất lượng hình ảnh, đặc biệt là trong việc chụp ảnh khuôn mặt người.

2.1.3 Phương pháp nhận dạng khuôn mặt người

Nhiều nghiên cứu đã tìm kiếm phương pháp nhận dạng khuôn mặt, từ ảnh xám cho đến ảnh màu hiện nay Bài viết này sẽ tổng quát các hướng giải quyết chính cho bài toán nhận dạng khuôn mặt, từ đó nhiều tác giả đã điều chỉnh một số chi tiết nhỏ để đạt được kết quả mới.

Deep Learning Toolbox trong MATLAB

Học sâu là một phương pháp trong học máy, cho phép mô hình thực hiện các nhiệm vụ phân loại từ hình ảnh, văn bản hoặc âm thanh Phương pháp này thường sử dụng kiến trúc mạng nơ-ron thần kinh, trong đó thuật ngữ "Deep" ám chỉ số lượng lớp trong mạng; mạng càng sâu với nhiều lớp thì khả năng xử lý càng mạnh mẽ Trong khi mạng nơ-ron truyền thống chỉ có 2 hoặc 3 lớp, mạng sâu có thể chứa hàng trăm lớp, mang lại hiệu quả cao hơn trong việc nhận diện và phân loại dữ liệu.

2.2.2 Ứng dụng của Deep Learning

Dưới đây chỉ là một số ví dụ về học sâu trong công việc:

• Xe tự lái giảm tốc độ khi đến gần lối đi dành cho người đi bộ.

• Máy ATM từ chối tiền giả.

• Một ứng dụng điện thoại thông minh cung cấp bản dịch tức thì của một biển báo đường phố tiếng nước ngoài.

Học sâu đặc biệt phù hợp với việc

Ứng dụng Deep 2.0 giúp xác định các công nghệ tiên tiến như nhận dạng khuôn mặt, dịch văn bản, nhận dạng giọng nói và hệ thống hỗ trợ lái xe, bao gồm phân loại làn đường và nhận dạng biển báo giao thông.

2.2.3 Điều gì làm cho Deep Learning trở thành hiện đại nhất?

Độ chính xác là yếu tố then chốt trong việc ứng dụng công nghệ Các công cụ và kỹ thuật tiên tiến với thuật toán học sâu đã đạt được sự cải thiện đáng kể, cho phép chúng vượt qua khả năng của con người trong việc phân loại hình ảnh, chiến thắng những người chơi GO hàng đầu, cũng như điều khiển giọng nói qua các trợ lý ảo như Amazon Echo® và Google Home để tìm kiếm và tải xuống bài hát yêu thích.

Ba công nghệ hỗ trợ làm cho mức độ chính xác này trở nên khả thi:

 Dễ dàng truy cập vào bộ dữ liệu được gắn nhãn khổng lồ.

Các tập dữ liệu miễn phí như ImageNet và PASCAL VoC rất hữu ích cho việc đào tạo các mô hình nhận diện nhiều loại đối tượng khác nhau.

 Tăng khả năng tính toán.

GPU hiệu suất cao tăng tốc độ đào tạo khối lượng lớn dữ liệu cần thiết cho học sâu, rút ngắn thời gian đào tạo từ nhiều tuần xuống chỉ còn vài giờ.

 Mô hình Pretrain được xây dựng bởi các chuyên gia.

Mô hình như AlexNet có thể được tái đào tạo để thực hiện các nhiệm vụ nhận dạng mới thông qua kỹ thuật học chuyển giao.

Trong khi AlexNet được đào tạo về 1,3 triệu hình ảnh độ phân giải cao để nhận ra

1000 đối tượng khác nhau, Việc học chuyển chính xác có thể đạt được với các bộ dữ liệu nhỏ hơn nhiều.

2.2.4 Bên trong một mạng Deep Neural

Mạng nơron sâu là một cấu trúc bao gồm nhiều lớp xử lý phi tuyến, hoạt động song song và được lấy cảm hứng từ hệ thần kinh sinh học Cấu trúc này bao gồm một lớp đầu vào, nhiều lớp ẩn và một lớp đầu ra, với các lớp được kết nối qua các nút hoặc tế bào thần kinh Mỗi lớp ẩn sử dụng đầu ra từ lớp trước đó làm đầu vào cho quá trình xử lý tiếp theo.

Hình 2.1 Mạng Deep Neural

2.2.5 Cách để học của một mạng Deep Neural?

Chúng ta có một bộ hình ảnh chứa bốn loại đối tượng khác nhau và mục tiêu là giúp mạng học sâu tự động nhận diện các đối tượng trong từng hình ảnh Để thực hiện điều này, chúng ta cần gắn nhãn các hình ảnh nhằm tạo ra dữ liệu đào tạo cho mạng.

Khi áp dụng dữ liệu đào tạo, mạng nơ-ron sâu có khả năng nhận diện các đặc điểm cụ thể của đối tượng và liên kết chúng với các danh mục tương ứng.

Hình 2.3 Đào tạo Deep Neural.

Mỗi lớp trong mạng nơ-ron nhận dữ liệu từ lớp trước, xử lý và truyền tải thông tin Quá trình này giúp mạng gia tăng độ phức tạp và chi tiết trong việc học hỏi từ lớp này sang lớp khác.

Lưu ý rằng mạng học trực tiếp từ dữ liệu chúng ta có, không ảnh hưởng đến những tính năng đang được học.

2.2.6 Giới thiệu về Mạng Neural phức hợp

Mạng nơ-ron phức hợp (CNN hoặc ConvNet) là một trong những các thuật toán phổ biến nhất để học sâu với hình ảnh và video.

Giống như các mạng nơ-ron khác, CNN bao gồm một lớp đầu vào, một lớp đầu ra và nhiều lớp ẩn ở giữa

 Lớp phát hiện tính năng.

Các lớp này thực hiện một trong ba loại hoạt động trên dữ liệu: convolution, pooling, or rectified linear unit (ReLU).

Convolution là quá trình xử lý hình ảnh bằng cách sử dụng một tập hợp các bộ lọc chập, mỗi bộ lọc này giúp kích hoạt các tính năng đặc trưng từ hình ảnh đầu vào.

- Pooling đơn giản hóa đầu ra bằng cách thực hiện phi tuyến tính lấy mẫu xuống, giảm số lượng tham số mà mạng cần tìm hiểu về.

Rectified Linear Unit (ReLU) là một hàm kích hoạt giúp tăng tốc độ và hiệu quả trong quá trình đào tạo mô hình bằng cách chuyển đổi các giá trị âm thành 0 và giữ nguyên các giá trị dương.

Hình 2.4 Mạng Neural phức hợp

Ba hoạt động này được lặp lại trên hàng chục hoặc hàng trăm các lớp, với mỗi lớp học để phát hiện các tính năng khác nhau.

Sau khi phát hiện tính năng, kiến trúc của CNN chuyển sang phân loại.

Lớp áp chóp là lớp kết nối đầy đủ (FC) cho phép mạng neural tạo ra một vectơ K chiều, trong đó K đại diện cho số lớp mà mạng có khả năng dự đoán Vectơ này cung cấp xác suất cho mỗi lớp của hình ảnh đang được phân loại.

Lớp cuối cùng của kiến trúc CNN sử dụng một hàm softmax để cung cấp phân loại đầu ra.

2.2.7 Sự khác biệt Deep Learning và Machine Learning

Học sâu là một nhánh con của máy học, trong đó thay vì trích xuất thủ công các đặc trưng từ hình ảnh, bạn có thể đưa trực tiếp hình ảnh thô vào mạng thần kinh để nó tự động học các đặc trưng Để đạt được kết quả tối ưu, học sâu thường cần hàng trăm nghìn hoặc hàng triệu hình ảnh và yêu cầu khả năng tính toán cao với GPU hiệu suất tốt.

Machine learning (ML) hay máy học là một nhánh của trí tuệ nhân tạo (AI), cho phép máy tính tự cải thiện dựa trên dữ liệu mẫu hoặc kinh nghiệm đã học ML có khả năng tự dự đoán và ra quyết định mà không cần lập trình cụ thể Các bài toán trong machine learning thường được chia thành hai loại chính: dự đoán, như dự đoán giá nhà và giá xe, và phân loại, như nhận diện chữ viết tay và đồ vật.

+ Hiệu quả với bộ dữ liệu nhỏ + Yêu cầu tập dữ liệu rất lớn

+ Đào tạo nhanh chóng một model + Tính toán chuyên sâu

+ Cần thử các tính năng và các bộ phân loại khác nhau để đạt được kết quả tốt nhất

+ Tìm hiểu các tính năng và bộ phân loại tự động+ Tính chính xác ổn định + Độ chính xác là không giới hạn

Bảng 1.0 So sánh Machine Learning với Deep Learning.

Hình 2.5 Machine Learning và Deep Learning.

Nhận dạng khuôn mặt bằng thuật toán AlexNet

AlexNet là một mạng nơ-ron phức tạp trong bộ công cụ Deep Learning Toolbox của MATLAB, với độ sâu 8 lớp Mạng này đã được đào tạo trước để phân loại hình ảnh thành 1000 loại đối tượng, bao gồm khuôn mặt, bàn phím, chuột, bút chì và nhiều động vật khác Kích thước đầu vào của hình ảnh là 227 x 227 pixel, cho phép mạng học các biểu diễn tính năng phong phú cho nhiều loại hình ảnh Khi nhận một hình ảnh đầu vào, mạng sẽ xuất ra một nhãn cho đối tượng trong hình ảnh cùng với xác suất cho từng loại đối tượng.

Học chuyển tiếp là phương pháp phổ biến trong ứng dụng học sâu, cho phép bạn sử dụng một mạng đã được đào tạo trước làm điểm khởi đầu cho nhiệm vụ mới Việc tinh chỉnh mạng thông qua học chuyển tiếp thường nhanh hơn và dễ dàng hơn so với việc đào tạo từ đầu với các trọng số ngẫu nhiên Bằng cách này, bạn có thể nhanh chóng áp dụng các tính năng đã học cho nhiệm vụ mới, chỉ cần một lượng hình ảnh đào tạo nhỏ hơn.

Hình 2.6 Sơ đồ AlexNet

MÔ PHỎNG PHƯƠNG PHÁP NHẬN DẠNG MẶT NGƯỜI BẰNG MATLAB

Các hàm chương trình trong Alexnet Network

Giải nén và tải hình ảnh mới vào kho dữ liệu hình ảnh, imageDatastore tự động gán nhãn hình ảnh dựa trên tên thư mục và lưu trữ dữ liệu dưới dạng đối tượng ImageDatastore Kho dữ liệu hình ảnh cho phép lưu trữ khối lượng lớn dữ liệu hình ảnh, bao gồm cả dữ liệu không vừa trong bộ nhớ, đồng thời hỗ trợ đọc hiệu quả các lô hình ảnh trong quá trình đào tạo mạng nơ-ron phức tạp.

Chia dữ liệu thành các tập đào tạo và xác nhận bằng cách sử dụng 70% hình ảnh cho quá trình đào tạo và 30% cho việc xác nhận Sử dụng hàm splitEachLabel để phân chia kho dữ liệu thành hai kho dữ liệu mới.

Tập dữ liệu rất nhỏ này hiện chứa 55 hình ảnh đào tạo và 20 hình ảnh xác nhận Hiển thị một số hình ảnh mẫu.

Tải mạng nơ-ron AlexNet được đào tạo trước Nếu Mô hình Deep Learning

Nếu Toolbox cho Mạng AlexNet chưa được cài đặt, phần mềm sẽ cung cấp liên kết tải xuống AlexNet đã được đào tạo trên hơn một triệu hình ảnh và có khả năng phân loại chúng thành 1000 loại đối tượng, bao gồm bàn phím, chuột, bút chì và nhiều loại động vật khác Kết quả là, mô hình này đã học được các đại diện tính năng phong phú cho nhiều loại hình ảnh.

Sử dụng analyzeNetworkđể hiển thị trực quan tương tác về kiến trúc mạng và thông tin chi tiết về các lớp mạng.

Lớp đầu tiên, lớp đầu vào hình ảnh, yêu cầu hình ảnh đầu vào có kích thước 227-x 227-x 3, trong đó 3 là số kênh màu. inputSize = 1 × 3

Ba lớp cuối cùng của mạng được đào tạo trước đã được cấu hình cho 1000 lớp và cần được tinh chỉnh để phù hợp với vấn đề phân loại mới Cần trích xuất tất cả các lớp, ngoại trừ ba lớp cuối cùng, từ mạng đã được đào tạo trước.

Để chuyển các lớp sang nhiệm vụ phân loại mới, bạn cần thay thế ba lớp cuối cùng bằng một lớp kết nối đầy đủ, một lớp softmax và một lớp đầu ra phân loại Hãy chỉ định các tùy chọn cho lớp kết nối đầy đủ dựa trên dữ liệu mới, với kích thước lớp tương ứng với số lớp trong dữ liệu mới Để tăng tốc độ học cho các lớp mới so với các lớp đã chuyển, hãy điều chỉnh các giá trị WeightLearnRateFactor và BiasLearnRateFactor cho lớp kết nối đầy đủ Số lớp phân loại là 5.

Mạng đào tạo tăng cường giúp cải thiện hiệu suất bằng cách lật ngẫu nhiên và dịch các hình ảnh đào tạo lên đến 30 pixel theo cả chiều ngang và chiều dọc, từ đó ngăn ngừa hiện tượng quá mức và ghi nhớ chi tiết chính xác Để tự động thay đổi kích thước hình ảnh xác thực mà không cần thêm dữ liệu, bạn có thể sử dụng kho dữ liệu hình ảnh tăng cường mà không cần chỉ định thêm hoạt động tiền xử lý nào.

Khi chỉ định các tùy chọn đào tạo cho học chuyển giao, hãy giữ nguyên các tính năng từ các lớp đầu tiên của mạng đã được đào tạo trước Để làm chậm việc học ở các lớp đã chuyển, nên đặt tốc độ học ban đầu thành giá trị nhỏ Việc tăng hệ số tốc độ học cho lớp kết nối đầy đủ sẽ giúp tăng tốc độ học ở các lớp mới, trong khi các lớp khác học chậm hơn Học chuyển tiếp không cần đào tạo trong nhiều kỷ nguyên, mà chỉ cần chỉ định kích thước lô nhỏ và dữ liệu xác thực Phần mềm sẽ xác nhận mạng sau mỗi lần lặp lại theo tần suất xác thực đã chỉ định trong quá trình đào tạo.

Huấn luyện mạng bao gồm các lớp đã chuyển và lớp mới Theo mặc định ,

TrainNetwork ưu tiên sử dụng GPU nếu có sẵn; nếu không, nó sẽ chuyển sang sử dụng CPU Để đào tạo trên GPU, cần có Hộp công cụ tính toán song song và thiết bị GPU tương thích Người dùng cũng có thể xác định môi trường thực thi thông qua đối số 'ExecutionEnvironment' trong trainingOptions.

 Phân loại hình ảnh xác thực

Phân loại các hình ảnh xác nhận bằng cách sử dụng mạng tinh chỉnh.

Hiển thị bốn hình ảnh xác thực mẫu với các nhãn dự đoán của chúng.

Tính toán độ chính xác phân loại trên tập xác nhận Độ chính xác là phần của các nhãn mà mạng dự đoán chính xác.

Mô phỏng

3.2.1 Đưa hình ảnh để tạo dữ liệu Đưa hình ảnh có khuôn mặt của đối tượng cần nhận diện vào trước camera để thực hiện phát hiện, chụp và lưu lại thành ảnh dữ liệu.

Hình 3.0 Đưa hình ảnh đối tương để tạo dữ liệu

Hình ảnh sau khi được nhận diện khuôn mặt đối tượng sẽ lưu lại 150 bức ảnh khuôn mặt để làm dữ liệu cho quá trình Training.

Hình 3.1 File lưu chữ dữ liệu

Dự liệu sẽ được lưu vào thư mục có tên đối tượng được tạo từ trước.

Hình ảnh khuôn mặt của đối tượng đã được lưu trữ trong cơ sở dữ liệu, với thứ tự từ 0 đến 149 và định dạng là “.bmp”.

Quá trình đào tạo được thực hiện qua mạng Deep Learning AlexNet, với việc lấy dữ liệu ở các file database có sẵn ở bước trước.

Hình ảnh khuôn mặt đối tượng được chụp lại Các file ảnh đã chụp được hiển thị

File chứa ảnh dự liệu được chụp

HÌnh 3.3 Kết quả quá trình Training

Quá trình đào tạo kết thúc chúng ta sẽ thu được file MyNet1.mat (tên có thể thay đối theo ý người dùng)

MyNet1.mat là tệp được tạo ra từ quá trình đào tạo sâu của mạng nơ-ron nhiều lớp, nhằm nhận diện các đặc điểm trên khuôn mặt của các đối tượng.

Khi đối tượng hoặc hình ảnh của đối tượng xuất hiện trước camera, tên của đối tượng sẽ hiển thị ở phía trên khung hình.

File myNet1.mat được tạo sau Trainning

Hình 3.5 Kết quả nhận diện của Ngô Thị B.Tên đối tượng

Hình 3.6 Kết quả nhận diện của Vũ Trí Sáng

.Khi không có đối tượng nào xuất hiện trong khung hình sẽ hiện thông báo

Hình 3.7 Thông báo không có đối tượng nhận diện

Kết quả mô phỏng cho thấy thành công trong việc nhận dạng khuôn mặt của các đối tượng Thuật toán đã chính xác xác định từng khuôn mặt, cho thấy tiềm năng phát triển mạnh mẽ của công nghệ nhận dạng khuôn mặt Đây là một công nghệ hữu ích và dự kiến sẽ được phổ biến rộng rãi trong tương lai.

Thông báo không có đối tượng

Ngày đăng: 10/10/2021, 07:18

HÌNH ẢNH LIÊN QUAN

Bảng 1.0. So sánh Machine Learning với Deep Learning. - TÌM HIỂU PHƯƠNG PHÁP NHẬN DẠNG KHUÔN MẶT NGƯỜI VÀ MÔ PHỎNG TRÊN MATLAB
Bảng 1.0. So sánh Machine Learning với Deep Learning (Trang 25)
3.2.1. Đưa hình ảnh để tạo dữ liệu - TÌM HIỂU PHƯƠNG PHÁP NHẬN DẠNG KHUÔN MẶT NGƯỜI VÀ MÔ PHỎNG TRÊN MATLAB
3.2.1. Đưa hình ảnh để tạo dữ liệu (Trang 30)
 Phân loại hình ảnh xác thực - TÌM HIỂU PHƯƠNG PHÁP NHẬN DẠNG KHUÔN MẶT NGƯỜI VÀ MÔ PHỎNG TRÊN MATLAB
h ân loại hình ảnh xác thực (Trang 30)
File chứa ảnh dự liệu được chụp - TÌM HIỂU PHƯƠNG PHÁP NHẬN DẠNG KHUÔN MẶT NGƯỜI VÀ MÔ PHỎNG TRÊN MATLAB
ile chứa ảnh dự liệu được chụp (Trang 31)
Hình ảnh khuôn mặt đối tượng  được chụp lại Các file ảnh đã chụp  - TÌM HIỂU PHƯƠNG PHÁP NHẬN DẠNG KHUÔN MẶT NGƯỜI VÀ MÔ PHỎNG TRÊN MATLAB
nh ảnh khuôn mặt đối tượng được chụp lại Các file ảnh đã chụp (Trang 31)
3.2.3. Thực hiện nhận diện - TÌM HIỂU PHƯƠNG PHÁP NHẬN DẠNG KHUÔN MẶT NGƯỜI VÀ MÔ PHỎNG TRÊN MATLAB
3.2.3. Thực hiện nhận diện (Trang 32)
HÌnh 3.3. Kết quả quá trình Training - TÌM HIỂU PHƯƠNG PHÁP NHẬN DẠNG KHUÔN MẶT NGƯỜI VÀ MÔ PHỎNG TRÊN MATLAB
nh 3.3. Kết quả quá trình Training (Trang 32)

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

w