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

NHẬN DẠNG BIỂN BÁO GIAO THÔNG SỬ DỤNG MẠNG NƠRON TÍCH CHẬP

64 8 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 Dạng Biển Báo Giao Thông Sử Dụng Mạng Nơron Tích Chập
Tác giả Nguyễn Văn Việt, Trương Văn Cảnh, Nguyễn Quang Huy
Người hướng dẫn TS. Nguyễn Mạnh Cường
Trường học Trường Đại Học Công Nghiệp Hà Nội
Chuyên ngành 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ố Hà Nội
Định dạng
Số trang 64
Dung lượng 2,99 MB

Cấu trúc

  • CHƯƠNG 1: BÀI TOÁN NHẬN DIỆN BIỂN BÁO GIAO THÔNG (10)
    • 1.1 Tổng quan về nhận dạng và biển báo giao thông (10)
    • 1.2. Phát hiện và nhận dạng biển báo giao thông (22)
    • 1.3. Mục tiêu và nhiệm vụ nghiên cứu (23)
  • CHƯƠNG 2: CÁC PHƯƠNG PHÁP NHẬN DẠNG BIỂN BÁO GIAO THÔNG (28)
    • 2.1. CÁC PHƯƠNG PHÁP PHÁT HIỆN HÌNH ẢNH BIỂN BÁO GIAO THÔNG (28)
      • 2.1.1. Phát hiện dựa trên ảnh mẫu (28)
      • 2.1.2. Phát hiện dựa trên dạng hình học (28)
    • 2.2. PHƯƠNG PHÁP ĐƯỢC SỬ DỤNG TRONG LUẬN VĂN (29)
      • 2.2.1. Bộ lọc Gabor (29)
      • 2.2.2. Mạng Nơron nhân tạo (29)
      • 2.2.3. Ngôn ngữ lập trình Python (31)
    • 2.3. MÔ HÌNH GIẢI QUYẾT BÀI TOÁN (33)
      • 2.3.1. Mô hình tổng quát (33)
      • 2.3.2. Thu nhận hình ảnh (Capture Image) (34)
      • 2.3.3. Phát hiện biển báo và trích xuất vùng đặc trưng khi sử dụng bộ lọc (34)
      • 2.3.4. Xử lý trước khi nhận dạng (Pre-recognized) (36)
      • 2.3.5. Quá trình nhận dạng (Recognized) (37)
  • CHƯƠNG 3 NHẬN DẠNG BIỂN BÁO GIAO THÔNG DÙNG BỘ LỌC (39)
    • 3.1.1. Đặt vấn đề (39)
    • 3.1.2. Xây dựng cơ sở dữ liệu (39)
    • 3.1.3. Tập huấn luyện (40)
    • 3.1.4. Dùng bộ lọc Gabor để biến đổi ảnh (40)
    • 3.1.5. Dùng mạng Nơron để huấn luyện và nhận dạng (42)
    • 3.1.6. Thực nghiệm (44)
  • CHƯƠNG 4: XÂY DỰNG SẢN PHẨM DEMO (9)
    • 4.1 Quy trình làm việc (45)
    • 4.2 Khám phá tập dữ liệu và các thư viện cần thiết cho quá trình huấn luyện (45)
    • 4.3 Mô hình CNN (49)
    • 4.4 Huấn luyện và xác nhận mô hình (52)
    • 4.5 Thử nghiệm mô hình (54)
    • 4.6 Xây dựng giao diện ứng dụng (56)
  • KẾT LUẬN (42)
    • Biển 1.5: Biển báo cấm (0)

Nội dung

Tại Việt Nam, tình trạng an toàn giao thông đường bộ vẫn còn diễn biến phức tạp, số người chết vì tai nạn giao thông vẫn ở mức cao do tình trạng xâm phạm các công trình giao thông vẫn còn xảy ra phổ biến, hạ tầng giao thông kém, biển báo dày đặc nên gây ra rất nhiều khó khăn cho người tham gia giao thông. Cụ thể, trong 6 tháng đầu năm 2012, cả nước đã xảy ra 17.886 vụ tai nạn giao thông làm chết 4.953 người và bị thương 19.977 người. Các vụ tai nạn dẫn đến chết người xảy ra trên các tuyến quốc lộ có chiều hướng gia tăng. Theo đánh giá của Bộ Công an và các nhà chức năng, nguyên nhân của những vụ tai nạn giao thông trên chủ yếu do người điều khiển phương tiện đi sai phần đường, tránh vượt sai quy định, vi phạm tốc độ, chuyển hướng không quan sát hết biển báo giao thông. Chính vì thế, các nhà khoa học các nước tiên tiến trên thế giới nghiên cứu và đề xuất nhiều giải pháp như: Nâng cao cơ sở hạ tầng giao thông tương ứng với tốc độ tăng trưởng kinh tế. Kiểm tra và loại bỏ những phương tiện quá hạn hoặc không đáp ứng tiêu chuẩn an toàn để tham gia giao thông. Tuyên truyền cho người tham gia giao thông chấp hành tốt Luật giao thông và tham gia giao thông có văn hóa để giảm tai nạn giao thông Giải pháp quan trọng nhất, nắm hoàn toàn sự thành công là giải pháp nâ

BÀI TOÁN NHẬN DIỆN BIỂN BÁO GIAO THÔNG

Tổng quan về nhận dạng và biển báo giao thông

a Giới thiệu về nhận dạng

Nhận dạng là quá trình xác định và phân biệt các đối tượng, thuộc tính hoặc ngữ cảnh dựa trên thông tin thu thập được Các loại nhận dạng phổ biến bao gồm nhận dạng khuôn mặt, giọng nói và vân tay Quá trình này đóng vai trò quan trọng trong nhiều lĩnh vực như công nghiệp, y tế và an ninh.

Dưới đây là một số khía cạnh quan trọng của nhận dạng:

1 Nhận dạng Khuôn Mặt (Facial Recognition): Sử dụng để nhận diện và xác định danh tính của người sử dụng dựa trên đặc điểm khuôn mặt Ứng dụng phổ biến bao gồm hệ thống mở khóa điện thoại di động, kiểm soát truy cập và giám sát an ninh

2 Nhận dạng Giọng Nói (Voice Recognition): Sử dụng để xác định và xác minh người nói dựa trên các đặc điểm của giọng nói Áp dụng trong hệ thống nhận dạng người nói, điều khiển giọng, và trong môi trường điều khiển bằng giọng nói

3 Nhận dạng Vân Tay (Fingerprint Recognition): Dựa trên các đặc điểm duy nhất của vân tay để xác định danh tính Được sử dụng rộng rãi trong cả các thiết bị di động và các hệ thống an ninh

4 Nhận dạng Vật Thể và Hình Ảnh (Object and Image Recognition): Nhận dạng các đối tượng, định dạng vật thể trong hình ảnh hoặc video Ứng dụng trong công nghiệp, y tế, ô tô tự lái, và nhiều lĩnh vực khác

5 Nhận Dạng Văn Bản (Text Recognition): Phân tích và nhận dạng văn

6 Nhận Dạng Dấu Vết (Biometric Recognition): Sử dụng các đặc điểm sinh học như mống mắt, mống tai, hoặc dấu vết gương mặt để xác định danh tính

7 Nhận Dạng Vị Trí (Location Recognition): Xác định vị trí của một đối tượng dựa trên dữ liệu địa lý, thường được sử dụng trong ứng dụng định vị GPS

Công nghệ nhận dạng ngày càng trở nên phổ biến, đóng vai trò quan trọng trong bảo mật thông tin cá nhân, nâng cao trải nghiệm người dùng và quản lý tài nguyên Tuy nhiên, cần lưu ý đến những thách thức liên quan đến quyền riêng tư và an ninh dữ liệu Bên cạnh đó, việc giới thiệu về biển báo giao thông cũng là một phần quan trọng trong việc nâng cao nhận thức và an toàn cho người tham gia giao thông.

Biển báo giao thông là hệ thống biểu tượng và ký hiệu thiết yếu trên đường, cung cấp thông tin, hướng dẫn và cảnh báo cho người tham gia giao thông Chúng đóng vai trò quan trọng trong việc duy trì an toàn và trật tự, giúp lái xe, người đi bộ và người đạp xe hiểu rõ quy tắc, từ đó giảm thiểu rủi ro giao thông.

Dưới đây là một số loại biển báo giao thông quan trọng và thông dụng:

Biển Báo Cảnh Báo là những thông báo quan trọng về các rủi ro và nguy hiểm có thể xảy ra trên đường Chúng bao gồm các biển báo cảnh báo đường quanh co, đường dốc và những đoạn đường có nguy cơ tắc đường, giúp người lái xe nâng cao cảnh giác và đảm bảo an toàn khi tham gia giao thông.

Hình 1.1: Biển báo cảnh báo

Hình 1 2: Biển báo cảnh báo

2 Biển Báo Hướng Dẫn (Guide Signs): Chỉ dẫn về hướng đi và khoảng cách đến các địa điểm quan trọng như thành phố, trung tâm thương mại, hay

Hình 1.3: Biển báo hướng dẫn

3 Biển Báo Cấm (Prohibition Signs): Chỉ định những hành động cấm hoặc giới hạn, như hạn chế tốc độ, cấm quay đầu, hay cấm đi ngược chiều

4 Biển Báo Hiệu Lệnh (Regulatory Signs): Đưa ra các quy tắc và nghĩa vụ bắt buộc, chẳng hạn như biển báo giữ làn đường, biển báo dừng xe, hay biển báo hạn chế tốc độ

Hình 1.7: Biển báo hiệu lệnh

5 Biển Báo Chỉ Dẫn (Information Signs): Cung cấp thông tin hữu ích như địa điểm xăng, bãi đỗ xe, hoặc các dịch vụ gần đó

Hình 1.8: Biển báo hiệu lệnh

6 Biển Báo Văn Hóa (Cultural Interest Signs): Chỉ dẫn đến các địa điểm lịch sử, văn hóa, hay du lịch nổi tiếng

Hình 1.9: Biển báo văn hoá

7 Biển Báo Khẩn Cấp (Emergency Signs): Chỉ dẫn đến các đường thoát hiểm, bãi cứu thương, hay các điểm cứu thương khẩn cấp

Hình 1.10 : Biển báo khẩn cấp

Biển báo hiệu lệnh: Biển báo hiệu lệnh có vai trò thông báo các hiệu lệnh người tham gia giao thông cần chấp hành

Hình 1.11: Biển báo hiệu lệnh

Biển chỉ dẫn đóng vai trò quan trọng trong việc hướng dẫn các thông tin cần thiết, giúp người tham gia giao thông di chuyển một cách thuận lợi và an toàn trên đường.

Hình 1.12: Biển báo chỉ dẫn

Hình 1.13: Biển báo chỉ dẫn

Biển báo phụ đóng vai trò quan trọng trong việc cung cấp thông tin bổ sung để làm rõ ý nghĩa của các biển báo chính như biển cấm, biển nguy hiểm và biển chỉ dẫn Thông thường, biển báo phụ được đặt dưới biển báo chính để tăng cường sự hiểu biết cho người tham gia giao thông.

Vạch kẻ đường không chỉ là dấu hiệu trên mặt đường mà còn đóng vai trò như biển báo giao thông, hướng dẫn người tham gia giao thông di chuyển đúng phần đường Có hai loại vạch kẻ đường chính: vạch kẻ nằm đứng và vạch kẻ nằm ngang.

Biển báo trên đường cao tốc: Trên các đường cao tốc thường sử dụng một nhóm biển báo chỉ dẫn riêng

Hình 1.16: Biển báo trên cao tốc

Hình 1.17: Biển báo trên cao tốc

Hiệp định GMS-CBTA được ký kết nhằm thiết lập một hệ thống vận tải xuyên quốc gia cho các nước tiểu vùng Mê Công, bao gồm Việt Nam, Lào, Campuchia, Thái Lan, Myanmar và Trung Quốc.

Hình 1.18: Biển báo theo hiệp định GMS

Hình 1.19: Biển báo theo hiệp định GMS

- Nhóm biển báo theo hiệp định GMS được xây dựng theo hiệp định này, thường sử dụng trên những tuyến đường đối ngoại

Hệ thống biển báo giao thông được quy định bởi các tổ chức quốc gia và có sự khác biệt giữa các quốc gia, nhưng vẫn tồn tại những biểu hiện chung để đảm bảo tính quốc tế và an toàn cho tất cả người tham gia giao thông Những biển báo này đóng vai trò thiết yếu trong việc tạo ra một môi trường giao thông an toàn và hiệu quả.

Phát hiện và nhận dạng biển báo giao thông

Bài toán phát hiện và nhận dạng biển báo giao thông cụ thể gồm qua

Bài viết sẽ trình bày hai giai đoạn quan trọng trong việc xử lý biển báo giao thông: giai đoạn phát hiện và giai đoạn nhận dạng Mỗi giai đoạn sẽ được phân tích chi tiết để giúp người đọc hiểu rõ hơn về quy trình này.

• Phát hiện biển báo giao thông

Phát hiện biển báo giao thông là một ứng dụng quan trọng của thuật toán phát hiện vật thể Thuật toán này xử lý hình ảnh từ camera hoặc video định dạng AVI để xác định sự hiện diện của biển báo giao thông trong khung hình Khi phát hiện biển báo, thuật toán sẽ chỉ ra vị trí và phạm vi chiếm chỗ của biển báo trong ảnh Đây là bước đầu tiên và quan trọng trong các ứng dụng phân tích vật thể, đặc biệt là trong lĩnh vực giao thông.

• Nhận dạng biển báo giao thông

Biển báo giao thông đóng vai trò quan trọng trong việc thông báo và hướng dẫn người tham gia giao thông về tình trạng đường, cung cấp chỉ dẫn và cảnh báo nhằm đảm bảo an toàn Để đảm bảo an toàn giao thông, mỗi người tham gia cần nắm rõ ý nghĩa của cả bốn loại biển báo Tuy nhiên, việc này trở nên khó khăn do số lượng biển báo phong phú và dày đặc.

Với mục tiêu phát triển một ứng dụng nhận diện biển báo giao thông, chúng tôi mong muốn cung cấp cho các phương tiện giao thông thông minh khả năng hiểu rõ tín hiệu từ các loại biển báo Ứng dụng này sẽ giúp người dùng nhận diện và đưa ra các cảnh báo phù hợp, đồng thời hỗ trợ trong nhiều tình huống khác nhau.

Ứng dụng này có chức năng chính là phát hiện và nhận dạng các loại biển báo giao thông, đồng thời cung cấp cảnh báo hợp lý cho người dùng Nó tự động nhận diện các khu vực có hình dạng biển báo, hiển thị hình ảnh và thông tin liên quan đến biển báo mà ứng dụng đã nhận ra.

Hình 1.20 Bài toán nhận diện biển báo giao thông

Mục tiêu và nhiệm vụ nghiên cứu

Nghiên cứu bộ lọc Gabor và mạng Nơron trong nhận dạng biển báo giao thông đóng vai trò quan trọng trong việc hỗ trợ giảm ùn tắc và tai nạn giao thông.

- Nghiên cứu tổng quan về xử lý ảnh số

- Nghiên cứu phân tích và tổng hợp các phương pháp nhận dạng, xử lý hình ảnh biển báo giao thông tại Việt Nam

- Nghiên cứu cơ sở lý thuyết về mạng Nơron và bộ lọc Gabor

- Nhận dạng biển báo giao thông bằng phương pháp sử dụng mạng Nơron và bộ lọc Gabor

4 Đối tượng và phạm vi nghiên cứu

- Các hình ảnh biển báo giao thông

- Video các biển báo giao thông

-Về lý thuyết: Các phương pháp phát hiện hình ảnh, kỹ thuật nhận dạng và xử lý biển báo giao thông

Phương pháp nhận dạng biển báo giao thông được thực hiện thông qua biến đổi bộ lọc Gabor, sau đó áp dụng vào huấn luyện mạng Nơron Kỹ thuật này không chỉ giúp đưa ra các cảnh báo phù hợp cho người tham gia giao thông mà còn có thể hỗ trợ trong nhiều lĩnh vực khác.

5 Những phương tiện công cụ để triển khai

- Ngôn ngữ lập trình Python

- Ngôn ngữ python và các thư viện

- Cài đặt trên môi trường Windows, Linux

- Thu thập, phân tích các tài liệu và thông tin liên quan đến đề tài

- Thảo luận, lựa chọn phương hướng giải quyết vấn đề

- Nghiên cứu phân tích và tổng hợp các phương pháp nhận dạng, xử lý hình ảnh biển báo giao thông

- Phân tích thiết kế hệ thống chương trình ứng dụng

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

- Xây dựng kho dữ liệu hình ảnh huấn luyện

- Triển khai xây dựng chương trình ứng dụng

- Kiểm tra, thử nghiệm và đánh giá kết quả

7 Ý nghĩa khoa học và thực tiễn

- Nghiên cứu các phương pháp phát hiện, nhận dạng và xử lý ảnh

- Nghiên cứu để đánh giá chất lượng biển báo giao thông khi sử dụng các phương pháp nhận dạng

Giải pháp phát hiện và nhận dạng biển báo giao thông đóng vai trò quan trọng trong việc hỗ trợ người tham gia giao thông, giúp nâng cao an toàn và giảm thiểu số vụ tai nạn giao thông Việc áp dụng công nghệ tiên tiến trong nhận diện biển báo sẽ tạo điều kiện thuận lợi cho các phương tiện di chuyển, đồng thời nâng cao ý thức chấp hành luật giao thông của người lái xe.

Đề tài này tập trung vào việc nghiên cứu và ứng dụng các kỹ thuật xử lý ảnh cùng với nhận dạng mẫu, nhằm phục vụ cho các lĩnh vực liên quan, đặc biệt là trong việc phát hiện và nhận dạng biển số xe.

Mô tả chi tiết về quá trình input và output của mô hình nhận diện biển báo giao thông:

Kích thước hình ảnh đầu vào rất quan trọng, có thể là các kích thước cố định như 32x32, 64x64 hoặc lớn hơn, tùy thuộc vào độ phức tạp của mô hình.

• Màu Sắc: Hình ảnh có thể là ảnh xám hoặc ảnh màu tùy thuộc vào yêu cầu của bài toán

• Chuẩn Hóa: Các giá trị pixel thường được chuẩn hóa để đưa về khoảng [0, 1] hoặc [-1, 1] để giảm thiểu ảnh hưởng của biên độ giữa các giá trị pixel

Dữ Liệu Bổ Sung (Tuỳ Chọn):

Dữ liệu metadata bao gồm thông tin về vị trí, điều kiện ánh sáng, hướng đi của camera và các thông số khác, có thể được tích hợp vào dữ liệu đầu vào để cung cấp thông tin bổ sung cho mô hình.

Dự Đoán của Mô Hình:

Mô hình phân phối xác suất sẽ cung cấp giá trị xác suất cho mỗi lớp biển báo có thể xuất hiện trong hình ảnh Giá trị xác suất cho mỗi lớp nằm trong khoảng từ 0 đến 1, và tổng các xác suất của tất cả các lớp sẽ bằng 1.

Chấm Điểm và Dự Đoán Cuối Cùng:

• Chấm Điểm Cao Nhất: Lớp với xác suất cao nhất thường được chọn là lớp dự đoán của mô hình cho biển báo được phát hiện

Vùng Bounding Box là một tùy chọn quan trọng giúp xác định vị trí chính xác của biển báo trong hình ảnh, cho phép mô hình xuất ra tọa độ của vùng bao quanh biển báo.

1 Convolutional Layers: Hình ảnh đầu vào được đưa qua các lớp tích chập để trích xuất đặc trưng Các bộ lọc tích chập giúp nhận diện các đặc trưng quan trọng như cạnh, góc, hoặc hình dạng đặc biệt của biển báo

2 Pooling Layers: Các lớp pooling (thường là lớp max pooling) được sử dụng để giảm kích thước của biểu diễn đặc trưng và giữ lại thông tin quan trọng nhất

3 Flattening Layer: Các đặc trưng được làm phẳng thành một vector để được đưa vào các lớp kết nối đầy đủ (fully connected)

4 Fully Connected Layers: Các lớp này được sử dụng để kết hợp các đặc trưng và đưa ra dự đoán của mô hình dựa trên phân phối xác suất của các lớp

5 Activation Function: Các hàm kích thích như ReLU thường được sử dụng để đưa ra các phản ứng phi tuyến tính giữa các lớp

6 Softmax Activation (Ở Lớp Output): Hàm softmax được sử dụng để chuyển đổi giá trị đầu ra thành phân phối xác suất

Các mô hình nhận diện biển báo giao thông thường được đào tạo trên các bộ dữ liệu lớn với hình ảnh biển báo đa dạng, nhằm đảm bảo tính đa dạng và hiệu suất cao khi áp dụng trong thực tế.

CÁC PHƯƠNG PHÁP NHẬN DẠNG BIỂN BÁO GIAO THÔNG

CÁC PHƯƠNG PHÁP PHÁT HIỆN HÌNH ẢNH BIỂN BÁO GIAO THÔNG

2.1.1 Phát hiện dựa trên ảnh mẫu

Các phương pháp phát hiện biển báo giao thông sử dụng cửa sổ trượt dựa trên tập hợp hình mẫu của đối tượng, khác với các phương pháp dựa trên khuôn mẫu yêu cầu mô hình biển báo cụ thể Để trích xuất đặc trưng từ các mẫu, cần thực hiện quá trình học huấn luyện bằng các thuật toán học máy với lượng lớn hình ảnh chứa và không chứa biển báo giao thông.

Các phương pháp thuộc nhóm này:

- Các phương pháp dựa trên Eigen-space

- Các phương pháp dựa trên mạng Nơron nhân tạo

2.1.2 Phát hiện dựa trên dạng hình học

Khác với các phương pháp trước, nhóm phương pháp này tập trung vào các đặc điểm cấu trúc hình học của biển báo giao thông, nên còn được gọi là nhóm tiếp cận dựa trên đặc trưng (feature-based) Tùy thuộc vào cách triển khai, nhóm này được chia thành hai phân nhóm khác nhau.

- Các phương pháp Bottom – Up

- Phương pháp dựa trên luồng ánh sáng

PHƯƠNG PHÁP ĐƯỢC SỬ DỤNG TRONG LUẬN VĂN

Trong bài viết này, tôi sẽ phân tích và đánh giá các phương pháp phát hiện biển báo giao thông, tập trung vào phương pháp dựa trên ảnh kết hợp giữa bộ lọc Gabor và mạng Nơron Phương pháp này có nhiều ưu điểm, bao gồm tính đơn giản, ngắn gọn, tốc độ xử lý nhanh và độ chính xác cao Đặc biệt, nó có khả năng nhận diện biển báo ngay cả khi bị biến dạng một phần, đồng thời dựa vào cơ sở dữ liệu có sẵn để nâng cao hiệu quả phát hiện.

Bộ lọc Gabor là một công cụ quan trọng trong xử lý ảnh, thường được sử dụng để phát hiện biên, phân vùng và phân tích đặc trưng ảnh Các bộ lọc này mô phỏng cách hệ thống thị giác của con người hoạt động, với tần số và hướng được thể hiện rõ ràng, giúp cải thiện hiệu quả trong việc phân lớp ảnh.

2.2.2 Mạng Nơron nhân tạo a Thế nào là mạng Nơron nhân tạo

Mạng nơ ron nhân tạo (Artificial Neural Network) là một hệ thống máy học sâu, được phát triển dựa trên nguyên lý hoạt động của bộ não con người, giúp tối ưu hóa quá trình học tập và xử lý thông tin.

Mạng nơ ron nhân tạo được cấu thành từ nhiều nơ ron nhân tạo kết nối theo cấu trúc phân lớp Mỗi nơ ron hoạt động như một hàm toán học, có nhiệm vụ thu thập và phân loại thông tin dựa trên các trọng số và ngưỡng.

Mạng nơ ron nhân tạo có khả năng học hỏi và thích ứng với dữ liệu phi tuyến tính và phức tạp, giúp giải quyết các bài toán khó khăn như nhận dạng hình ảnh, giọng nói, văn bản và dự báo Các đặc trưng cơ bản của mạng nơ ron bao gồm khả năng xử lý thông tin một cách linh hoạt và hiệu quả.

Các đặc trưng cơ bản của mạng nơ ron bao gồm:

- Nơ ron (Neuron): Là đơn vị cơ bản của mạng nơ ron, mô phỏng các tế bào thần kinh trong não người

Kết nối giữa các nơ ron đóng vai trò quan trọng trong việc truyền tải dữ liệu, với mỗi liên kết có trọng số riêng để điều chỉnh mức độ ảnh hưởng của nó.

Hàm kích hoạt là một thành phần quan trọng trong mạng nơ-ron, quyết định xem một nơ-ron có được kích hoạt hay không dựa trên tổng trọng số đầu vào và ngưỡng nhất định.

Kiến trúc mạng là yếu tố quyết định cách tổ chức các nơ-ron và kết nối trong một mạng Nó bao gồm số lượng lớp, số nơ-ron trong mỗi lớp và phương thức kết nối giữa chúng.

- Học tập (Learning): Mạng nơ ron có khả năng học từ dữ liệu, điều chỉnh

= trọng số kết nối để tối ưu hóa hiệu suất trong việc phân loại hoặc dự đoán

Hàm mất mát là công cụ quan trọng trong học máy, giúp đo lường độ sai lệch giữa dự đoán của mạng và giá trị thực tế Mục tiêu chính của việc sử dụng hàm mất mát là giảm thiểu sai số này trong quá trình học tập, từ đó cải thiện độ chính xác của mô hình.

- Thuật toán tối ưu hóa (Optimization Algorithm): Sử dụng để điều chỉnh trọng số mạng dựa trên đạo hàm của hàm mất mát để tối ưu hóa hiệu suất

- Dữ liệu đào tạo (Training Data): Dữ liệu được sử dụng để huấn luyện mạng nơ ron, bao gồm các ví dụ và nhãn

- Dữ liệu kiểm tra (Test Data): Dữ liệu sử dụng để đánh giá hiệu suất của mạng sau khi nó đã được đào tạo

- Quá trình truyền tiến (Feedforward): Là quá trình dữ liệu được truyền qua mạng từ lớp vào lớp để tạo dự đoán

- Quá trình lan truyền ngược (Backpropagation): Là quá trình cập nhật trọng số mạng dựa trên độ sai lệch được tính từ hàm mất mát, giúp mạng học tập

Các đặc trưng này là cơ bản trong việc hiểu cách mạng nơ ron hoạt động và được sử dụng trong machine learning và deep learning

2.2.3 Ngôn ngữ lập trình Python a Giới thiệu chung về Python

Python là ngôn ngữ lập trình phổ biến, được áp dụng trong phát triển web, phần mềm, khoa học dữ liệu và máy học Các lập trình viên ưa chuộng Python nhờ vào tính hiệu quả, dễ học và khả năng chạy trên nhiều nền tảng Phần mềm Python có thể tải xuống miễn phí, tích hợp tốt với các hệ thống khác nhau và giúp tăng tốc độ phát triển.

- Các đặc điểm sau tạo nên sự độc đáo của ngôn ngữ lập trình Python:

+ Nơ ron (Neuron): Là đơn vị cơ bản của mạng nơ ron, mô phỏng các tế bào thần kinh trong não người

Kết nối giữa các nơ ron là yếu tố quan trọng trong việc truyền dữ liệu, với mỗi liên kết được gán một trọng số riêng để điều chỉnh tầm quan trọng của nó.

Hàm kích hoạt là một thành phần quan trọng trong mạng nơ-ron, quyết định xem một nơ-ron có được kích hoạt hay không dựa trên tổng trọng số đầu vào và ngưỡng xác định.

Kiến trúc mạng là yếu tố quyết định cách thức tổ chức các nơ-ron và kết nối trong một mạng Nó bao gồm các thành phần như số lượng lớp, số nơ-ron trong mỗi lớp và cách thức mà chúng kết nối với nhau, ảnh hưởng trực tiếp đến hiệu suất và khả năng học của mô hình.

Mạng nơ ron có khả năng học từ dữ liệu, tự động điều chỉnh trọng số kết nối nhằm tối ưu hóa hiệu suất trong các tác vụ phân loại và dự đoán.

Hàm mất mát là công cụ quan trọng để đo lường sự sai lệch giữa dự đoán của mạng và giá trị thực tế Mục tiêu chính trong quá trình học tập là giảm thiểu hàm mất mát này, giúp cải thiện độ chính xác của mô hình.

+ Thuật toán tối ưu hóa (Optimization Algorithm): Sử dụng để điều chỉnh trọng số mạng dựa trên đạo hàm của hàm mất mát để tối ưu hóa hiệu suất

MÔ HÌNH GIẢI QUYẾT BÀI TOÁN

Hình 2.1 - Mô hình giải quyết bài toán a.Giai đoạn xử lý ảnh (Image Processing State)

Mục tiêu của giai đoạn này là nhận diện biển báo giao thông Đầu tiên, cần thu thập dữ liệu hình ảnh từ bối cảnh xung quanh Tiếp theo, biển báo sẽ được phát hiện và vùng đặc trưng sẽ được trích xuất thông qua bộ lọc Gabor Cuối cùng, hình ảnh đã thu thập sẽ được xử lý và nhận dạng bằng mạng nơron.

2.3.2 Thu nhận hình ảnh (Capture Image)

Thu nhận hình ảnh là quá trình sử dụng thiết bị hoặc ứng dụng để chụp và lưu lại hình ảnh từ nguồn nào đó, thường áp dụng cho máy ảnh kỹ thuật số, điện thoại di động hoặc máy tính Người dùng có thể thực hiện việc này bằng cách nhấn nút chụp hoặc sử dụng phần mềm để chụp hình từ video hoặc máy quét, giúp tạo ra bản ghi hình ảnh của một khung cảnh cụ thể.

2.3.3 Phát hiện biển báo và trích xuất vùng đặc trưng khi sử dụng bộ lọc Gabor a Đặc trưng phát hiện biển báo

Để nhận diện biển báo giao thông, việc áp dụng các đặc trưng trong xử lý ảnh và học máy là rất quan trọng Một số đặc trưng thường được sử dụng bao gồm hình dạng, màu sắc và kích thước của biển báo, giúp cải thiện độ chính xác trong việc phát hiện và phân loại.

Màu sắc biển báo là yếu tố quan trọng giúp nhận diện chúng dễ dàng; chẳng hạn, biển báo dừng lại thường mang màu đỏ, trong khi biển báo cấm vượt lại có màu xanh.

- Hình dạng: Nhận dạng hình dạng của biển báo, ví dụ, biển báo dừng lại thường là hình tròn có viền đỏ

Sự xuất hiện của ký tự và biểu đồ trên các biển báo đặc trưng cho phép người dùng dễ dàng nhận diện thông tin Việc áp dụng kỹ thuật nhận dạng ký tự hoặc đối tượng giúp xác định các biểu tượng này một cách hiệu quả.

- Kích thước và tọa độ: Biển báo thường có kích thước và vị trí tương đối

Mô hình học máy, đặc biệt là các mạng nơ-ron tích chập (CNN), được sử dụng để huấn luyện và nhận diện biển báo giao thông dựa trên tập dữ liệu huấn luyện.

Tùy thuộc vào ứng dụng cụ thể, việc kết hợp các đặc trưng là cần thiết để phát hiện biển báo giao thông trong ảnh hoặc video Các phương pháp phát hiện biển báo giao thông có thể được áp dụng để nâng cao độ chính xác và hiệu quả trong việc nhận diện.

Phát hiện màu sắc và ngưỡng ngày càng trở nên quan trọng trong việc tách biệt biển báo khỏi nền Việc sử dụng ngưỡng màu sắc giúp nhận diện biển báo có màu sắc đặc trưng, như biển dừng màu đỏ hoặc biển cấm màu xanh, một cách hiệu quả hơn.

Các kỹ thuật xử lý ảnh truyền thống như biến đổi Hough và phát hiện biên Canny có thể được áp dụng để phát hiện hình dạng và biên của biển báo.

Sử dụng kỹ thuật phát hiện đặc trưng giúp xác định các điểm quan trọng trên biển báo, từ đó tiến hành so khớp với các biển báo có sẵn trong cơ sở dữ liệu.

Mạng nơ-ron sâu, đặc biệt là Mạng Nơ-ron Tích Chập (CNN), được ứng dụng phổ biến trong việc phát hiện biển báo giao thông Chúng có khả năng học hỏi và nhận diện biển báo hiệu quả từ các dữ liệu huấn luyện.

Kết hợp nhiều phương pháp là chìa khóa để nâng cao độ chính xác trong việc phát hiện biển báo Việc sử dụng kết hợp giữa phát hiện màu sắc và mạng nơ-ron tích chập (CNN) có thể giúp cải thiện hiệu suất đáng kể trong quá trình nhận diện.

Để phát hiện ký tự và biểu đồ trên biển báo, bạn có thể áp dụng các mô hình nhận dạng ký tự và đối tượng nhằm trích xuất thông tin một cách hiệu quả.

Phương pháp phát hiện biển báo cần phải linh hoạt, tùy thuộc vào ứng dụng và tài liệu thực tế Việc này thường yêu cầu sự kết hợp của nhiều kỹ thuật khác nhau cùng với quá trình cải tiến liên tục để đạt hiệu suất tối ưu Một trong những bước quan trọng là trích xuất vùng đặc trưng (region of interest extraction).

Trích xuất vùng đặc trưng (Region of Interest - ROI) là quá trình chọn lọc một phần của hình ảnh hoặc dữ liệu nhằm tập trung vào một khu vực cụ thể Phương pháp này có thể được thực hiện qua nhiều cách khác nhau.

- Cắt ảnh: Bạn có thể cắt hoặc cắt ảnh để chỉ giữ lại phần vùng bạn quan tâm

- Masking: Sử dụng mặt nạ (mask) để che phần không quan trọng của ảnh và chỉ để lộ vùng ROI

- Phát hiện đối tượng: Sử dụng các thuật toán phát hiện đối tượng để xác định và trích xuất các đối tượng cụ thể từ hình ảnh

- Phát hiện ranh giới: Sử dụng phương pháp xử lý hình ảnh để phát hiện ranh giới của vùng quan tâm

NHẬN DẠNG BIỂN BÁO GIAO THÔNG DÙNG BỘ LỌC

Đặt vấn đề

Biển báo giao thông đóng vai trò quan trọng trong việc thông báo tình trạng đường và hướng dẫn người tham gia giao thông, giúp họ đưa ra những hành vi hợp lý để đảm bảo an toàn Tuy nhiên, với số lượng biển báo phong phú, việc nắm bắt ý nghĩa của tất cả các biển báo trở nên khó khăn Để giải quyết vấn đề này, tôi dự định phát triển một ứng dụng nhỏ gọn, cho phép người dùng tra cứu thông tin biển báo một cách trực quan khi cần thiết Ứng dụng sẽ tự động nhận diện hình dạng biển báo và cung cấp hình ảnh cùng thông tin liên quan, hỗ trợ người tham gia giao thông trong việc xử lý tình huống hiệu quả.

Xây dựng cơ sở dữ liệu

a Thu thập hình ảnh biển báo giao thông

Tôi đã sử dụng các công cụ tìm kiếm trên internet và nguồn ảnh tin cậy để sưu tầm hình mẫu biển báo giao thông, nhằm xây dựng cơ sở dữ liệu và phân loại các loại biển báo giao thông phục vụ cho đề tài Đối tượng nghiên cứu trong luận văn này là các biển báo giao thông của Việt Nam, tập trung vào biển báo giao thông đường bộ.

Số lượng biển báo giao thông đường bộ của Việt Nam khoảng trên 200 biển báo và chia làm nhiều loại.

Tập huấn luyện

Để sử dụng mạng Nơron, cần phải huấn luyện nó trước Do thời gian hạn chế, tôi không thể thu thập toàn bộ hệ thống mẫu biển báo Việt Nam, vì vậy tôi sẽ xây dựng một tập mẫu demo với 35 ảnh cho 5 loại biển báo mỗi lần chạy.

Hình 3.1 Tập dữ liệu mẫu để huấn luyện

Hình 3.2 Tập biển báo chuẩn

Dùng bộ lọc Gabor để biến đổi ảnh

Hàm bộ lọc Gabor được viết trong Matlab cho kết quả như sau:

Hình 3.3 Kết quả cảu ảnh khi qua bộ lọc Gabor

Chương trình có khả năng phân biệt và nhận dạng các biển báo cấm cũng như biển báo nguy hiểm Tuy nhiên, độ chính xác trong việc nhận diện biển báo cấm và biển báo hiệu lệnh vẫn chưa đạt mức cao.

Hình 3.4 Chạy demo với bằng bộ lọc Gabor cho ra ảnh trung bình

Chương trình hiện tại gặp khó khăn trong việc nhận diện đầy đủ các biển báo trong những bức ảnh có nhiều chi tiết hoặc khi có nhiều biển báo xuất hiện cùng lúc, dẫn đến việc không nhận diện chính xác hoặc nhầm lẫn với các vật thể khác.

Kết luận: Sau khi sử dụng bộ lọc Gabor ta nhận được kết quả như sau:

- Thứ nhất: Ảnh trung bình lọc Gabor theo 5 hướng khác nhau và lưu với tên x_gabor.jpg (x: tên biển báo giao thông)

Hình 3.6 Ảnh trung bình lọc Gabor theo 5 hướng

Vào thứ 2, chúng tôi đã nhận được 35 vector đặc trưng từ 35 bức ảnh, mỗi bức ảnh có 3600 điểm ảnh, và được lưu trữ trong tập tin z_vectors.txt Mỗi lần chương trình được chạy, vector đặc trưng tương ứng với ảnh đầu vào sẽ được bổ sung vào z_vectors.txt.

- Thứ 3: Nhận được các đầu ra tương ứng với từng vector đặc trưng (5 lớp) được lưu với tập tin z_classes.txt

- Thứ 4: Chương trình viết cho mỗi lần chạy chị tính được vector đặc trưng của một ảnh.

Dùng mạng Nơron để huấn luyện và nhận dạng

Dựa trên kết quả từ bộ lọc Gabor, chúng tôi sẽ tiến hành huấn luyện mạng Nơron Với 35 vector tương ứng với 35 ảnh, tôi có thể phân chia chúng thành các tập dữ liệu phục vụ cho việc huấn luyện và kiểm tra.

- Tập 1: Lấy 7 0 % training (tương ứng với 25 vector), 15% testing (tương

- Tập 2: Lấy 6 5 % training (tương ứng với 22 vector), 10% testing (tương ứng với 4 vector) và 25% validation (tương ứng với 9 vector)…

Khi traning ta thay đổi số lớp Nơron trong lớp ẩn tùy ý để kiểm tra cho ra các kết quả nhận dạng

 Từ kết quả của bộ lọc Gabor ta đưa vào huấn luyện mạng Nơron

Load vectors và load classes từ hai tập tin z_vectors.txt và z_classes.txt tin kết quả thu được khi lọc Gabor

Hình 3.7 - Chạy demo khi đã tải vectors và tải classes vào Với ảnh đầu vào là 3600 giá trị điểm ảnh, ảnh đầu ra 5 lớp

Hình 3.8 - Chọn ảnh để huấn luyện mạng Nơron

XÂY DỰNG SẢN PHẨM DEMO

Quy trình làm việc

Chúng ta cần làm theo 4 bước dưới đây để xây dựng mô hình phân loại biển báo giao thông:

-Khám phá tập dữ liệu

-Xây dựng mô hình CNN

-Đào tạo và xác nhận mô hình

Khám phá tập dữ liệu và các thư viện cần thiết cho quá trình huấn luyện

Có 43 thư mục con (từ 0 đến 42) có sẵn trong thư mục 'train' của chúng tôi và mỗi thư mục con đại diện cho một lớp khác nhau Chúng tôi có một mô-đun hệ điều hành giúp lặp lại tất cả các hình ảnh với các lớp và nhãn tương ứng của chúng Để mở nội dung của các ý tưởng thành một mảng, chúng ta sử dụng thư viện PIL

Các thư viện cần thiết cho cả quá trình huấn luyện dữ liệu:

Hình 4.1 các thư viện cần trong quá trình huấn luyện

Bạn đã nhập nhiều thư viện quan trọng để thực hiện phân loại ảnh bằng Mạng Neural Tích chập (CNN) trong Python Mỗi thư viện này có một mục đích cụ thể, giúp tối ưu hóa quy trình xử lý và phân tích dữ liệu hình ảnh.

- NumPy là một thư viện mạnh mẽ cho các phép toán số trong Python

Nó hỗ trợ các mảng và ma trận lớn, đa chiều, đồng thời cung cấp các hàm toán học để thực hiện các phép toán trên các phần tử này.

Pandas là một thư viện mạnh mẽ dành cho việc xử lý và phân tích dữ liệu, cung cấp các cấu trúc dữ liệu như khung dữ liệu (DataFrame) giúp người dùng thực hiện các thao tác xử lý và phân tích dữ liệu một cách hiệu quả.

Matplotlib là thư viện vẽ đồ thị mạnh mẽ trong Python, cho phép người dùng tạo ra các biểu đồ tĩnh và tương tác Với module `pyplot`, Matplotlib cung cấp giao diện dễ sử dụng tương tự như MATLAB, giúp việc tạo biểu đồ trở nên đơn giản và hiệu quả.

OpenCV, or Open Source Computer Vision, is a powerful library designed for computer vision and image processing The `cv2` module is utilized for reading, manipulating, and processing images effectively.

TensorFlow là thư viện học máy mã nguồn mở do nhóm Google Brain phát triển, được sử dụng phổ biến để xây dựng và đào tạo các mô hình học máy, đặc biệt là các mô hình học sâu như mạng neural.

- Thư viện hình ảnh Python (PIL) cung cấp hỗ trợ cho việc mở, xử lý và

Module `os` cung cấp các chức năng liên quan đến hệ điều hành, cho phép tương tác với hệ thống tệp, chẳng hạn như đọc thư mục.

8 sklearn.model_selection.train_test_split:

Hàm từ thư viện scikit-learn cho phép chia bộ dữ liệu thành tập huấn luyện và tập kiểm tra, giúp đánh giá hiệu suất của mô hình học máy một cách hiệu quả.

Hàm `to_categorical` trong Keras giúp chuyển đổi vectơ lớp (số nguyên) thành ma trận lớp nhị phân, thường được áp dụng để mã hóa một-hot cho biến phân loại.

- Lớp `Sequential` từ Keras là một ngăn xếp tuyến tính của các lớp được sử dụng để xây dựng một mạng neural từng lớp một

11 keras.layers.Conv2D, MaxPool2D, Dense, Flatten, Dropout:

- Những lớp này đại diện cho các lớp khác nhau có thể được thêm vào một mạng neural bằng Keras Ví dụ, `Conv2D` là một lớp tích chập 2D,

`MaxPool2D` là một lớp max-pooling, `Dense` là một lớp đầy đủ kết nối,

`Flatten` được sử dụng để làm phẳng đầu vào, và `Dropout` được sử dụng để chống quá mức

Đoạn mã này thực hiện việc đọc và tiền xử lý dữ liệu hình ảnh từ một cấu trúc thư mục, trong đó mỗi thư mục con tương ứng với một lớp Nó thay đổi kích thước các ảnh thành 30x30 pixel và lưu trữ dữ liệu hình ảnh trong một mảng NumPy (data) cùng với nhãn tương ứng trong một mảng NumPy khác (labels) Các mảng này sẽ được sử dụng làm dữ liệu đầu vào và mục tiêu cho việc huấn luyện mô hình học máy, chẳng hạn như mô hình CNN.

Hình 4.3 Chia tách tập dữ liệu thành tập huấn luyện , tập kiểm thử và chuyển đổi nhãn

Hình 4.4 Đầu ra khi qua các bước tiền xử lý

Mô hình CNN

Xây dựng mô hình CNN để phân loại hình ảnh thành các danh mục tương ứng Kiến trúc của mô hình như sau:

2 Conv2D layer (filter2, kernel_size=(5,5), activation=”relu”)

2 Conv2D layer (filterd, kernel_size=(3,3), activation=”relu”)

Dense Fully connected layer (256 nodes, activation=”relu”)

Dense layer (43 nodes, activation=” softmax”)

To build a convolutional neural network model, begin by initializing a Sequential model Add a Conv2D layer with specified filters and a 5x5 kernel size, using ReLU activation and the input shape derived from the training data Follow this with another Conv2D layer of the same configuration, then apply MaxPooling with a 2x2 pool size and a Dropout layer set at a 25% rate to prevent overfitting Introduce additional Conv2D layers with a 3x3 kernel size and ReLU activation, again followed by MaxPooling and Dropout Flatten the output before adding a Dense layer with 256 units and ReLU activation, followed by another Dropout layer at 50% Finally, conclude the model with a Dense layer featuring 43 units and a softmax activation function for multi-class classification.

The model is compiled using the categorical crossentropy loss function, the Adam optimizer, and accuracy as a metric This deep learning architecture, specifically a Convolutional Neural Network (CNN), is tailored for image classification tasks, particularly addressing a problem with 43 distinct classes Each component of the model plays a crucial role in enhancing its performance and accuracy in classifying images.

- Lớp đầu vào được xác định ngầm bằng cách xác định hình dạng đầu vào trong lớp tích chập đầu tiên

- Hình dạng đầu vào được xác định bằng `X_train.shape[1:]`, trong đó giả sử `X_train` là dữ liệu huấn luyện của bạn

- Sử dụng hai bộ lớp tích chập:

- Bộ đầu tiên có 32 bộ lọc với kích thước kernel (5, 5) và kích hoạt ReLU

- Bộ thứ hai có 64 bộ lọc với kích thước kernel nhỏ hơn (3, 3) và kích hoạt ReLU

- Các lớp tích chập được sử dụng để phát hiện các mô hình và đặc trưng

- Thêm hai lớp MaxPooling sau mỗi bộ lớp tích chập

- MaxPooling với kích thước (2, 2) được sử dụng để giảm kích thước không gian và trích xuất các đặc trưng quan trọng nhất

- Thêm hai lớp Dropout sau mỗi lớp MaxPooling với tỷ lệ dropout là 0,25

- Dropout được áp dụng để chống quá mức, ngăn chặn việc quá mức sẽ đặt một phần đơn vị đầu vào thành 0 trong quá trình huấn luyện

- Lớp Flatten được sử dụng để chuyển đổi đầu ra 2D từ lớp trước thành một mảng 1D, chuẩn bị cho các lớp kết nối đầy đủ

- Một lớp dense (đầy đủ kết nối) với 256 nút và kích hoạt ReLU được thêm vào

- Một lớp Dropout với tỷ lệ là 0,5 được thêm vào để chống quá mức

- Lớp dense cuối cùng có 43 nút (giả sử có 43 lớp để phân loại) với kích hoạt softmax, phù hợp cho các vấn đề phân loại đa lớp

- Hàm mất mát được chọn là crossentropy phân loại, phù hợp cho các vấn đề phân loại đa lớp

- Bộ tối ưu hóa Adam được sử dụng cho tối ưu hóa

- Các chỉ số để đánh giá trong quá trình huấn luyện bao gồm độ chính xác Tóm tắt:

- Kiến trúc CNN này tuân theo một khuôn mẫu phổ biến cho các nhiệm vụ phân loại ảnh

- Các lớp tích chập được sử dụng để trích xuất đặc trưng, tiếp theo là max pooling để giảm kích thước không gian

- Dropout được áp dụng để chống quá mức

- Các lớp dense cuối cùng chịu trách nhiệm cho việc phân loại

Mô hình được biên dịch sử dụng hàm mất mát crossentropy cho phân loại và tối ưu hóa bằng thuật toán Adam Để đánh giá hiệu suất và khả năng tổng quát của mô hình, việc huấn luyện và kiểm tra trên một bộ dữ liệu cụ thể là rất quan trọng.

Huấn luyện và xác nhận mô hình

Để huấn luyện mô hình, chúng tôi sử dụng phương thức model.fit() sau khi xây dựng thành công kiến trúc Với kích cỡ lô là 64, chúng tôi đạt được độ chính xác 95% trên các tập huấn luyện và sự ổn định sau 15 kỷ nguyên.

Hình 4.5 sử dung hàm model.fit() để huấn luyện

Hình 4.6 Kết quả độ chính xác 95% và đạt được độ ổn định sau 15 kỳ

Hình 4.7 Hàm vẽ đồ thị để trực quan hóa độ chính xác (accuracy) và độ mất mát

Hình 4.8 Hai đồ thị để trực quan hóa độ chính xác (accuracy) và độ mất mát (loss)

Thử nghiệm mô hình

Trong thư mục “test” của chúng tôi, có tệp “test.csv” chứa đường dẫn hình ảnh và nhãn lớp Để dự đoán mô hình, chúng tôi cần thay đổi kích thước hình ảnh thành 30×30 pixel và tạo một mảng chứa dữ liệu hình ảnh Để hiểu cách mô hình dự đoán nhãn thực tế, chúng ta sử dụng điểm chính xác từ sklearn.metrics Cuối cùng, chúng ta sử dụng phương thức Keras model.save() để lưu lại mô hình đã huấn luyện.

Hình 4.9 kiểm thử độ chính xác của mô hình đã được huấn luyện trên một tập dữ liệu kiểm thử

Hình 4.10 Kết quả sau khi kiểm thử độ chính xác

Mục đích chính của đoạn mã là kiểm thử mô hình máy học CNN đã được huấn luyện trên bộ dữ liệu hình ảnh Mỗi phần của đoạn mã đều có những chức năng cụ thể nhằm đánh giá hiệu suất của mô hình.

1 Đọc Bộ Dữ Liệu Kiểm Thử:

- Sử dụng thư viện pandas để đọc một tệp CSV ("Test.csv") chứa thông tin về các hình ảnh kiểm thử

- Trích xuất nhãn (ClassId) và đường dẫn (Path) của các hình ảnh từ bộ dữ liệu kiểm thử

- Đối với mỗi đường dẫn của hình ảnh trong bộ dữ liệu kiểm thử, đọc hình ảnh, thay đổi kích thước về 30x30 pixel và chuyển đổi thành mảng NumPy

- Tạo một mảng chứa dữ liệu hình ảnh đã được tiền xử lý

3 Dự Đoán Bằng Mô Hình:

- Sử dụng mô hình đã được huấn luyện để dự đoán lớp của các hình ảnh kiểm thử

- Kết quả dự đoán được lưu vào biến `pred` dưới dạng xác suất cho từng lớp

4 Tính Toán Độ Chính Xác:

- Chuyển đổi dự đoán từ xác suất thành lớp dự đoán bằng cách chọn chỉ số có xác suất cao nhất cho mỗi hình ảnh

- Sử dụng hàm `accuracy_score` từ scikit-learn để tính độ chính xác so sánh giữa lớp dự đoán và nhãn thực tế của bộ dữ liệu kiểm thử

- In ra màn hình độ chính xác trên bộ dữ liệu kiểm thử

- Lưu mô hình đã được huấn luyện vào một tệp có tên

"traffic_classifier.h5" để có thể sử dụng lại sau này.

Ngày đăng: 12/01/2024, 21:48

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

TÀI LIỆU LIÊN QUAN