1. Trang chủ
  2. » Luận Văn - Báo Cáo

Bài tập lớn môn trí tuệ nhân tạođề tàitìm hiểu mạng cnn và ứng dụng nhận dạng mặt người

44 20 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 đề Tìm Hiểu Mạng CNN Và Ứng Dụng Nhận Dạng Mặt Người
Tác giả Trần Xuân Vũ, Hoàng Anh Tú
Người hướng dẫn Ths. Lê Thị Thủy
Trường học Trường Đại Học Công Nghiệp Hà Nội
Chuyên ngành Trí Tuệ Nhân Tạo
Thể loại Bài Tập Lớn
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 44
Dung lượng 1,6 MB

Nội dung

Deep learning là một phần của trường machine learning học máy, nó tập trung vào việc xây dựng và huấn luyện các mạng nơ-ron nhân tạo sâu deep neural networks để thực hiện các nhiệm vụ ph

Trang 1

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI

KHOA CÔNG NGHỆ THÔNG TIN

I.Thông tin chung

1.Tên lớp : 20231IT6043002 Khóa : K16

2.Họ và tên sinh viên : Trần Xuân Vũ.

Trang 2

3.Tên nhóm : Nhóm 14 Họ và tên thành viên trong nhóm : Trần Xuân Vũ, Hoàng Anh Tú.

II.Nội dung học tập

1.Tên chủ đề : Tìm hiểu mạng CNN và ứng dụng nhận dạng mặt người.

2.Hoạt động của sinh viên:

-Hoạt động/Nội dung 1: Tổng quan về mạng Nơ ron Mục tiêu/chuẩn đầu ra: Hiểu về khái niệm, cấu tạo

và quá trình xử lý của một số mạng nơ ron.

-Hoạt động/Nội dung 2: Giới thiệu về mạng Nơ ron tích chập Mục tiêu/chuẩn đầu ra: Hiểu về khái niệm,

mô hình và cách xây dựng mạng nơ ron tích chập Một số thư viện áp dụng để xây dựng mạng nơ ron tích chập.

-Hoạt động/Nội dung 3: Ứng dụng nhận dạng ký tự chữ cái Mục tiêu/chuẩn đầu ra: Tạo chương trình demo nhận dạng mặt người bằng mạng CNN từ tập dữ liệu tìm kiếm.

3.Sản phẩm nghiên cứu: Ứng dụng CNN nhận dạng mặt người.

III.Nhiệm vụ học tập

1.Hoàn thành Tiểu luận, Bài tập lớn,Đồ án/Dự án theo đúng thời gian quy định (từ ngày 14/11/2023 Đến ngày 17/12/2023)

2.Báo cáo sản phẩm nghiên cứu theo chủ đề được giao trước giảng viên và những sinh viên khác

IV.Học liệu thực hiện Tiểu luận, Bài tập lớn, Đồ án/Dự án

1.Tài liệu học tập :

[1] Trường Đại học Công Nghiệp Hà Nội, Giáo trình trí tuệ nhân tạo

[2] Chung Pham Van, [Deep Learning] Tìm hiểu về mạng tích chập (CNN), learning-tim-hieu-ve-mang-tich-chap-cnn-maGK73bOKj2’

https://viblo.asia/p/deep-[3] Trần Hồng Việt, Đỗ Đình Tiến, Nguyễn Thị Trà, Trần Lâm Quân, NHẬN DIỆN KHUÔN MẶT

SỬ DỤNG MẠNG NƠ RON TÍCH CHẬP XẾP CHỒNG VÀ MÔ HÌNH FACENET,

https://tapchikhcn.haui.edu.vn/media/30/uffile-upload-no-title30548.pdf

[4] Wei-Meng Lee, Implementing Face Recognition Using Deep Learning and Support Vector Machines, https://www.codemag.com/Article/2205081/Implementing-Face-Recognition-Using- Deep-Learning-and-Support-Vector-Machines

[5] Farukh Hashmi, Face Recognition using Deep Learning CNN in Python,

https://thinkingneuron.com/face-recognition-using-deep-learning-cnn-in-python/

Trang 3

2 Phương tiện, nguyên liệu thực hiện Tiểu luận, Bài tập lớn,Đồ án/Dự án (nếu có) : Python, Pycharm

KẾ HOẠCH THỰC HIỆN TIỂU LUẬN, BÀI TẬP LỚN, ĐỒ ÁN

Tên lớp : 20231IT6043002 Khóa : K16

Họ và tên sinh viên : Trần Xuân Vũ, Hoàng Anh Tú

Tên nhóm : 14

Trang 4

Tên chủ đề : Tìm hiểu mạng CNN và ứng dụng nhận dạng mặt người.

Tuần Người thực hiện Nội dung công việc Kết quả đạt được Phương pháp thực

hiện

1 Trần Xuân Vũ

Hoàng Anh Tú

Tìm hiểu chung về mạng Nơ Ron CNN

Hiểu về khái niệm, cấu tạo và quá trình xử lý của một số mạng

nơ ron

Họp online, nghiên cứu tài liệu tham khảo

Họp online, nghiên cứu tài liệu tham khảo

3 Trần Xuân Vũ

Hoàng Anh Tú

Xây dựng ứng dụng CNN trong nhận dạng mặt người

Tạo chương trình demo nhận dạng mặt người bằng mạng CNN từ tập

dữ liệu đã tìm kiếm

Họp online, nghiên cứu tài liệu tham khảo, code chương trình demo

Ngày…tháng… năm

XÁC NHẬN CỦA GIẢNG VIÊN

(Kí,ghi rõ họ tên)

Lê Thị Thủy

BÁO CÁO HỌC TẬP CÁ NHÂN/NHÓM

Tên lớp : 20231IT6043002 Khóa : K16

Họ và tên sinh viên : Trần Xuân Vũ, Hoàng Anh Tú

Tên nhóm : 14

Trang 5

Tên chủ đề : Tìm hiểu mạng CNN và ứng dụng nhận dạng ký tự chữ cái

Tuần Người thực hiện Nội dung công việc Kết quả đạt được Kiến nghị với giảng

viên hướng dẫn

1 Trần Xuân Vũ

Hoàng Anh Tú

Tìm hiểu chung về mạng Nơ Ron CNN

Hiểu về khái niệm, cấu tạo và quá trình xử lý của một số mạng

Không kiến nghị

3 Trần Xuân Vũ

Hoàng Anh Tú

Xây dựng ứng dụng CNN trong nhận dạng mặt người

Tạo chương trình demo nhận dạng mặt người bằng mạng CNN từ tập

dữ liệu đã tìm kiếm

Trang 6

DANH MỤC HÌNH ẢNH 7

LỜI CẢM ƠN 8

Chương 1: TÌM HIỂU CHUNG VỀ MẠNG NƠ RON CNN 9

1.1 Tổng quan về mạng CNN 9

1.1.1 Khái niệm chung 9

1.1.2 Ưu điểm 10

1.1.3 Nhược điểm 11

1.2 Lớp tích chập – Convolution Layer 12

1.2.1 Khái niệm 12

1.2.2 Bộ lọc (Filter hoặc Kernel) 12

1.2.3 Bước di chuyển(Stride) 13

1.2.4 Đệm(Padding) 14

1.3 Lớp gộp – Pooling Layer 14

1.3.1 Khái niệm 14

1.3.2 Max Pooling 14

1.3.3 Average Polling 14

1.3.4 Sum Pooling 15

1.4 Fully connected layer 15

1.4.1 Khái niệm 15

1.4.2 Cách hoạt động của Fully Connected Layer 15

CHƯƠNG 2: ỨNG DỤNG CNN TRONG NHẬN DIỆN KHUÔN MẶT 17

2.1 Giới thiệu bài toán 17

2.2 Xây dựng mô hình bài toán 17

2.3 Công cụ sử dụng 18

2.3.1 Ngôn ngữ và các thư viện 18

2.3.2 IDE: Pycharm 19

2.4 Tệp dữ liệu ban đầu 20

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

2.5.1 Phát hiện khuôn mặt và tiền xử lý tạo tập dữ liệu 20

2.5.2 Huấn luyện mô hình 28

2.6 Kết quả 39

2.6.1 Kết quả test trên ảnh 39

2.6.2 Kết quả test trực tiếp bằng webcam 40

Trang 7

KẾT LUẬN 41 TÀI LIỆU THAM KHẢO 42

CÁC TỪ VIẾT TẮT

Trang 8

DANH MỤC HÌNH ẢNH

Hình 1: Ma trận RGB 6x6x3 10

Hình 2 Toàn bộ luồng CNN để xử lý hình ảnh đầu vào và phân loại đối tượng dựa trên giá trị 10

Hình 3 Hình ảnh tích chập khác nhau khi áp dụng các Kernel khác nhau 13

Hình 4 Lớp tích chập hoạt động với Stride là 2 14

Hình 5: Sơ đồ quy trình của mô hình nhận diện khuôn mặt 17

Hình 6: Hình ảnh cấu trúc sắp xếp các ảnh đã thu thập 20

Hình 7: Đoạn mã duyệt file ảnh 20

Hình 8: Khởi tạo đối tượng CascadeClassifier của thư viện OpenCV 21

Hình 9: Xác định khuôn mặt trong từng file ảnh khi duyệt 21

Hình 10: Minh họa ảnh chuyển sang ảnh xám 22

Hình 11: Minh họa khung cửa sổ con với đặc trưng Haar-like 23

Hình 12: Minh họa khi quét các cửa sổ con 23

Hình 13: Xác định và hình vẽ hình chữ nhật lên vùng chứa khuôn mặt 24

Hình 14: Ảnh sau khi chuyển ảnh xám và xác định khuôn mặt 24

Hình 15: Ảnh sau khi cắt vùng chứa khuôn mặt 25

Hình 16: Ảnh cấu trúc folder facegray 25

Hình 17: Đoạn mã lưu ảnh xám chứa khuôn mặt đã được cắt 26

Hình 18: Ảnh xám chứa khuôn mặt được lưu vào thư mục mới 27

Hình 19: Đoạn mã tạo tập dữ liệu và gắn lable 28

Hình 20: Kết quả sau khi gắn lable cho tập dữ liệu 28

Hình 21: File ResultMap.pkl 28

Hình 22: Cấu trúc mô hình dự kiến 29

Hình 23: Ảnh đầu vào 30

Hình 24: Kết quả sau khi chạy khối B2 30

Hình 25: Kết quả sau khi chạy khối B3 31

Hình 26: Kết quả sau khi chạy khối B4 31

Hình 27: Kết quả sau khi chạy khối B5 32

Hình 28: Kết quả sau khi chạy khối B6 33

Hình 29: Hình minh họa lớp đầu ra cuối cùng 34

Hình 30: Các thư viện cần dùng để xây dựng mô hình 36

Hình 31: Đoạn mã xây dựng mô hình 37

Hình 32: Kết quả sau khi xây dựng mô hình 37

Hình 33: Đoạn mã train và lưu mô hình 38

Hình 34: Quá trình train mô hình 38

Hình 35: File lưu mô hình sau khi train 39

Hình 36: Đoạn mã dùng để nhận dạng khuôn mặt 39

Hình 37: Kết quả nhận dạng trên ảnh 40

Hình 38: Kết quả nhận diện bằng webcam 40

Trang 9

LỜI CẢM ƠN

Lời đầu tiên, nhóm chúng em xin gửi lời cảm ơn chân thành tới cô Lê Thị Thuỷ Trong quá trình học tập và thực hiện đề tài này, chúng em đã nhận được sự quan tâm giúp

đỡ, hướng dẫn tận tình, tâm huyết của cô Cô đã tận tâm giảng dạy và hướng dẫn chúng

em thực hiện đề tài tìm hiểu mạng CNN và ứng dụng nhận dạng khuôn mặt người Chúng

em đã hiểu được cách thức hoạt động của mạng CNN, xây dựng một mô hình CNN nhận dạng mặt người trên tập dữ liệu của riêng mình Nhóm em xin cảm ơn cô đã tạo điều kiệncho chúng em được học tập và nghiên cứu

Chúng em xin trân trọng cảm ơn!

Trang 10

Chương 1: TÌM HIỂU CHUNG VỀ MẠNG NƠ RON CNN.

Deep learning ra đời từ các nền tảng và ý tưởng trong lĩnh vực machine learning

và neural network đã tồn tại từ thập kỷ 1940 và 1950 Tuy nhiên, khái niệm "deeplearning" như chúng ta hiểu ngày nay đã được hình thành và phát triển mạnh mẽ trongnhững năm gần đây Deep learning là một phần của trường machine learning (học máy),

nó tập trung vào việc xây dựng và huấn luyện các mạng nơ-ron nhân tạo sâu (deep neuralnetworks) để thực hiện các nhiệm vụ phân loại, dự đoán và xử lý dữ liệu phức tạp Deeplearning đã tạo ra sự cách mạng trong nhiều lĩnh vực như thị giác máy tính, xử lý ngônngữ tự nhiên, và nhiều ứng dụng khác

Convolutional Neural Network (CNNs – Mạng nơ-ron tích chập) là một trongnhững mô hình Deep Learning tiên tiến Nó giúp cho chúng ta xây dựng được những hệthống thông minh với độ chính xác cao như hiện nay

CNN được sử dụng nhiều trong các bài toán nhận dạng các object trong ảnh Đểtìm hiểu tại sao thuật toán này được sử dụng rộng rãi cho việc nhận dạng (detection),chúng ta hãy cùng tìm hiểu về thuật toán này

1.1 Tổng quan về mạng CNN

1.1.1 Khái niệm chung

- Trong mạng neural, mô hình mạng neural tích chập (CNN) là 1 trong những môhình để nhận dạng và phân loại hình ảnh Trong đó, xác định đối tượng và nhậndạng khuôn mặt là 1 trong số những lĩnh vực mà CNN được sử dụng rộng rãi

- CNN phân loại hình ảnh bằng cách lấy 1 hình ảnh đầu vào, xử lý và phân loại nótheo các hạng mục nhất định (Ví dụ: Chó, Mèo, Hổ, ) Máy tính coi hình ảnh đầuvào là 1 mảng pixel và nó phụ thuộc vào độ phân giải của hình ảnh Dựa trên độphân giải hình ảnh, máy tính sẽ thấy H x W x D (H: Chiều cao, W: Chiều rộng, D:

Độ dày)

Trang 11

Hình 1: Ma trận RGB 6x6x3

- Về kỹ thuật, mô hình CNN để training và kiểm tra, mỗi hình ảnh đầu vào sẽchuyển nó qua 1 loạt các lớp tích chập với các bộ lọc (Kernals), tổng hợp lại cáclớp được kết nối đầy đủ (Full Connected) và áp dụng hàm Softmax để phân loạiđối tượng có giá trị xác suất giữa 0 và 1

Hình 2 Toàn bộ luồng CNN để xử lý hình ảnh đầu vào và phân loại đối tượng dựa trên giá trị.

- Trích xuất đặc trưng tự động: CNN tự động học cách trích xuất các đặc trưng quantrọng từ dữ liệu ảnh mà không cần phải xác định rõ ràng các đặc trưng cụ thể.Điều này giúp giảm thiểu công việc thủ công và tốn thời gian để thiết lập các đặctrưng thủ công

Trang 12

- Xử lý dữ liệu không gian: CNN được thiết kế đặc biệt để xử lý dữ liệu không giannhư ảnh và âm thanh Các lớp tích chập và gộp cho phép nó hiệu quả trong việctrích xuất thông tin từ các cấu trúc không gian này.

- Phân loại và nhận dạng tốt: CNN đã đạt được hiệu suất ấn tượng trong các nhiệm

vụ phân loại và nhận dạng Điều này bao gồm nhận biết khuôn mặt, phân loại đốitượng, dự đoán từ ảnh, và nhiều nhiệm vụ khác

- Tích hợp thông tin cục bộ: Các lớp tích chập trong CNN cho phép mạng tập trungvào việc xử lý thông tin cục bộ trong các phần nhỏ của dữ liệu ảnh Điều này giúpmạng nhận biết các đặc trưng cục bộ và tạo ra biểu diễn chất lượng cao

- Khả năng học tập sâu: CNN có thể được thiết kế với nhiều lớp và kích thước khácnhau, cho phép nó học các đặc trưng ngày càng phức tạp và sâu hơn Điều nàygiúp mạng học được các biểu diễn tổng hợp và trừu tượng từ dữ liệu ảnh

- Hiệu suất cao: Các mô hình CNN tiên tiến có khả năng đạt được hiệu suất rất caotrong các thách thức như các cuộc thi nhận dạng hình ảnh (ImageNet) và các ứngdụng thực tiễn như xe tự hành

- Số lượng tham số và tài nguyên tính toán: Các mạng CNN tiên tiến thường cóhàng triệu hoặc thậm chí hàng tỷ tham số Điều này đòi hỏi tài nguyên tính toánlớn để huấn luyện và triển khai, đặc biệt là trên các thiết bị có tài nguyên hạn chếnhư điện thoại di động

- Overfitting: Trong mạng CNN lớn, có nguy cơ mô hình bị overfitting, tức là môhình học quá nhiều từ dữ liệu huấn luyện và không tổng quát hóa tốt trên dữ liệumới Điều này có thể dẫn đến hiệu suất kém trên dữ liệu không nhìn thấy trước

- Dữ liệu huấn luyện hạn chế: Mạng CNN yêu cầu một lượng lớn dữ liệu huấn luyện

để học hiệu quả Nếu dữ liệu không đủ đa dạng hoặc không đại diện, mô hình cóthể không học được các biểu diễn tổng quát

- Chuẩn bị dữ liệu: Trước khi áp dụng CNN, dữ liệu thường cần phải được chuẩn bị

và tiền xử lý một cách cẩn thận, bao gồm việc thay đổi kích thước ảnh, chuẩn hóa

dữ liệu và loại bỏ nhiễu

Trang 13

- Khả năng biểu diễn không tốt cho dữ liệu không gian tương đối dài: Mạng CNNkhông thể hiệu quả biểu diễn thông tin về thứ tự và tương quan không gian dàihơn, chẳng hạn như các dãy thời gian dài.

1.2 Lớp tích chập – Convolution Layer

1.2.1 Khái niệm

- Lớp tích chập (Convolutional Layer) là một phần quan trọng trong mạng nơ-rontích chập (Convolutional Neural Network - CNN) Lớp tích chập chịu trách nhiệmcho việc tìm và trích xuất các đặc trưng cục bộ từ dữ liệu đầu vào, thường là hìnhảnh, bằng cách áp dụng phép tích chập

1.2.2 Bộ lọc (Filter hoặc Kernel)

- Đây là ma trận nhỏ chứa các trọng số được áp dụng lên vùng cục bộ của dữ liệuđầu vào (ví dụ: hình ảnh) Bộ lọc này có thể là một ma trận có kích thước nhỏ,chẳng hạn 3x3 hoặc 5x5

Trang 14

Hình 3 Hình ảnh 琀ch chập khác nhau khi áp dụng các Kernel khác nhau.

1.2.3 Bước di chuyển(Stride)

- Stride là số pixel thay đổi trên ma trận đầu vào Khi stride là 1 thì ta di chuyển cáckernel 1 pixel Khi stride là 2 thì ta di chuyển các kernel đi 2 pixel và tiếp tục nhưvậy Hình dưới là lớp tích chập hoạt động với stride là 2

Trang 15

Hình 4 Lớp 琀ch chập hoạt động với Stride là 2

- Đệm là việc thêm các giá trị 0 vào xung quanh dữ liệu đầu vào trước khi áp dụngphép tích chập Điều này giúp duy trì kích thước của dữ liệu sau khi đi qua lớp tíchchập

1.3 Lớp gộp – Pooling Layer

1.3.1 Khái niệm

- Lớp gộp (Pooling Layer) là một phần quan trọng trong kiến trúc của mạng nơ-ronsâu (deep neural networks), đặc biệt là trong các mạng nơ-ron tích chập(convolutional neural networks - CNNs), được sử dụng trong xử lý hình ảnh vàcác tác vụ liên quan đến dữ liệu lưới như dữ liệu âm thanh

1.3.2 Max Pooling

- Max pooling là một loại phép gộp được sử dụng trong mạng nơ-ron tích chập(CNN) và các kiến trúc liên quan Nó thường được áp dụng sau lớp tích chập đểgiảm kích thước của đầu vào và tạo ra các phiên bản đã tạo ra của đặc trưng cụcbộ

1.3.3 Average Polling

- Average Pooling là một phép tích chập thường được sử dụng trong mạng học sâu

và xử lý ảnh Nó là một phần quan trọng của các kiến trúc mạng thần kinh như

Trang 16

Convolutional Neural Networks (CNNs) để giảm kích thước của đặc trưng(feature maps) trong quá trình trích xuất thông tin từ hình ảnh.

- Ưu điểm chính của Average Pooling là nó giúp giảm kích thước của dữ liệu màvẫn giữ lại thông tin quan trọng Điều này có thể giúp làm giảm lượng tính toán vàgiảm overfitting trong quá trình huấn luyện mạng

1.3.4 Sum Pooling

- Sum Pooling là một phương pháp trong xử lý ảnh và mạng học sâu, được sử dụng

để giảm kích thước của feature maps trong quá trình trích xuất thông tin từ hìnhảnh Tương tự như Average Pooling và Max Pooling, Sum Pooling cũng là mộtloại phép gộp thông tin trong mạng neural

- Mục tiêu của Sum Pooling tương tự như các phương pháp gộp khác, đó là giảmkích thước của dữ liệu trong quá trình huấn luyện mạng, giảm lượng tính toán và

có thể giúp kiểm soát overfitting

1.4 Fully connected layer

1.4.2 Cách hoạt động của Fully Connected Layer

- Flattening: Trong ngữ cảnh của Convolutional Neural Networks (CNN), đầu ra từ

các tầng convolutional và pooling layers thường là một tensor 3D hoặc 4D Đểđưa chúng vào fully connected layers, cần phải làm phẳng (flatten) chúng thànhmột vector 1D Điều này thường được thực hiện trước khi các fully connectedlayers

- Weights and Biases: Mỗi neuron trong fully connected layers có một trọng số

(weight) tương ứng với mỗi kết nối đến neuron trong tầng trước đó Ngoài ra, mỗi

Trang 17

neuron còn có một bias Các trọng số và bias này là các tham số mạng neural đượchọc để tối ưu hóa hiệu suất mạng.

- Activation Function: Sau khi tính tổng trọng số đầu vào từ các neuron ở tầng

trước kết hợp với bias, đầu ra của neuron thường được đưa qua một hàm kích hoạtphi tuyến (như ReLU, Sigmoid, hoặc Tanh) để tạo ra đầu ra của tầng Hàm kíchhoạt này thêm tính phi tuyến tính vào tầng fully connected

Fully connected layers thường được sử dụng trong phần cuối cùng của mạng neural,sau khi thông tin đã được trích xuất và biểu diễn thông qua các lớp khác nhưconvolutional layers (cho xử lý dữ liệu hình ảnh) hoặc recurrent layers (cho xử lý dữliệu chuỗi thời gian)

Trang 18

CHƯƠNG 2: ỨNG DỤNG CNN TRONG NHẬN DIỆN KHUÔN MẶT

2.1 Giới thiệu bài toán

- Bài toán nhận diện khuôn mặt bằng mạng tích chập CNN (Convolutional NeuralNetworks) là một bài toán phổ biến trong lĩnh vực học sâu (Deep Learning) Mụctiêu của bài toán này là xây dựng một mô hình có khả năng xác định và nhận diệncác khuôn mặt có trong ảnh

- Trong bài toán này, ta sử dụng một bộ dữ liệu hình ảnh của các hình ảnh được cácthành viên của nhóm thu thập trên nhiều nguồn khác nhau để huấn luyện mô hình.Sau khi huấn luyện, mô hình có thể nhận diện và phân biệt những người có trongtệp dữ liệu huấn liệu trong hình ảnh mới

2.2 Xây dựng mô hình bài toán

Mô hình nhận dạng được chia thành 3 bước chính hình… bao gồm:

- Bước 1: Phát hiện khuôn mặt và tiền xử lý tạo tập dữ liệu

- Bước 2: Huấn luyện dữ liệu đưa vào

- Bước 3: Phân loại ảnh khuôn mặt dựa trên đặc trưng được trích chọn và đưa

ra kết quả

Hình 5: Sơ đồ quy trình của mô hình nhận diện khuôn mặt

Trang 19

- Ưu điểm của Python

o Cú pháp dễ đọc, dễ học: Python có cú pháp rất rõ ràng, dễ hiểu, gầngiống với ngôn ngữ tự nhiên, giúp người mới bắt đầu dễ dàng tiếpcận

o Đa năng: Python có thể được sử dụng cho nhiều mục đích khácnhau, bao gồm phát triển ứng dụng web, phát triển phần mềm, khoahọc dữ liệu, máy học, tự động hóa,

o Hiệu suất cao: Python có thể chạy nhanh và hiệu quả, ngay cả vớicác dự án lớn

o Môi trường phát triển tích hợp (IDE) mạnh mẽ: Python có nhiều IDEmạnh mẽ hỗ trợ lập trình viên phát triển và gỡ lỗi mã

- Lĩnh vực sử dụng của Python

o Phát triển ứng dụng web: Python là một lựa chọn phổ biến cho pháttriển ứng dụng web, nhờ vào các thư viện và khung công tác nhưDjango, Flask và Pyramid

o Phát triển phần mềm: Python có thể được sử dụng để phát triển tất cảcác loại phần mềm, từ ứng dụng máy tính để bàn đến ứng dụng diđộng

Trang 20

o Khoa học dữ liệu và máy học: Python là một ngôn ngữ phổ biến chokhoa học dữ liệu và máy học, nhờ vào các thư viện và khung côngtác như NumPy, SciPy và TensorFlow.

o Tự động hóa: Python có thể được sử dụng để tự động hóa các tác vụlặp đi lặp lại, chẳng hạn như kiểm tra phần mềm hoặc gửi email

2.3.1.2 Các thư viện

- OpenCV là một thư viện mã nguồn mở cho xử lý hình ảnh và thị giác máytính Thư viện này cung cấp một loạt các chức năng để xử lý hình ảnh,video và dữ liệu nhận dạng OpenCV được sử dụng rộng rãi trong nhiềulĩnh vực khác nhau, bao gồm: Xử lý hình ảnh, xử lý video, thị giác máytính,

- TensorFlow là một thư viện mã nguồn mở cho học máy Thư viện này cungcấp một nền tảng cho việc xây dựng và đào tạo các mô hình học máy.TensorFlow được sử dụng rộng rãi trong nhiều lĩnh vực khác nhau, baogồm: Học máy, trí tuệ nhân tạo, khoa học dữ liệu,

- Keras là một thư viện mã nguồn mở cho học máy Thư viện này cung cấpmột giao diện lập trình ứng dụng (API) đơn giản và dễ sử dụng để xây dựngcác mô hình học máy Keras được xây dựng trên nền tảng TensorFlow, vìvậy nó có thể tận dụng khả năng tính toán mạnh mẽ của TensorFlow

- PyCharm là một môi trường phát triển tích hợp (IDE) cho ngôn ngữ lậptrình Python IDE này được phát triển bởi JetBrains và được sử dụng rộngrãi bởi các lập trình viên Python trên toàn thế giới

- PyCharm cung cấp một loạt các tính năng và công cụ để giúp lập trình viênPython phát triển và gỡ lỗi mã của họ: Trình soạn thảo mã thông minh,

Trang 21

Trình quản lý dự án, Trình gỡ lỗi tích hợp, Hỗ trợ các thư viện và khungcông tác,

2.4 Tệp dữ liệu ban đầu

Hình 6: Hình ảnh cấu trúc sắp xếp các ảnh đã thu thập

Là các ảnh rgb của nhóm tìm kiếm và thu thâ ̣p lại từ các nguồn như Google image,Kaggle gồm những người: Bill Gates, Donald Trump, Elon musk, Markzukerberg,Messi, Obama, Ronaldo, Steve Jobs ngoài ra còn có ảnh của hai thành viên nhóm 14:Trần Xuân Vũ, Hoàng Anh Tú Ảnh được lưu vào thư mục datatrain và có cấu trúcnhư trên

Trang 22

Hình 7: Đoạn mã duyệt 昀椀le ảnh

Bước 2: Xác định khuôn mặt

Hình 8: Khởi tạo đối tượng CascadeClassi昀椀er của thư viện OpenCV

Hình 9: Xác định khuôn mặt trong từng 昀椀le ảnh khi duyệt

Bước 2.1: Tiền xử lý

Phương pháp thực hiện trên ảnh xám (gray image) Mỗi điểm ảnh (pixel) sẽ có giá trịmức xám từ 0 đến 255(không gian màu 8 bit) Như vậy phương pháp sẽ không khai

Ngày đăng: 29/03/2024, 22:22

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w