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

Đồ án chuyên ngành 2 nhận diện biển báo giao thông bằng cnn & keras

27 1 0
Tài liệu đã được kiểm tra trùng lặp

Đ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 Biển Báo Giao Thông Bằng CNN & Keras
Tác giả Nguyễn Xuân Tài
Người hướng dẫn TS. Lý Quỳnh Trân
Trường học Trường Đại Học Công Nghệ Thông Tin & Truyền Thông Việt Hàn
Chuyên ngành Khoa Khoa Học Máy Tính
Thể loại Đồ án chuyên ngành
Năm xuất bản 2023
Thành phố Đà Nẵng
Định dạng
Số trang 27
Dung lượng 6,02 MB

Nội dung

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN &TRUYỀN THÔNG VIỆT HÀN Khoa Khoa Học Máy Tính ĐỒ ÁN CHUYÊN NGÀNH 2 Nhận Diện Biển Báo Giao Thông Bằng CNN & Keras Sinh viên thực hiện: Nguyễn Xuân Tài

Trang 1

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN &

TRUYỀN THÔNG VIỆT HÀN

Khoa Khoa Học Máy Tính

ĐỒ ÁN CHUYÊN NGÀNH 2

Nhận Diện Biển Báo Giao Thông Bằng CNN & Keras

Sinh viên thực hiện:

Nguyễn Xuân Tài 19IT4

Giảng viên hướng dẫn:

TS LÝ QUỲNH TRÂN

Đà Nẵng, tháng 05 năm 2023

Trang 2

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN &

TRUYỀN THÔNG VIỆT HÀN

Khoa Khoa Học Máy Tính

ĐỒ ÁN CHUYÊN NGÀNH 2

Nhận Diện Biển Báo Giao Thông Bằng CNN & Keras

Sinh viên:

Nguyễn Xuân Tài 19IT4

Giảng viên hướng dẫn:

TS LÝ QUỲNH TRÂN

Đà Nẵng, tháng 05 năm 2023

Trang 3

MỞ ĐẦU

Ngày nay với các tiến bộ của khoa học kỹ thuật thì mọi công việc hầu như đều

có thể tiến hành trên máy tính một cách tự động hóa hoàn toàn hoặc một phần Mộttrong những sự thay đổi lớn đó là cách thức chúng ta thu nhận và xử lý dữ liệu Cáccông cụ nhập liệu như bàn phím hay máy scan dần bị thay thế bằng các thiết bị tiện lợihơn như màn hình cảm ứng, camera…

Hơn thế nữa, các máy tính để bàn không còn là công cụ duy nhất có thể hỗ trợcho con người Chúng ta bước sang thế kỷ 21 với sự phát triển mạnh mẽ của các thiết

bị di động, giải trí cầm tay hay smartphone Với kích thước ngày càng nhỏ gọn và hiệusuất làm việc thì không ngừng được cải tiến, các công cụ mini này hứa hẹn sẽ là mộtphần không thể thiếu trong xã hội hiện đại Và do đó, phát triển các ứng dụng trên cácthiết bị này cũng là một xu thế tất yếu

Công nghệ nhận dạng là một trong các công nghệ đang được áp dụng cho cácthiết bị di động hiện nay Nhận dạng có thể bao gồm nhận dạng âm thanh, hình ảnh.Các đối tượng nhận dạng có nhiều kiểu như tiếng nói, chữ viết, khuôn mặt, mã vạch

… và biển báo giao thông cùng là một trong số đó Chương trình nhận dạng biển báogiao thông thường phức tạp và được cài đặt trên những hệ thống có bộ xử lý lớn,camera chất lượng cao Mục tiêu của báo cáo là giúp chúng ta phát hiện biển báo vànhận dạng nó một cách nhanh nhất

Trang 4

LỜI CẢM ƠN

Lời đầu tiên, em xin cảm ơn đến toàn thể các quý thầy cô giáo Trường Công nghệthông tin Việt - Hàn Những người đã luôn đồng hành cùng chúng em trong nhữngnăm bước vào ngưỡng Đại học, giúp chúng em học cách tự lập và tự mình tìm tòinhững thứ mới và định hướng trong học tập

Em cũng xin gửi lời cảm ơn đến thầy Vuơng Công Đạt, thầy đã giúp đỡ chúng emtrong việc giải đáp và tìm hiểu các thông tin liên quan đến môn đồ án chuyên ngành 1

mà em gặp nhiều vướng mắc, từ đó đưa ra hướng giải quyết để có thể chọn được một

đề tài phù hợp với khả năng của mình

Kiến thức là vô hạn mà sự tiếp nhận kiến thức của bản thân mỗi người luôn tồn tạinhững hạn chế nhất định Do đó, trong quá trình hoàn thành bài báo cáo này, chắcchắn không tránh khỏi những thiếu sót Chúng em rất mong nhận được những góp ýđến từ thầy để bài viết được hoàn thiện hơn

Kính chúc thầy sức khỏe và thành công trên con đường sự nghiệp giảng dạy

Sinh viên,

Nguyễn Xuân Tài

Trang 5

NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN

Trang 6

MỤC LỤC

MỞ ĐẦU 3

MỤC LỤC 6

CHƯƠNG I :GIỚI THIỆU 7

1.Đặt vấn đề 7

2.Mục đích 8

3.Phương pháp nghiên cứu 9

4.Phạm vi nghiên cứu 9

5.Nội dung nghiên cứu 9

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 9

1.1 Tổng quan về deep learning 9

1.1.1 Deep learning là gì? 9

1.1.2 Convolutional Neural Network (CNN) 11

CHƯƠNG 3: XÂY DỰNG MÔ HÌNH CNN PHÂN LOẠI BIỂN BÁO GIAO THÔNG TRÊN ẢNH 13

3.1 Sơ đồ khối tổng quát 13

3.2 Datasets 13

3.3 Tiền xử lý và phân chia dữ liệu 16

3.4 Định nghĩa mô hình 17

3.4.1 Mô hình baseline 17

3.4.2 Mô hình VGG16 18

3.4.3 Mô hình baseline sử dụng Normalization 20

3.5 Huấn luyện mô hình 21

3.6 Tạo giao diện người dùng 22

CHƯƠNG 4: KẾT LUẬN 25

4.1 Kết luận về đề tài 25

4.2 Hướng phát triển 25

TÀI LIỆU THAM KHẢO 27

Trang 7

Rất nhiều nghiên cứu thực nghiệm và lý thuyết đã và đang được thực hiện, tuynhiên thực tế trong nhiều tình huống không mong muốn các nghiên cứu đang gặp rấtnhiều khó khăn Bài báo này phát triển giải thuật cho việc dò tìm và nhận diện cácbiển báo giao thông trong điều kiện khác nhau về thời tiết, ánh sáng và sương mù

Trang 8

(chương trình này đã được tác giả lập, cho chạy thử nghiệm tại Viện Công nghệ Châu

Á, Thái lan và hoàn thiện tại trường Đại học Nha trang) Trong nghiên cứu này, mộtđiểm ảnh có thể được coi là điểm biên nếu ở đó có sự thay đổi đột ngột về mức xám;tập hợp các điểm biên tạo thành biên Ảnh được phân tích, xử lý dựa vào biên Cácảnh dùng trong nghiên cứu này là ảnh đa cấp xám được chụp từ thực tế trên một sốtuyến đường trong điều kiện thời tiết khác nhau, với ảnh màu sẽ được chuyển sang đacấp xám trước khi đưa vào xử lý

Hình 1 : Ảnh chụp biển báo trong điều kiện sương mù dày đặc

Những năm gần đây, trí thông minh nhân tạo, cụ thể hơn là Machine Learning vàDeep Learning đang nổi lên là bằng chứng cho cuộc công nghệ cách mạng côngnghiệp lần thứ tư Vận dụng từ học phần Trí tuệ nhân tạo và Xử lý ảnh cho đề tài này,với yêu cầu đầu vào là một ảnh từ biển báo giao thông và đầu ra là tên tương ứng củabiển báo, với số lượng biển báo giao thông là cố định và đây là bài toán phân biệt nênchúng ta sẽ coi đây là bài toán phân loại ảnh, với số lớp cần phân loại chính là sốlượng loại biển báo giao thông cần xác định

Trang 9

2.Mục đích

Nghiên cứu và tìm hiểu các phương pháp nhận dạng, áp dụng vào nhận diện biểnbáo giao thông, xây dựng chương trình, cài đặt thực nghiệm chương trình phát hiện vànhận dạng biển báo giao thông từ bộ ảnh tĩnh

Chương trình được xây dựng giúp người dùng có một cách tiếp cận nhanh chónghơn về luật giao thông, cụ thể là công dụng của các biển báo giao thông

3.Phương pháp nghiên cứu

Phương pháp tài liệu:

 Tìm hiểu lập trình Python và cơ sở lý thuyết về thuật toán CNN

 Tìm hiểu các phương pháp nhận dạng biển báo giao thông

 Tìm hiểu và lựa chọn công cụ hỗ trợ

5.Nội dung nghiên cứu

 Tìm hiểu các kĩ thuật xử lý ảnh trong nhận diện hình học

 Xây dựng hệ thống nhận diện các biển báo khác nhau

 Công cụ thực hiện: Pycharm

Trang 10

Blue… Machine Learning sau huấn luyện sẽ có thể đưa ra dự đoán chính xác sau khi được cung cấp dữ liệu thay vì lập trình nó theo một sườn cứng để thực hiện nhiệm vụ đó từng bước một Từ đó đem đến sự tiện lợi, nhanh chóng cho người dùng.

Hình 2.2 : Mối quan hệ AI ML và DL

AI ngày càng được các nhà đầu tư quan tâm và vươn lên phát triển như vũ bão Nổibật trong các đột phá của AI phần nhiều đến Deep learning Nhờ có Deep learnng mà máytính ngày càng vượt qua hoặc tiến gần đến việc kết hợp hiệu suất của con người Qua hình1.1 ta có thể thấy rõ Deep Learning chỉ là một tập hợp con của Machine Learning Tuynhiên Deep Learning có khả năng khác biệt ở một số khía cạnh quan trọng so vớiMachine Learning nông truyền thống, cho phép máy tính giải quyết một loạt các vấn đề

Trang 11

phức tạp không thể giải quyết được Trong đó có thể kể đến như khả năng khai thác cáctập dữ liệu lớn (Big Data) với độ chính xác cao

1.1.2 Convolutional Neural Network (CNN)

Convolutional Neural Network (CNN) là một thuật ngữ dùng để chỉ mạng nơ rontích chập Đây là mô hình có độ chính xác cao và được sử dụng phổ biến trong Deeplearning Ý tưởng đằng sau là chúng ta sẽ cho ảnh đi qua các bộ lọc trước khi huấn luyệnmạng Neural Sau khi đi qua bộ lọc các đặt trưng của ảnh được thể hiện rõ và chúng ta sẽdùng chúng để nhận diện hình ảnh Như hình 1.2 ta có cấu trúc của mô hình CNN

Hình 2.2 : Thuật toán CNN

Đầu vào của mô hình là hình ảnh Sau đó đến Convolutional Layer (lớp tích chập)tức là ta cho hình ảnh đầu vào thực hiện tích chập với các Kernel (bộ lọc) bằng các trượtcác Kernel từ trái qua phải từ trên xuống dưới Đồng thời chọn đối số, áp dụng các bộ lọcvới các bước nhảy, padding nếu cần, áp dụng hàm kích hoạt (nonlinear activation) cho matrận hình ảnh Sau mỗi hàm kích hoạt ta sẽ nhận được thông tin cho các lớp tiếp theo Cócác hàm kích hoạt như tanh, sigmoil nhưng hàm Relu phổ biến hơn cả vì nó cho hiệusuất tốt hơn Công thức của hàm Relu là ƒ (x) = max (0, x) đảm bảo cho dữ liệu ra không

âm vì dữ liệu mà chúng ta tìm hiểu là các giá trị tuyến tính không âm Tiếp đó ta tiến hànhPooling như hình 1.3 để giảm kích thước cho hình ảnh nhưng vẫn giữ lại các thông tinquan trọng Các loại Pooling thông dụng là Max Pooling, Average Pooling, Sum Pooling

Trang 12

Số lượng lớp tích chập có thể ít hay nhiều tùy thuộc mục đích sử dụng mà lựa chọn phùhợp Cuối cùng ta xây dựng đầu ra và dữ liệu đầu vào thành 1 lớp được kết nối đầy đủ(Full Connected)

Hình 2.3 Thực hiện max pooling

So với mô hình mạng Neural truyền thống thì CNN trở nên tối ưu trong một sốtrường hợp Với mạng Neural truyền thống thì chúng ta phải đưa tất cả giá trị pixeltrên toàn bộ ảnh qua từng Neural Gỉa sử tấm ảnh có kích thức nhỏ cở 32*32 có 3kênh màu thì số lượng trọng số phải đi qua một Neural là 3072 trọng số Nếu tấm ảnhlớn hơn thì trọng số phải đi qua Neural của toàn mạng có thể lên đến vài trăm vài tỉtrọng số Từ đó bài toán của chúng ta sẽ quá phức tạp vì có quá nhiều trọng số phải xử

lí, điều chỉnh dẫn đến tình trạng over fitting Trong khi với mạng CNN có tính chất kếtnối cục bộ (Local connectivity) cho phép Neural chỉ xử lí một vùng dữ liệu thay vìtoàn bộ tấm ảnh Đồng thời CNN cũng có bộ trọng số dùng chung thay vì từng Neural

có bộ trong số khác nhau hoàn toàn của mạng Neural truyền thống Trong cũng lớplayer thì mỗ neural đều có bộ trọng số duy nhất giống nhau Từ đó trọng số phải điềuchỉnh ít hơn, bài toán sẽ dễ dàng hơn Qua đó thấy rõ CNN làm việc tốt hơn mạngNeural thông thường ở những tấm ảnh có kích thức lớn

Trang 13

CHƯƠNG 3: XÂY DỰNG MÔ HÌNH CNN PHÂN LOẠI BIỂN

BÁO GIAO THÔNG TRÊN ẢNH3.1 Sơ đồ khối tổng quát

Bước 1: Tìm kiếm và thu thập datasets về các loại biển báo giao thông, tiền xử lý vàgán nhãn cho từng bức ảnh

Bước 2: Phân chia dữ liệu thành tập train và tập test

Bước 3: Huấn luyện mô hình

Bước 4: Đánh giá mô hình

Sơ đồ khối hệ thống:

Hình 3.4: Sơ đồ khối tổng quát

Các giai đoạn xây dựng mô hình sẽ được đề cập trong các phần tiếp theo

3.2 Datasets

Để huấn luyện một mô hình Deep Learning trước tiên ta cần chuẩn bị một tập dữliệu tập dữ liệu là yếu tố vô cùng quan trọng trong việc huấn luyện mô hình Vì dữ liệu ởcác môi trường khác nhau (cường độ ánh sáng, vật thể bị méo dạng, ), thì pixel của cácảnh khác nhau Do đó, tập dữ liệu các lớn giúp mô hình học được vật thể ở nhiều trạngthái môi trường khác nhau, từ đó tăng khả năng chính xác khi dự đoán ngoài thực tế

Trang 14

Tập dữ liệu thường được chia làm 3 tập:

- Tập training: tập training thường có kích thước lớn nhất Tập training thường đượcdán nhãn và cho trước nhãn để tính toán loss function và cập nhập các tham số để mô hìnhtăng độ chính xác

- Tập validation (hay tập development): Tập validation thường được chia ra từ tậptraining Tập validation là không được dùng để cập nhập các tham số của mô hình, mà nóchỉ được dùng để đánh giá xem mô hình có cần điều chỉnh parameter lại hay không, có bịhigh bias hay high variance hay không

- Tập test: tập test được dùng để đánh giá lại mô hình có hiệu quả hay không Dữ liệucủa tập test phải chưa từng xuất hiện trong tập training để có thể đánh giá mô hình ngoàithực tế

(overfitting)

Mô hình bị high bias(underfitting)

Mô hình bị

cả high bias vàhigh variance

Mô hình hoạt động ổn địnhCác tập training, validation, test thường được chia với tỉ lệ 60/20/20 với tập dữ liệukhông quá lớn và được chia tỉ lệ 98/1/1 hoặc 99.5/0.1/0.4 với tập dữ liệu rất lớn (khoảng 1triệu mẫu)

Trong việc phân loại biển báo giao thông trong ảnh, tập datasets được sử dụng làcác biển báo giao thông của Đức được công khai nguồn dữ liệu trên trang web Kaggle[12]

Tại tập datasets này, chúng tôi sử dụng file Train.zip bao gồm 9030 mẫu biển báocủa 43 class để tiến hành training và file Test.zip để tiến hành kiểm tra lại

Trang 15

Hình 3.3: Tập dữ liệu được sử dụng để xây dựng mô hình CNN

Trong đó, tập dữ liệu training mẫu biển báo giao thông của Đức với 43 class được gánnhãn như sau:

BẢNG 2.1: NHÃN VÀ TÊN CÁC BIỂN BÁO TRONG BÀI TOÁN PHÂN LOẠI

Nhã

n

0 Tốc độ giới hạn 20km/h 22 Cảnh báo đường nhấp nhô

1 Tốc độ giới hạn 30km/h 23 Cảnh báo đường trơn trượt

2 Tốc độ giới hạn 50km/h 24 Đường bị hẹp bên phải

3 Tốc độ giới hạn 60km/h 25 Đường đang thi công

4 Tốc độ giới hạn 70km/h 26 Cảnh báo có đèn tín hiệu

5 Tốc độ giới hạn 80km/h 27 Cảnh báo có người đi bộ

6 Hết đoạn đường giới hạn

80km/h

28 Cảnh báo có học sinh đi qua

7 Tốc độ giới hạn 100km/h 29 Cảnh báo có xe đạp đi qua

8 Tốc độ giới hạn 120km/h 30 Cảnh báo tuyết lở

Trang 16

10 Cấm xe trên 3,5 tấn vượt 32 Hết tất cả lệnh cấm

không ưu tiên

12 Giao nhau với đường ưu

tiên

34 Rẽ trái phía trước

16 Cấm xe trên 3.5 tấn 38 Hướng phải đi vòng sang

phải

17 Cấm đi ngược chiều 39 Hướng trái đi vòng sang trái

18 Biển nguy hiểm khác 40 Nơi giao nhau chạy theo

vòng xuyến

19 Nguy hiểm khi rẽ trái 41 Hết đoạn đường cấm vượt

20 Nguy hiểm khi rẽ phải 42 Hết đoạn đường cấm vượt

với xe trên 3.5 tấn

21 Chỗ ngoặt nguy hiểm

3.3 Tiền xử lý và phân chia dữ liệu

Đầu tiên, chúng ta phải truy suất đến tập tin lưu dữ liệu Sau đó, chúng ta sẽ lưu lại dữliệu, nhãn của từng bức ảnh và reshape lại tập datasets cho phù hợp với đầu vào của mạngnơtron tích chặp Quá trình trên được viết như sau:

Hình 3.3 :Tiền xử lý tập datasets

Trang 17

Tiếp theo, để dễ dàng cho việc tính toán của mạng nơtron tích chặp, chúng ta phảichuyển dữ liệu của mẫu biển báo này từ dạng danh sách sang mảng, sau đó tiến hành cắttập train và tập test với tỷ lệ 8:2 và chuyển nhãn sang dạng one-hot cho phù hợp với mạngnơtron tích chặp Quá trình trên được viết như sau:

Hình 3.4: Xử lý và phân chia tập train, tập test

3.4 Định nghĩa mô hình

3.4.1 Mô hình baseline

Mô hình baseline gồm có 4 block trong đó 3 block đầu thực hiện chức năng trích chọnđặc trưng và block cuối cùng để phân loại dữ liệu Hàm kích hoạt được sử dụng là hàmReLU activation ở tất cả các lớp trừ lớp cuối cùng (fc6) hàm kích hoạt được sử dụng làhàm softmax activation

Ở 3 block tích chập gồm có :

- 2 lớp thực hiện chức năng tích chập

- 1 lớp thực hiện max pooling

- lớp thực hiện drop out với tỉ lệ drop là 0.2

Ở block cuối cùng để phân loại dữ liệu gồm có:

- 1 lớp flatten (lớp fc4)

- 2 lớp fully connected (lớp fc5)

- 1 lớp drop out ở giữa 2 lớp fully connected fc5 và fc6 với tỉ lệ drop là 0.5 - 1 lớpfully connected (lớp fc6)

Trang 18

BẢNG 2.2 : KIẾN TRÚC MÔ HÌNH BASELINE

là hàm softmax activation

Ở 2 block tích chập đầu gồm có :

- 2 lớp thực hiện chức năng tích chập

- 1 lớp thực hiện max pooling

Ở 3 block tích chập tiếp theo gồm có:

- 3 lớp thực hiện chức năng tích chập

- 1 lớp thực hiện max pooling

Ở block cuối cùng để phân loại dữ liệu gồm có:

- 1 lớp flatten (lớp fc6)

- 3 lớp fully connected (lớp fc7, fc8, fc9)

- 2 lớp drop out ở giữa 2 lớp fully connected fc7 và fc8 và giữa 2 lớp fc8 vàfc9 với tỉ lệ drop là 0.5

Trang 19

3.4.3 Mô hình baseline sử dụng Normalization

Mô hình huấn luyện của Baseline model Normalization tương tự với mô hình Baselinetuy nhiên với mô hình thực hiện thêm 1 lớp chức năng chuẩn hóa các dữ liệu Việc chuẩnhóa dữ liệu này được thực hiện với epsilon là 10-6 và momentum là 0.99

Ở 3 block tích chập gồm có :

- 2 lớp thực hiện chức năng tích chập - 1 lớp thực hiện chức năng chuẩn hóa

dữ liệu - 1 lớp thực hiện max pooling

- 1 lớp thực hiện drop out với tỉ lệ drop là 0.2 Ở block cuối cùng để phân loại

dữ liệu gồm có:

- 1 lớp flatten (lớp fc4)

Ngày đăng: 23/12/2024, 12:40