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

(Tiểu luận) đề tài nhận diện và phân biệt các loại phương tiện đểxếp xe vào bãi đỗ bệnh viện đại học y hà nội

73 5 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 đề Nhận Diện Và Phân Biệt Các Loại Phương Tiện Để Xếp Xe Vào Bãi Đỗ Bệnh Viện Đại Học Y Hà Nội
Tác giả Vũ Hiển Lan, Trịnh Thị Vân Anh, Trần Xuân Phong, Ngô Lê Thanh Tâm, Nguyễn Thùy Linh
Người hướng dẫn TS. Bùi Thị Hồng Nhung
Trường học Học viện Ngân Hàng
Chuyên ngành Trí Tuệ Nhân Tạo Trong Kinh Doanh
Thể loại bài tập lớn
Năm xuất bản 2022
Thành phố Hà Nội
Định dạng
Số trang 73
Dung lượng 29,26 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Trong thời đại công nghệ 4.0 hiện nay, trítuệ nhân tạo đã trở thành công cụ đặc biệt được con người ứng dụng vào thựctiễn để tăng năng suất làm việc và độ chính xác điển hình trong đó là

Trang 1

HỌC VIỆN NGÂN HÀNG KHOA HỆ THỐNG THÔNG TIN QUẢN LÝ

Trang 2

DANH SÁCH THÀNH VIÊN VÀ PHÂN CÔNG NHIỆM VỤ

đóng góp

1 Vũ Hiển Lan

(nhóm trưởng)

23A4050202 - Viết code cho bài

- Tổng hợp, chỉnh sửa và hoàn thiện hình thức, nội dung

- Tham gia quay video

- Tìm ảnh cho Xe ô tô

- Viết nội dung phần mã lệnh chương trình (mục 11) và phần thực hiện thay đổi một số chỉ tiêu và đánhgiá mô hình hình sau thay đổi

- Tìm ảnh cho bài Xe máy

- Viết nội dung phần mã lệnh chương trình (mục 5,6,7,8,9,10)

21%

3 Trần Xuân

Phong 23A4050297 - Tham gia quay video- Chỉnh sửa video

- Tìm ảnh cho xe cứu thương

- Viết nội dung phần mã lệnh chương trình (mục 1,2,3,4)

Trang 3

- Viết nội dung phần 3

Trang 4

MỤC LỤC

MỞ ĐẦU 6

PHẦN 1: XÁC ĐỊNH VẤN ĐỀ 7

I Giới thiệu chung về đơn vị sử dụng 7

II Thực trạng tồn tại của đơn vị sử dụng 7

PHẦN 2: PHÁT BIỂU BÀI TOÁN VÀ LÝ DO CHỌN BÀI TOÁN 8

I Phát biểu bài toán 8

II Lý do chọn bài toán 8

PHẦN 3: NỘI DUNG 9

I Giới thiệu bộ dữ liệu của nhóm 9

1 Xác định dữ liệu cần thu thập 9

2 Cách thức thu thập dữ liệu 11

II Tổng quan thuật toán sử dụng 13

1 Cơ sở sử dụng thuật toán CNN 14

2 Cấu trúc mạng CNN 15

3 Cách lựa chọn tham số CNN 17

III Mã lệnh chương trình 17

1 Khai báo thư viện sử dụng 17

2 Kết nối với Google drive để đọc và lưu dữ liệu 19

3 Khai báo đường dẫn thư mục chứa dữ liệu ảnh 21

4 Gán nhãn cho các dữ liệu ảnh 21

5 Tiền xử lý dữ liệu ảnh với ImageDataGenerator 22

6 Đọc dữ liệu Train và Validation 23

7 Xây dựng mô hình 24

8 Thiết lập các tham số để huấn luyện mô hình 29

9 Huấn luyện mô hình 31

10 Sử dụng mô hình 34

11 Đánh giá độ chính xác của mô hình 35

IV Thực hiện thay đổi một số chỉ tiêu và đánh giá mô hình sau khi thay đổi 48

1 Thực nghiệm chuẩn hóa kích thước ảnh 48

2 Bổ sung thêm một lớp mạng CNN, thay đổi số lượng và kích thước bộ lọc 49

3 Thay đổi tham số Optimizers 51

4 Thay đổi giá trị số vòng lặp chạy mô hình EPOCHS 53

5 Kết quả mô hình sau khi thay đổi 54

Trang 5

TÀI LIỆU THAM KHẢO 70

Trang 6

MỞ ĐẦU

Trí tuệ nhân tạo (tiếng anh là Artificial Intelligence), viết tắt là AI hoặc trítuệ thông minh nhân tạo Đây là một lĩnh vực của khoa học máy tính, mô phỏngcác quá trình suy nghĩ và học tập của con người cho máy móc, có thể hoạt động

và phản ứng như con người Trí tuệ nhân tạo này do con người lập trình ra vớimục đích tự động hóa các hành vi của con người nhằm cắt giảm bớt nhân côngnhưng vẫn đạt được hiệu quả tối ưu Trong thời đại công nghệ 4.0 hiện nay, trítuệ nhân tạo đã trở thành công cụ đặc biệt được con người ứng dụng vào thựctiễn để tăng năng suất làm việc và độ chính xác điển hình trong đó là ứng dụngthị giác máy tính

Thị giác máy tính (Computer vision) là một lĩnh vực khoa học liên ngànhliên quan đến việc làm thế nào để máy tính có thể đạt được sự hiểu biết ở mứccao từ hình ảnh hoặc video kỹ thuật số Bao gồm các phương pháp thu nhận, xử

lý hình ảnh, kỹ thuật phân tích và nhận dạng các hình ảnh cuối cùng đưa rađược các thông tin Đây là một lĩnh vực đã và đang phát triển mạnh mẽ trên thếgiới, được ứng dụng ở đa dạng các lĩnh vực như: kinh doanh, tài chính, ngânhàng, ý tế, dịch vụ…Mặt khác việc nghiên cứu và phát triển các ứng dụng về thịgiác máy tính mở ra nhiều tiềm năng cũng như khả năng ứng dụng khoa họccông nghệ vào thực tiễn trên thế giới nói chung và Việt Nam nói riêng Chính vìmục tiêu đó, nhóm chúng em đã chọn nhận diện hình ảnh làm chủ đề nghiên

cứu cho bài tập lớn Cụ thể là: “Nhận diện và phân biệt các loại phương tiện

để xếp xe vào bãi đỗ Bệnh viện Đại học Y Hà Nội”

Trang 7

nahan tạo… 100% (1)

10

Bài thi cuối kì ttnt Trí tuệ nhân tạotrí tuệ

-nahan tạo… 100% (1)

21

Trí tuệ nhân tạo trong kinh doanh -…trí tuệ

nahan tạo… 100% (1)

22

Chương 3 - Hướng dẫn cài đặt…

trí tuệ

nahan tạo… 100% (1)

8

Trang 8

PHẦN 1: XÁC ĐỊNH VẤN ĐỀ

I Giới thiệu chung về đơn vị sử dụng

Bệnh viện Đại học Y Hà Nội được thành lập vào ngày 16/01/2007 theoQuyết định số 137/QĐ- BYT của Bộ Y Tế và chính thức đi vào hoạt động ngày19/09/2007 Vào những năm đầu thành lập cơ sở vật chất của bệnh viện còn sơsài với quy mô 150 giường bệnh, 4 phòng chức năng, 2 khoa lâm sàng, 5 khoacận lâm sàng và hơn 150 cán bộ viên chức Sau hơn 15 năm đi vào hoạt động,bệnh viện đã có tổng 419 giường bệnh và 1000 cán bộ viên chức là các Giáo sư,Phó Giáo sư, Tiến sĩ

Hiện nay, Bệnh viện Đại học Y Hà Nội trực thuộc Trường Đại học Y HàNội, là cơ sở thực hành của trường nên hai bên có sự gắn kết chặt chẽ về côngtác đào tạo cũng như nghiên cứu khoa học Tiếp nhận khám chữa gần 500.000trường hợp hằng năm và 3000 lượt khám mỗi ngày đã cho thấy sự uy tín và mức

độ tin tương của người bệnh tại đây

Ban giám đốc gồm:

Phó Giáo sư, Tiến sĩ Nguyễn Lân Hiếu: Giám đốc Bệnh viện

Thạc sĩ Nguyễn Thanh Bình: Phó giám đốc

Địa chỉ: Số 1 Tôn Thất Tùng, Trung Tự, Đống Đa, Hà Nội

Điện thoại: 024 3574 7788

Email: benhviendaihocyhanoi@hmuh.vn

Website: benhviendaihocyhanoi.com

II Thực trạng tồn tại của đơn vị sử dụng

Bệnh viện Đại học Y Hà Nội nằm trên một con đường nhỏ khu vực phốTôn Thất Tùng - nơi có lưu lượng giao thông ùn tắc hàng ngày Bên cạnh đó,đây là địa điểm khám bệnh của hàng ngàn bệnh nhân, cũng như là nơi học tậpcủa sinh viên Đại học Y Hà Nội nên tần suất xe cộ đi lại, dừng vào bãi đỗ rấtđông Chính vì thế, bãi trông giữ xe luôn hoạt động tấp nập và lộn xộn Vào

19.Lê Thị Minh Hiềntrí tuệ

Trang 9

những giờ cao điểm, các loại phương tiện không có sự phân luồng gây ra tìnhtrạng ùn tắc, thậm chí còn lấn chiếm lòng lề đường, vỉa hè để gửi xe Điều đógây ảnh hưởng xấu đến môi trường sống của người dân và an toàn giao thôngkhông được đảm bảo và khiến việc quản lý trông xe ở bệnh viện trở nên khókhăn, mất nhiều thời gian

PHẦN 2: PHÁT BIỂU BÀI TOÁN VÀ LÝ DO CHỌN BÀI TOÁN

I Phát biểu bài toán

Được xây dựng và đi vào hoạt động trong suốt 15 năm qua nên uy tín và

độ chuyên nghiệp của Bệnh viện Đại học Y Hà Nội là điều không thể phủ nhận

Là cơ sở thực hành tốt của trường đại học chuyên ngành y lâu đời và uy tín nhất

cả nước, cũng là cơ sở y tế với chất lượng dịch vụ cao, thái độ phục vụ tận tâmnên phía Bệnh viện luôn nỗ lực phấn đấu ngày một phát triển trong mọi hoạtđộng Không chỉ chú trọng vào chất lượng khám bệnh, Bệnh viện luôn mongmuốn đem lại cho người bệnh những trải nghiệm tốt nhất Việc phân luồng xe

cộ vào bãi đỗ đang là vấn đề được quan tâm lúc này Nắm bắt được vấn đề tồntại trên, Trí tuệ nhân tạo đã và đang góp phần cải thiện, thay đổi trong việc nhậndiện các loại phương tiện để phân loại vào khu vực để xe một cách thuận tiện vàhợp lý nhất

Trong quá trình học tập môn Trí tuệ nhân tạo trong kinh doanh, sinh viênđược tiếp cận ba ứng dụng AI vào thực tiễn: Xây dựng mô hình dự báo, dựđoán; Xây dựng Chatbot; Nhận dạng hình ảnh Để chứng minh cụ thể cho giảipháp ứng dụng “Nhận dạng hình ảnh”, nhóm em đã đi sâu nghiên cứu và đưa ra

bài toán “nhận diện và phân biệt các loại phương tiện để xếp xe vào bãi đỗ Bệnh viện Đại học Y Hà Nội”

II Lý do chọn bài toán

Bệnh viện Đại học Y Hà Nội là bệnh viện đa khoa Hạng I trực thuộc Bộ

Y Tế Hà Nội Với đầy đủ các chuyên khoa, bệnh viện cung cấp đến người bệnh

Trang 10

các dịch vụ thăm khám và điều trị bệnh toàn diện Trình độ và tính chuyênnghiệp của đội ngũ y bác sĩ ngày càng được nâng cao Chính vì thế, Bệnh việnkhông mong muốn chỉ vì vấn đề gửi xe không đáng có mà gây ảnh hưởng xấuđến Bệnh viện cũng như mang lại trải nghiệm không hài lòng cho người bệnh.

Do đó, việc áp dụng Trí tuệ nhân tạo (AI) để thực hiện nhận diện và phânbiệt các loại phương tiện để xếp xe vào bãi đỗ là một trong những giải pháp màBệnh viện có thể xem xét và triển khai để tiết kiệm thời gian, hạn chế các rủi rotrong quá trình thăm khám của bệnh nhân Ứng dụng này sẽ giúp cho Bệnh việngiám sát và quản lý việc để xe đúng nơi, đúng chỗ, từ đó giảm thiểu tình trạng

ùn tắc, chen lấn, lộn xộn trong khâu xếp xe trong bãi đỗ

Trang 11

Hình ảnh xe đạp nhóm thu thập

Hình ảnh xe cứu thương nhóm thu thập

Hình ảnh xe ô tô nhóm thu thập

Hình ảnh xe máy nhóm thu thập

Trang 12

Hình ảnh xe máy nhóm thu thập

2 Cách thức thu thập dữ liệu

- Nguồn thu thập ảnh: Thu thập hình ảnh 5 loại phương tiện từ các trang web

hình ảnh như Google hình ảnh, Pinterest, Pexels, và trên mạng xã hội Facebookvới các từ khóa tìm kiếm với từng loại xe là:

+ Đối với xe ô tô: xe con, xe con 4 chỗ, xe con 7 chỗ, xe ô tô thể thao, xe ô tô điện+ Đối với xe đạp: xe đạp, xe đạp leo núi, xe đạp thống nhất, xe đạp gấp, xe đạpkhông phanh, xe đạp biểu diễn, xe đạp địa hình, bike, bicycle, xe đạp đườngphố, xe đạp thể thao, xe đạp trẻ em, xe đạp đôi, xe đạp 3 bánh

+ Đối với xe đạp điện: xe đạp điện, xe đạp điện Vinfast, xe đạp điện Asama,electric bicycle

+ Đối với xe máy: xe tay ga, xe số, xe Honda, xe ga Vision, xe máy Wave, xe tay

Trang 13

+ Bộ dữ liệu hình ảnh thu thập phải được lấy từ nhiều góc độ chụp khác nhau baogồm: góc chụp từ trái sang, góc chụp từ phải sang, góc chụp từ trên xuống, gócchụp đằng sau xe, góc chụp đằng trước xe, góc chụp chéo.

- Cách thức thu thập: Để tiến hành nhận dạng hình ảnh phương tiện di chuyển

thì bộ dữ liệu của nhóm gồm 5 lớp: xe ô tô, xe máy, xe đạp, xe đạp điện và xecứu thương Và để dễ dàng chạy mô hình trong Google Colab thì các thành viêntrong nhóm đã lên Google tập trung tải các ảnh của từng tập dữ liệu với địnhdạng JPG về rồi phân chia nhóm và tải thư mục lên Google Drive

- Số lượng thu thập: 1515 hình ảnh, trong đó:

+ 1000 ảnh trong tập TRAIN ( 200 ảnh Train/1 loại xe)

+ 500 ảnh trong tập VALIDATION (100 ảnh Validation/ 1 loại xe)

+ 15 ảnh trong tập TEST (3 ảnh Test/1 loại xe)

- Cách thức tổ chức dữ liệu:

Bộ dữ liệu được lưu trong thư mục” Ảnh_Nhóm 15” trên GOOGLEDRIVE:

Trong thư mục “Ảnh_Nhóm 15”, nhóm em chia ra làm ba tập nhỏ khác

đó là “ Train”, “Validation” và “Test”

Trong mỗi tập “ Train”, “ Test” và “ Validation” sẽ đều gồm 5 thư mụcnhỏ tương ứng với 5 loại xe là thư mực “ ô tô”, “ xe cứu thương”, “ xe đạp”, “

xe đạp điện”, “ xe máy”

Trang 14

II Tổng quan thuật toán sử dụng

Chương trình sẽ được xây dựng và thực hiện thông qua ứng dụng GoogleCollab - một sản phẩm từ Google Research, nó cho phép chạy các dòng codePython thông qua trình duyệt Đây là một service dựa trên Jupyter Notebooks,không cần thiết lập và hỗ trợ GPU miễn phí Bài toán được xử lý bằng ngôn ngữlập trình Python và sử dụng các thư viện Tensorflow, Numpy, Keras Trong đó,Tensorflow là một thư viện dạng nguồn mở được sử dụng rất phổ biến tronglĩnh vực học máy giúp gia tăng tốc độ nhanh chóng và dễ dàng hơn; Keras là

Trang 15

hình học sâu; Numpy là một thư viện toán học phổ biến và mạnh mẽ của Pythoncho phép làm việc hiệu quả với ma trận và mảng Thuật toán được sử dụng làCNN - Convolutional Neural Network (Mạng nơ-ron tích chập) - một phươngpháp phổ biến nhất hiện nay có độ chính xác rất cao trong việc thực hiện nhậndạng hình ảnh, khuôn mặt Đây được xem là một trong những mô hình củamạng Học sâu (Deep Learning) - tập hợp các thuật toán để có mô hình dữ liệutrừu tượng hóa ở mức cao bằng cách xử lý dữ liệu thông qua nhiều lớp mảng.

1 Cơ sở sử dụng thuật toán CNN

Để dạy cho trẻ em cách để nhận diện cho một con vật thông qua hình ảnh,chúng ta cần phải cung cấp nhiều hình ảnh, âm thanh, đặc điểm đặc trưng… củacon vật đó để giúp trẻ em ghi nhớ được và có thể nhận ra chúng Tương tự nhưvậy, để dạy cho máy có thể nhớ - hiểu - vận dụng, chúng ta cần cung cấp chothuật toán học rất nhiều hình ảnh về đối tượng mà chúng ta nghiên cứu trước khi

nó đưa ra được dự đoán về hình ảnh đầu vào Mặc dù hình ảnh trong thế giớicủa máy tính được biểu diễn dưới các con số, hay còn được gọi là pixel; chúng

ta vẫn có thể dạy cho máy tính cách nhận diện như con người

Để thực hiện thuật toán nhận diện đối tượng trong hình ảnh, ta sử dụngMạng Nơ-ron Nhân tạo (Artificial Neural Network): Convolutional NeuralNetwork (CNN - Mạng nơ-ron tích chập) CNN là một phương pháp phổ biếnnhất hiện nay có độ chính xác rất cao trong việc thực hiện nhận dạng hình ảnh,khuôn mặt Đây được xem là một trong những mô hình của mạng Học sâu( Deep Learning) - tập hợp các thuật toán để có mô hình dữ liệu trừu tượng hóa

ở các mức cao bằng cách xử lý dữ liệu thông qua nhiều lớp mảng Nó bao gồmcác phần tử đơn giản hoạt động song song được nối với nhau bằng các liên kết

có trọng số để kích thích hoặc ức chế giữa các nơ- ron Kiến trúc của nơ-rontích chập tương tự như mô hình kết nối của các nơ-ron trong bộ não con người

và được lấy cảm hứng từ hệ thống vỏ thị giác trong bộ não

Trang 16

CNN sẽ so sánh hình ảnh theo từng mảnh (Feature) Mỗi feature được coi

là một hình ảnh mini và sẽ tương ứng với khía cạnh nào đó của bức ảnh; từ đóchúng được khớp lại với nhau

2 Cấu trúc mạng CNN

CNN bao gồm các lớp cơ bản liên kết với nhau theo một thứ tự nhất định:lớp tích chập (Convolutional); lớp kích hoạt phi tuyến ( Non Linearity); lớp lấymẫu (Pooling); lớp kết nối đầy đủ ( Fully connected) Thông thường, một ảnh sẽđược lan truyền qua lớp tích chập + lớp kích hoạt phi tuyến đầu tiên, sau đó cácgiá trị tính toán được sẽ lan truyền qua lớp lấy mẫu, bộ ba lớp tích chập + lớpkích hoạt phi tuyến và lớp lấy mẫu có thể được lặp lại nhiều lần trong mạng Vàsau đó được lan truyền qua kết nối đầy đủ để tính xác suất ảnh đó chứa vật thểgì

Trang 17

không gian hiệu quả, đồng thời, thể hiện sự liên kết cục bộ thay vì kết nối toàn

- Lớp kích hoạt phi tuyến ( Nonlinearity ) : sử dụng các hàm kích hoạt phi tuyến

như ReLU hoặc sigmoid, tanh… để giới hạn phạm vi biên độ cho phép tính củagiá trị đầu ra Trong số các hàm kích hoạt này, hàm ReLU được chọn do cài đặtđơn giản, tốc độ xử lý nhanh mà vẫn đảm bảo được tính toán hiệu quả (Phéptính toán của hàm ReLU chỉ đơn giản là chuyển tất cả các giá trị âm thành giátrị 0)

● Lớp ReLU được áp dụng ngay phía sau lớp tích chập, với đầu ra là một ảnh mới

có kích thước giống với ảnh đầu vào, các giá trị điểm ảnh cũng hoàn toàn tương

tự, trừ các giá trị âm đã bị loại bỏ

- Lớp lấy mẫu ( Pooling Layer ) : Được đặt sau lớp tích chập và lớp ReLU để

làm giảm kích thước ảnh đầu ra trong khi các thông tin quan trọng của ảnh đầuvào vẫn được giữ nguyên, giúp giảm được số lượng tham số cũng như tăng hiệuquả tính toán

Trang 18

Trong đó:

Max pooling: Giá trị điểm lớn nhất của ảnh

Average pooling: Giá trị trung bình của các điểm ảnh trong vùng ảnh cục bộ

- Lớp kết nối đầy đủ ( Fully Connected Layer ) : Tại đây, các neurol sẽ liên kết

với nhau, giúp chuyển ma trận đặc trưng ở lớp trước thành vector chứa xác suấtcủa đối tượng cần được dự đoán

3 Cách lựa chọn tham số CNN

Khi lựa chọn tham số phù hợp cho thuật toán CNN, chúng ta cần quantâm đến : filter size ( kích thước bộ lọc ), pooling size ( kích thước gộp lại ),Train - Test ( huấn luyện - kiểm tra )

● Filter size : Thông thường, chúng ta sẽ lấy kích thước của bộ lọc là 3x3 hoặc5x5

● Pooling size : Nếu đầu vào là các ảnh thông thường thì chúng ta sử dụng kíchthước 2x2 Nếu đầu vào là hình ảnh lớn hơn thì nên sử dụng kích thước 4x4

● Train - Test : Chúng ta cần cho mô hình thực hiện huấn luyện và kiểm tra nhiềulần để có thể thu được bộ tham số tốt nhất

Trang 19

III Mã lệnh chương trình

1 Khai báo thư viện sử dụng

Đầu tiên, chúng ta cần import các thư viện cần thiết cho bài toán:

- Từ khóa import dùng để cài đặt thư viện.

- Từ khóa as dùng để đặt tên viết tắt cho thư viện

- TensorFlow là một thư viện có mã nguồn mở, được dùng để tính toán số

học sử dụng đồ thị luồng dữ liệu, giúp ta tiền xử lý các dữ liệu, ngoài ra thưviện còn kết hợp với các API khác nhau để xây dựng kiến trúc học sâu ởquy mô lớn như CNN giúp ta dễ dàng nhận diện hình ảnh

Kiến trúc TensorFlow hoạt động được chia thành 3 phần (Tiền xử lý dữ liệu,Dựng model, Train và ước tính model)

Có thể thấy, tensorflow là framework phổ biến nhất Tuy nhiên, tensorflowkhá khó sử dụng cho người mới bắt đầu nên có thể sẽ sử dụng keras để thaythế vì nó dễ sử dụng, thân thiện với người dùng nhưng đủ tốt để làm các bàitoán về deep learning

- Keras là một framework mã nguồn mở cho deep learning được viết bằng

Python Nó giúp việc thể hiện mạng nơ-ron dễ dàng hơn cùng với việc cungcấp một số tiện ích tốt nhất để biên dịch mô hình, xử lý tập dữ liệu, trực quanhóa đồ thị và hơn thế nữa nó giúp cho chúng ta tiếp cận sâu đến xây dựngCNN Sequential model

- Matplotlib.pyplot là một thư viện vẽ đồ thị rất mạnh mẽ hữu ích khi làm việc

với Python và Numpy

- Pyplot là một module của Matplotlib cung cấp các hàm đơn giản để thêm các

thành phần plot như lines, images, text, v.v vào các axes trong figure

- Numpy: là một thư viện Python mạnh mẽ, chủ yếu được sử dụng để thực hiện

Trang 20

các tính toán trên các mảng đa chiều, cho phép làm việc hiệu quả với ma trận

và mảng với tốc độ xử lí nhanh, giúp ta phân tích và xử lí dữ liệu ảnh

Ở đây chúng ta import Matplotlib Pyplot module và thư viện Numpy vì hầuhết các dữ liệu mà ta sẽ làm việc sẽ chỉ ở dạng mảng

2 Kết nối với Google drive để đọc và lưu dữ liệu

- Đầu tiên, chúng ta sẽ cho chạy đoạn code sau để giúp Google Colab kết nốiđược với Google Drive lấy dữ liệu

- Sau đó, khi tiến hành chạy code thì sẽ thu được kết quả như hình dưới:

- Chọn “Kết nối với Google Drive” và màn hình hiển thị như sau:

Trang 21

- Click chọn email có đường dẫn của tệp dữ liệu cần chọn(hienlan278@gmail.com)

- Sau khi đã đăng nhập và ấn cho phép thì cửa sổ sẽ hiện ra dòng code sau:

Trang 22

Như vậy, chúng ta đã chạy thành công bước kết nối Google Drive vớiGoogle Colab để đọc dữ liệu

3 Khai báo đường dẫn thư mục chứa dữ liệu ảnh

- Chúng ta sẽ thực hiện đoạn code sau để khai báo đường dẫn đến thư mục chứaảnh để huấn luyện và kiểm định mô hình

- Module os trong Python cho phép chúng ta làm việc với các tập tin, thư mục

và cung cấp các chức năng được sử dụng để tương tác với hệ điều hành vàcũng có được thông tin liên quan về nó

Cụ thể, trong bài thì chúng ta sẽ thực hiện cài đặt thư viện để kết nối,khai báo đường dẫn đến tệp dữ liệu Train và Validation trong file Data để thựchiện việc huấn luyện và kiểm định mô hình

4 Gán nhãn cho các dữ liệu ảnh

Gán nhãn dữ liệu là quá trình gắn trường ý nghĩa cho các loại dữ liệu kỹthuật số khác nhau như tệp âm thanh, văn bản, hình ảnh, video và nhiều nữa.Việc phân loại ảnh chính là bài toán học có giám sát, vì vậy việc gán nhãn chocác dữ liệu huấn luyện và kiểm định là quan trọng Những hình ảnh được gánnhãn dựa trên tên thư mục có chứa nó Tên và thứ tự các nhãn sẽ tương ứng vớitên và thứ tự các thư mục ảnh huấn luyện và kiểm định

Ở đây, chúng ta gán nhãn cho tệp dữ liệu của mình thành 5 nhãn: ['Ô tô','Xe cứu thương' 'Xe đạp' 'Xe đạp điện' 'Xe máy', , , ]

Trang 23

5 Tiền xử lý dữ liệu ảnh với ImageDataGenerator

Tiền xử lý dữ liệu là một bước rất quan trọng trong việc giải quyết bất kỳvấn đề nào trong lĩnh vực Học Máy Hầu hết các bộ dữ liệu được sử dụng trongcác vấn đề liên quan đến Học Máy cần được xử lý, làm sạch và biến đổi trướckhi một thuật toán Học Máy có thể được huấn luyện trên những bộ dữ liệu này

Tham số rescale = 1/255 có tác dụng chuẩn hóa dữ liệu ảnh về các giá trị

nằm trong khoảng [0,1]

Vì máy tính “nhìn” theo cách khác con người Trong thế giới của máytính chỉ có con số Mỗi hình ảnh có thể được biểu diễn dưới dạng mảng 2 chiềunhững con số được gọi là pixel Một file ảnh JPG được lưu trong máy tính dướidạng một ma trận dữ liệu số có giá trị trong khoảng [0, 255]

Cụ thể, để biểu diễn một bức ảnh 256x256 pixel trong máy tính thì ta cần

ma trận có kích thước 256x256 chiều, mỗi phần tử trong ma trận có giá trị nằmtrong khoảng từ 0 đến 255 Tùy thuộc vào bức ảnh là màu hay ảnh xám thì matrận này sẽ có số kênh tương ứng Ví dụ với ảnh màu 256x256 RGB, chúng ta

sẽ có 3 ma trận 256x256 để biểu diễn ảnh này, với ảnh xám 256x256, chúng ta

sẽ có 1 ma trận 256x256 để biểu diễn

Trang 24

6 Đọc dữ liệu Train và Validation

- Target_size dùng để biến đổi các ảnh huấn luyện về cùng một kích thước để từ

đó máy tính có thể đọc được dữ liệu ảnh Ở đây, ta đổi toàn bộ dữ liệu ảnh vềcùng 1 kích thước là [50x50]

- Sau khi ảnh được biến đổi về cùng một kích thước, ta tiến hành phân loại cácảnh thành các lớp tương ứng

Ta thu được kết quả:

Trang 25

Trong bài này, dữ liệu ảnh được phân thành 5 lớp tương ứng với 5 dữliệu ảnh được gán nhãn: Ô tô, Xe cứu thương, Xe máy, Xe đạp điện, Xe đạp.

Mô hình đọc được 1000 ảnh Train và 500 ảnh Validation

7 Xây dựng mô hình

Mô hình gồm 5 lớp: Input image → CNN1 → CNN2 → Fullyconnected layer → Output

Trang 26

Convolutional Neural Network (CNNs – mạng nơron tích chập) là mộttrong nhữ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 lĩnh vực nhận dạng các vật thể trong ảnh và phân loạihình ảnh

Kỹ thuật sử dụng cho bài toán là Convolution (tích chập): từng giá trị của

ma trận đầu

vào nhân tương ứng với ma trận kernel (bộ lọc) rồi cộng tổng lại, đưa quaactivation function (hàm kích hoạt) và cho ra kết quả là một con số cụ thể, tậphợp các con số này lại là một ma trận, chính là feature map (đầu ra của ảnh)

- Tầng CNN1

Conv2D: sử dụng tích chập 2D vì đầu vào là một ma trận 2 chiều

Conv2D (32, (3,3)): là convolution dùng để lấy feature (đặc điểm) từ ảnh với

các tham số:

+ F=32: số kernel (bộ lọc) của convolution là 32 Với mỗi kernel (bộ lọc) khác

nhau sẽ học được những feature (đặc điểm) khác nhau của ảnh, do đó tầngCNN1 sử dụng 32 bộ lọc để học được nhiều đặc trưng của ảnh (ví dụ biênngang, biên dọc…) Vì mỗi bộ lọc cho ra đầu ra là 1 ma trận nên “k” bộ lọc sẽ

Trang 27

cho ra “k” ma trận đầu ra Ta sẽ kết hợp (tính tổng) “k” ma trận đầu ra này lạithành 1 ma trận đầu ra duy nhất.

+ k=3: kích thước ma trận kernel (bộ lọc) là 3x3 Các trọng số của các bộ lọc này

được khởi tạo ngẫu nhiên trong lần đầu tiên, trong quá trình huấn luyện mạng(training), CNN sẽ tự động học và tìm ra trọng số tối ưu cho ma trận kernel

+ s=1: bước trượt giữa 2 kernel khi quét là 1 (bộ lọc dịch sang phải/ xuống dưới 1

cột/hàng mỗi một lần trượt) cho đến khi nó đi qua hết tất cả các vùng kích thước3×3

Ở đây, không nói rõ padding bằng bao nhiêu nhưng quan sát ảnh đầu vào

và các ảnh đầu ra sau khi lọc có kích thước bằng nhau (200x200) thì suy ra làpadding = “SAME”

+ activation='relu': hàm kích hoạt ReLU: f(x) = max(0,x)

Hàm kích hoạt ReLU (Rectified Linear Unit) đơn giản là lọc các giá trịnhỏ hơn 0 Tức là khi ma trận kernel quét qua ma trận đầu vào, nhân tương ứngtừng giá trị của ma trận đầu vào với ma trận kernel rồi cộng tổng lại, đưa kếtquả qua hàm kích hoạt ReLU ta thu được một giá trị của feature map Nếu kếtquả âm thì giá trị thu được là 0, nếu kết quả dương thì giá trị thu được lấy chínhkết quả đó Tập hợp các giá trị thu được chính là feature map

+ input_shape = (50,50,3): tầng CNN 1 kết nối với đầu vào nên phải mô tả rõ

thông tin của đầu vào:

Các ảnh huấn luyện có kích thước 50x50 pixel thì tương ứng đầu vào là một matrận 50x50 và giá trị mỗi điểm ảnh là một ô trong ma trận

Vì là ảnh màu nên chúng ta sẽ có 3 ma trận để biểu diễn ảnh này

=> Tầng CNN1: mỗi bộ lọc (3x3) trượt trên ma trận đầu vào (50x50x1) thì

output là một feature map (50x50x1) Vì vậy 32 bộ lọc sẽ cho ra output là conv1 feature maps có size (50x50x32)

MaxPooling2D (2,2): Lớp Pooling được sử dụng giữa các lớp convolutional để

đơn giản hóa thông tin đầu ra (giảm kích thước ma trận) nhưng vẫn giữ được

Trang 28

các thuộc tính quan trọng Lớp MaxPooling2D lấy giá trị lớn nhất trong mộtPooling window, cửa sổ này trượt qua từng giá trị của ma trận dữ liệu (conv1feature maps) và chọn ra giá trị lớn nhất từ các giá trị nằm trong cửa sổ trượt Hầu hết khi dùng pooling layer thì sẽ dùng cửa sổ trượt size=(2,2), bước dịchchuyển stride=2 Khi đó kích thước của dữ liệu sẽ giảm đi một nửa.

+ k=2: Kích thước Pooling window là 2x2

+ s=2: Với kích thước Pooling window là 2x2, stride=2 để đảm bảo các cửa sổ

Trang 29

⇒ Tầng CNN2: mỗi bộ lọc (3x3) trượt trên pool1 feature maps (25x25x32) thì

output là một feature map (25x25x1) Vì vậy 64 bộ lọc sẽ cho ra output là Conv2 feature maps có size (25x25x64).

MaxPooling2D (2,2): Cũng tương tự như ở lớp CNN1.

+ k=2: Kích thước Pooling window là 2x2.

+ s=2: Với kích thước Pooling window là 2x2, stride=2 để đảm bảo các cửa sổ

không trùng nhau

⇒ Qua lớp MaxPooling kích thước của dữ liệu sẽ giảm đi một nửa Từ input

là conv2 feature maps (25x25x64), output sẽ là pool2 feature maps (13x13x64)

- Flatten: chuyển dữ liệu đầu ra của mạng CNN từ mảng 2 chiều về mảng 1

chiều

Sau khi ảnh được truyền qua nhiều lớp CNN thì mô hình đã học được cácđặc điểm của ảnh, khi đó output của lớp CNN cuối cùng là một ma trận, sẽ đượcchuyển về 1 vector một chiều

Trang 30

- Lớp ẩn:

Dense thể hiện một lớp kết nối đầy đủ (fully connected layer), tức toàn bộ

các unit của layer trước đó được nối với toàn bộ các unit của layer hiện tại.Dense bằng 512 thể hiện việc chỉ có 512 unit ở layer này (đầu ra của linearregression trong trường hợp này bằng 512)

- Lớp Output:

Sử dụng hàm softmax trong lớp cuối cùng của bộ phân loại dựa trênmạng Nơron Softmax được sử dụng để đa phân loại trong mô hình hồi quylogistic

8 Thiết lập các tham số để huấn luyện mô hình

Hàm Compile (Ta sẽ thiết Lập Các Tham Số Để Huấn Luyện Mô Hình)

- Optimizers - thuật toán tối ưu:

Thuật toán tối ưu là cơ sở để xây dựng mô hình neural network với mụcđích "học" được các tính năng (mẫu) - features (pattern) của dữ liệu đầu vào(import), từ đó có thể tìm 1 cặp weights và bias phù hợp để tối ưu hóa model.Trong thuật toán huấn luyện mô hình này, ta sẽ

sử dụng RMSprop hoặc 'adam' hoặc 'sgd' Cụ thể là ta sẽ cho

Optimizer=RMSprop(learning_rate=0,001)

Trang 31

- RMSprop là một thuật toán tối ưu hóa được thiết kế cho mạng nơ-ron, giúp giải

quyết các vấn đề tỷ lệ học giảm dần của Adagrad bằng cách chia tỷ lệ học chotrung bình của bình phương gradient

Ưu điểm: Ưu điểm rõ nhất của RMSprop là giải quyết được vấn đề tốc

độ học giảm dần của Adagrad (vấn đề tốc độ học giảm dần theo thời gian sẽkhiến việc training chậm dần, có thể dẫn tới bị đóng băng)

Nhược điểm: Thuật toán RMSprop có thể cho kết quả nghiệm chỉ là

local minimum mà không phải là global minimum như Momentum

=> RMSprop là trình tối ưu hóa tốt, nhanh và rất phổ biến giúp mô hình củabạn hội tụ nhanh hơn

- Learning rate (lr): dạng float, tốc độc học, chọn phù hợp để hàm số hội tụnhanh

Tốc độ học là một siêu tham số sử dụng trong việc huấn luyện các mạng

nơ ron Giá trị của nó là một số dương, thường nằm trong khoảng giữa 0 và 1.Chúng ta cần phải kiểm tra và điều chỉnh với từng mô hình trước khi biết chínhxác giá trị cần đặt cho nó, thường phổ biến trong khoảng 0,01 đến 0,0001 Tốc độ học kiểm soát tốc độ mô hình thay đổi các trọng số để phù hợpvới bài toán Tốc độ học lớn giúp mạng nơ ron được huấn luyện nhanh hơnnhưng cũng có thể làm giảm độ chính xác Khi đặt tỷ lệ học tập cao hơnkhoảng trên, thuật toán không hội tụ được vì bước nhảy quá lớn, khiến nó cứquẩn quanh ở đích

Learning_rate là tùy chọn Nếu chúng ta không đặt nó một cách rõràng, thì tốc độ học tập mặc định mà Keras đã chỉ định cho trình tối ưu hóa

cụ thể này sẽ được đặt Quan sát trình tối ưu hóa (optimizer), chúng ta có thểtùy chọn tỷ lệ học tập của mình bằng cách chỉ định tham số learning_rate.Trong mô hình này ta có (lr = 0.001)

Trang 32

- Loss: Quy trình huấn luyện mạng nơron nhân tạo bắt đầu bằng việc chúng ta

đưa mô hình dữ liệu, tiếp theo dự đoán sẽ được đưa ra và chúng ta phản hồi

về độ chính xác của dự đoán đó Dựa trên phản hồi, mô hình sẽ thực hiện quátrình sửa chữa lỗi sai đã được xác định Quá trình này lặp đi lặp lại cho đếnkhi mô hình đạt đến độ chính xác nhất định Quá trình này vô cùng quantrọng để nó có thể học ra tri thức từ nguồn dữ liệu đầu vào

=> Hàm loss xuất hiện và giúp chúng ta nhận biết mô hình đoán dự đoán saibao nhiêu so với giá trị thực tế

Hàm loss: “Categorical_crossentropy” dùng classifier nhiều class (để

dự đoán nhiều lớp)

- Metrics: Đây là chỉ số dùng để đo lường, theo dõi và đánh giá độ chính xác

cảu mô hình => Đánh giá accuracy của models (độ chính xác của mô hình) Trường hợp áp dụng với “Categorical accuracy”: dùng cho nhiều class,nếu y_true = y predict thì trả về 1 ngược lại là 0

⇒ Tổng quát: Sau khi mô hình được compile với hàm loss là

“categorical_crossentropy” cho bài toán multiclass, hàm optimizer làRMSprop với tùy chỉnh (lr= 0.001); tiêu chí huấn luyện là Accuracy; sử dụngMetrics để đánh giá độ chính xác accuracy của mô hình

Trang 33

9 Huấn luyện mô hình

- Epoch:

Epoch là một hyperparameter (siêu tham số) trong ANN - ArtificialNeural Networks (mạng lưới trí tuệ nhân tạo), được dùng để định nghĩa sốlần learning algorithm (thuật toán học) hoạt động trên mô hình, một epochhoàn thành là khi tất cả dữ liệu training được đưa vào mạng neural networkmột lần (đã bao gồm cả 2 bước forward và backward cho việc cập nhậtinternal model parameters)

Epoch: số lần duyệt qua hết số lượng mẫu trong tập huấn luyện hay đưa

ra số lần mô hình được đào tạo trên toàn bộ tập dữ liệu

Trang 34

Sau khi chạy xong 60 Epoch, ta thu được kết quả:

Trang 36

Sau khi chạy xong 60 Epoch, có thể đưa ra một số nhận xét và kết luận nhưsau:

● Khi số epoch càng tăng lên thì Train_Acc và Val_Acc có xu hướng tăng Điềunày cho thấy, tỷ lệ chính xác của mô hình trên cả tập Train và Validation càngđược cải thiện

● Khi số epoch càng tăng lên thì ta thấy Train_Loss và Val_Loss có xu hướnggiảm Có thể thấy là mô hình được dự đoán càng sát với các giá trị trên tậpTrain và Validation

=> Mặc dù mô hình cho tỷ lệ chính xác trên tập Validation khácao (≈ 7272%) nhưng dự đoán lại lệch so với giá trị thực khá nhiều(val_loss =1.0582), chứng tỏ mô hình vẫn chưa phải tối ưu và có thể sẽ cho kếtquả không khả quan khi thử nghiệm trên tập Test

Ngày đăng: 03/01/2024, 13:43

HÌNH ẢNH LIÊN QUAN

Hình ảnh xe đạp nhóm thu thập - (Tiểu luận) đề tài nhận diện và phân biệt các loại phương tiện đểxếp xe vào bãi đỗ bệnh viện đại học y hà nội
nh ảnh xe đạp nhóm thu thập (Trang 11)
Hình ảnh xe máy nhóm thu thập - (Tiểu luận) đề tài nhận diện và phân biệt các loại phương tiện đểxếp xe vào bãi đỗ bệnh viện đại học y hà nội
nh ảnh xe máy nhóm thu thập (Trang 12)

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w