Xem Nhiều 5/2023 #️ Nhận Diện Biển Báo Giao Thông # Top 11 Trend | Sachlangque.net

Xem Nhiều 5/2023 # Nhận Diện Biển Báo Giao Thông # Top 11 Trend

Cập nhật thông tin chi tiết về Nhận Diện Biển Báo Giao Thông mới nhất trên website Sachlangque.net. Hy vọng nội dung bài viết sẽ đáp ứng được nhu cầu của bạn, chúng tôi sẽ thường xuyên cập nhật mới nội dung để bạn nhận được thông tin nhanh chóng và chính xác nhất.

Như tiêu đề, hôm nay mình sẽ hướng dẫn các bạn xây dựng một mạng CNN đơn giản để nhận diện biển báo giao thông. Với tập dữ liệu gồm tất cả 42 biển báo giao thông với các điều kiện khác nhau như thiếu sáng, biển báo bị nghiêng, ảnh chụp mờ…

Bài toán yêu cầu đầu vào là 1 ảnh chụp được từ biển báo giao thông và đầu ra là tên tương ứng của biể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ên chú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. Vì hình ảnh các biển báo rất khác nhau và có thể dễ dàng phân biệt bằng mắt thường nên dữ liệu phân lớp khá đơn giản và ít sự nhập nhằng. Vì thế chúng ta sẽ cần một mô hình deep learning đơn giản là có thể xử lý được việc này.

Import thư viện

Đầu tiên bạn vào đây để tải về bộ dữ liệu gồm các biển báo đã được đánh nhãn và lưu các thông tin trong file csv. Đây là bộ dữ liệu biển báo giao thông của Đức, gồm 42 loại biển báo khác nhau. Bạn tải về và giải nén ra thư mục của project

Bạn đổi lại biến path theo đường dẫn trên máy bạn

Như các bài thông thường, chúng ta sẽ tiến hành chia tập dữ liệu ảnh thành tập train và tập validation

Với các label chúng ta sẽ chuyển sang dạng One-hot encoding để xử lý

Complie mô hình

Khởi tạo đồ thị kết quả mô hình

Training

Tiến hành chạy file code

Train on 31368 samples, validate on 7841 samples Epoch 1/10 31368/31368 [==============================] - 9s 286us/step - loss: 1.2740 - acc: 0.6416 - val_loss: 0.2135 - val_acc: 0.9367 Epoch 2/10 31368/31368 [==============================] - 5s 175us/step - loss: 0.3047 - acc: 0.9056 - val_loss: 0.1006 - val_acc: 0.9726 Epoch 3/10 31368/31368 [==============================] - 6s 204us/step - loss: 0.1999 - acc: 0.9378 - val_loss: 0.0703 - val_acc: 0.9795 Epoch 4/10 31368/31368 [==============================] - 6s 199us/step - loss: 0.1576 - acc: 0.9522 - val_loss: 0.0603 - val_acc: 0.9829 Epoch 5/10 31368/31368 [==============================] - 5s 171us/step - loss: 0.1335 - acc: 0.9577 - val_loss: 0.0497 - val_acc: 0.9847 Epoch 6/10 31368/31368 [==============================] - 5s 171us/step - loss: 0.1175 - acc: 0.9648 - val_loss: 0.0543 - val_acc: 0.9853 Epoch 7/10 31368/31368 [==============================] - 5s 171us/step - loss: 0.1043 - acc: 0.9674 - val_loss: 0.0456 - val_acc: 0.9865 Epoch 8/10 31368/31368 [==============================] - 5s 172us/step - loss: 0.0962 - acc: 0.9699 - val_loss: 0.0517 - val_acc: 0.9860 Epoch 9/10 31368/31368 [==============================] - 5s 172us/step - loss: 0.0849 - acc: 0.9741 - val_loss: 0.0475 - val_acc: 0.9876 Epoch 10/10 31368/31368 [==============================] - 5s 172us/step - loss: 0.0820 - acc: 0.9756 - val_loss: 0.0424 - val_acc: 0.9885

Sau khi thực hiện xong, chúng ta sẽ đánh giá lại mô hình bằng kết quả quá trình training:

Sau khi qua trình training thành công, chúng ta sẽ đánh giá lại bằng tập test

Tính toán độ chính xác:

Kết quả đạt được là 95.5%, vậy là mô hình khá chính xác rồi.

0.9558986539984164

Lưu mô hình

Sau khi tiến hành traininig lại mô hình nhiều lần chúng ta sẽ thu được một mô hình tốt nhất và sử dụng nó để deploy lên hệ thống thực. Việc này được thực hiện như sau:

Cảm ơn các bạn đã theo dõi bài viết hẹn gặp lại trong những bài viết tiếp theo.

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

Thế Nào Là Nhận Diện Biển Báo Giao Thông

Có rất nhiều loại biển báo giao thông khác nhau như biển báo giới hạn tốc độ, biển cấm đi vào, tín hiệu giao thông, rẽ trái hoặc phải, trẻ em băng qua đường, cấm xe nặng vượt qua, v.v. Nhận diện biển báo giao thông là quá trình nhận biết nội dung biến báo và xác định biển báo đó thuộc loại nào.

Giới Thiệu Về Project

Nội Dung Chính

Tập Dữ Liệu Sử Dụng

Chúng ta sẽ sử dụng tập dữ liệu công khai có sẵn tại kaggle. Tải xuống tập dữ liệu Traffic Signs Dataset.

Tập dữ liệu chứa hơn 50.000 hình ảnh về các biển báo giao thông khác nhau, nó được phân loại thành 43 lớp. Dữ liệu phân chia khá là không đồng đều, một số lớp có rất nhiều hình ảnh trong khi một số lớp lại có rất ít. Tập dữ liệu có một thư mục train chứa các hình ảnh bên trong mỗi lớp và một thư mục test chứa các hình ảnh dùng để thử nghiệm mô hình.

Yêu Cầu Của Project

Để thực hiện project này yêu cầu bạn cần có kiến thức về Keras, Matplotlib, Scikit-learning, Pandas, PIL và phân loại hình ảnh.

Xây Dựng Mô Hình

Chúng ta sẽ thực hiện project này với 4 bước sau:

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

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

Training và xác thực

Kiểm tra mô hình với bộ dữ liệu test set

Bước 1: Khám phá tập dữ liệu

Thư mục train có chưa 43 thư mục con mỗi thư mục đại diện cho một lớp khác nhau được đánh số thứ tự từ 0 đến 42. sử dụng module OS ta sẽ lặp lại trên tất cả các lớp để kết nối các hình ảnh với nhãn tương ứng của chúng.

Thư viện PIL được sử dụng để chuyển hình ảnh thành một mảng.

Sau đó ta sẽ lưu tất cả các hình ảnh và nhãn của chúng vào lists data và labels.

Chúng ta cần chuyển các lists thành các numpy array để làm đầu vào cho model.

Kích thước của dữ liệu là (39209, 30, 30, 3), có nghĩa là có 39209 hình ảnh, mỗi ảnh có kích thước 30×30 pixel, số 3 ở cuối thể hiện dữ liệu là hình ảnh màu (giá trị RGB).

Sử dụng phương thức train_test_split () của sklearn để phân chia bộ dữ liệu thành train set và test set.

Sử dụng phương thức to_categorical của keras.utils để xử lý các nhãn của y_train và y_test bằng one-hot encoding.

[/crayon]

Bước 2: Xây dựng mô hình CNN

Kiến trúc mô hình CNN của chúng ta như sau:

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

MaxPool2D layer ( pool_size=(2,2))

Dropout layer (rate=0.25)

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

MaxPool2D layer ( pool_size=(2,2))

Dropout layer (rate=0.25)

Flatten layer to squeeze the layers into 1 dimension

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

Dropout layer (rate=0.5)

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

[/crayon]

Bước 3: training và xác thực mô hình

Sau khi xây dựng kiến ​​trúc mô hình, chúng ta sẽ huấn luyện mô hình bằng cách sử dụng chúng tôi (). Chúng ta hãy thử với batch size là 32 và 64. nhận thấy mô hình hoạt động tốt hơn với batch size là 64. và sau 15 epochs độ chính xác đã được ổn định.

Bước 4: Kiểm tra mô hình với test set

Tập dữ liệu của chúng ta có chứa 1 thư mục test và 1 file chúng tôi Chúng ta cần phải trích xuất hình ảnh và nhãn tương ứng bằng cách sử dụng pandas. Sau đó, để dự đoán mô hình, chúng ta phải thay đổi kích thước hình ảnh thành 30 × 30 pixel và tạo một mảng numpy chứa tất cả dữ liệu hình ảnh. Sử dụng precision_score của sklearn.metrics để dự đoán các nhãn của bộ test. Có thể thấy ta đã đạt được độ chính xác là 95% trong mô hình này.

Thiết Kế Giao Diện Người Dùng (GUI)

Trong đoạn code này, trước tiên ta phải import mô hình đã được training từ trước là “traffic_classifier.h5” . Và sau đó, xây dựng GUI để upload hình ảnh và một nút để gọi hàm classify(). Hàm classify() chuyển đổi hình ảnh thành kích thước (1, 30, 30, 3). Sau đó, chúng ta dự đoán các lớp, model.predict_classes(image) trả về cho chúng ta một số trong khoảng (0-42) đại diện cho lớp mà nó thuộc về.

Cách Nhận Biết Biển Báo Giao Thông

Cách học và thi bằng lái hạng B2 quả là một điều khá khó khăn với một số người. Bởi số lượng câu hỏi lý thuyết lên đến 450 câu. Trong đó số lượng câu hỏi về các dạng biển báo và nhận biết biển báo giao thông là một điều khá khó khăn. Nếu học không đúng cách thì việc nhớ được những biển báo đó là điều không dễ. Vậy nên việc trang bị cho mình một số cách nhận biết biển báo giao thông là một việc cần thiết đúng không nào.

Cách nhận biết biển báo giao thông

Có rất nhiều loại biển báo giao thông mà bạn trông thấy hằng ngày, những việc nhận biết và nhớ các loại biển báo này thì bạn không nên bỏ qua các mẹo sau đây:

Biển báo cấm biểu thị các điều cấm có hình tròn, viền đỏ, nền trắng

Biển báo nguy hiểm biểu thị các điều nguy hiểm có hình tam giác vàng, viền đỏ, nền vàng

Biển báo hiệu lệnh có hình tròn xanh, hình vẽ trắng: gặp biển này bắt buộc phải thi hành

Biển chỉ dẫn hình vuông hoặc hình chữ nhật màu xanh, hình vẽ trắng

Biển báo cấm xe nhỏ sẽ cấm luôn xe lớn

Biển cấm xe ô tô con sẽ cấm luôn xe ba bánh, xe lam

Biển cấm xe rẽ trái sẽ cấm luôn xe quay đầu

Ngược lại biển cấm xe quay đầu thì xe được phép rẽ trái

Nếu biển màu xanh cho phép xe quay đầu thì xe không được phép rẽ trái

Biển “STOP” thì tất cả các xe phải dừng lại kể cả xe ưu tiên trong mọi trường hợp

Mẹo thi bằng lái B2 phần biển báo

Nếu gặp biển cấm có ghi số 14m thì chọn đáp án không được phép

Nếu biển báo cấm ô tô vượt thì tất cả các loại ôtô đều không được vượt

Ngược lại nếu biển cấm xe tải vượt thì xe ô tô con và ô tô khách được vượt

Biển báo hiệu cầu vượt liên thông là biển báo hình chữ nhật có chữ trên biển

Biển báo hiệu cầu vượt cắt ngang là biển báo hình tròn không có chữ trên biển

Biển báo hình vuông màu xanh vẽ mũi tên dài bên phải nằm song song với xe khách và mũi tên ngắn hướng thẳng đứng báo hiệu có làn đường dành cho ô tô khách

Biển báo màu xanh hình vuông vẽ mũi tên dài nằm dưới song song với xe khách và mũi tên ngắn hướng mũi tên dài về bên phải báo hiệu rẽ ra đường có làn đường dành cho ô tô khách

Thi bằng lái xe B2 sẽ vô cùng khó nếu bạn không biết được cách để học những câu hỏi lý thuyết hay những chiếc biển báo giao thông. Trong khi những phần này là những phần rất dễ lấy điểm. Thế nên việc biết cách nhận biết biển báo giao thông là một việc rất cần thiết đúng không.

Tìm Hiểu Về Hệ Thống Nhận Dạng Biển Báo Giao Thông

Công nghệ nhận dạng biển báo giao thông sử dụng camera phía trước để nhận diện tín hiệu giao thông trên đường. Khi nhận diện được biển báo, phần mềm nhận dạng ký tự sẽ diễn giải những gì biển báo hiển thị và chuyển chúng tới bảng táp-lô và/hoặc màn hình hiển thị thông tin giải trí.

Tìm hiểu về hệ thống nhận dạng biển báo giao thông

Chúng sẽ hiển thị cho tới khi xe có sự thay đổi. Ví dụ như sau khi giới hạn tốc độ thay đổi, biển báo mới sẽ hiển thị.

Hệ thống nhận diện biển báo giao thông có cần thiết?

Công nghệ nhận dạng biển báo giao thông không phải là một tính năng bạn cần phải có nhưng đó là một trang bị hữu ích. Người lái cần quan sát mọi thứ khi lái xe, do đó, việc màn hình liên tục hiển thị tốc độ tối đa có thể không có giá trị, nếu bạn bỏ lỡ biển báo tốc độ cuối cùng.

Hãy lưu ý rằng công nghệ ô tô mới này có thể thỉnh thoảng bỏ lỡ biển báo, đặc biệt khi chúng bị che khuất. Một số hệ thống cũng sẽ không phát hiện sự thay đổi trong biển báo tốc độ điện tử thường xuất hiện trên các con đường cao tốc thông minh.

Tìm thấy trên

Một số mẫu xe hiện nay được trang bị tính năng này, bao gồm cả Audi A3, Volkswagen Passat và Jaguar XF. Jaguar XF sở hữu tính năng này như trang bị tiêu chuẩn. Các trang tạp chí xe hơi cho biết một vài chiếc xe như Ford S-Max và Volvo XC90 thậm chí có thể hạn chế tốc độ của xe theo giới hạn hiện tại.

Tương tự như

Hệ thống nhận dạng biển báo giao thông là cái tên của Ford dành cho công nghệ này nhưng các nhà sản xuất xe khác sẽ sử dụng cái tên khác như: Hỗ trợ biển báo giao thông (Traffic Sign Assist – Mercedes-Benz), Hỗ trợ biển báo (Sign Assist – Volkswagen), Thông tin biển báo trên đường (Road Sign Information – Volvo) và Tầm nhìn thông minh (Intelligent Vision – BMW).

Bạn đang xem bài viết Nhận Diện Biển Báo Giao Thông trên website Sachlangque.net. Hy vọng những thông tin mà chúng tôi đã chia sẻ là hữu ích với bạn. Nếu nội dung hay, ý nghĩa bạn hãy chia sẻ với bạn bè của mình và luôn theo dõi, ủng hộ chúng tôi để cập nhật những thông tin mới nhất. Chúc bạn một ngày tốt lành!