日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

人工智能中,自动驾驶汽车是如何自动识别交通标志的?

發布時間:2023/12/16 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 人工智能中,自动驾驶汽车是如何自动识别交通标志的? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


內容:
了解數據集。
步驟0:導入庫和數據集。
步驟1:數據預處理。
步驟2:數據可視化。
ConvNets背后的直覺。
步驟3:訓練模型。
步驟4:模型評估。
動機:由于特斯拉等公司在電動汽車自動化方面的努力,無人駕駛汽車正變得非常受歡迎。為了成為5級自動駕駛汽車,這些汽車必須正確識別交通標志并遵守交通規則。在識別出這些交通標志之后,它還應該能夠適當地做出正確的決定。

了解數據集:
德國交通標志基準測試是在2011年國際神經網絡聯合會議(IJCNN)上舉行的多類單圖像分類挑戰。請在此處下載數據集。數據集具有以下屬性:
https://www.kaggle.com/meowmeowmeowmeowmeow/gtsrb-german-traffic-sign

單圖像,多分類問題
超過40個類別
總共超過50,000張圖像
大型逼真的數據庫

步驟0:導入庫和數據集:
在第一步中,將導入所有標準庫以及將作為數據和標簽存儲的數據集。導入Tensorflow是為了使用Keras,cv2解決計算機視覺相關的問題以及PIL處理不同的圖像文件格式。

Importing standard libraries

import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns import cv2 import tensorflow as tf from PIL import Image

Importing dataset

import os data = [] labels = [] classes = 43 cur_path = os.getcwd() for i in range(classes):path = os.path.join(cur_path, 'train', str(i))images = os.listdir(path)for a in images:try:image = Image.open(path + '\\'+ a)image = image.resize((30, 30))image = np.array(image)data.append(image)labels.append(i)except:print("Error loading image")

步驟1:資料預處理:
為了處理數據,將使用numpy將其轉換為數組。然后,使用形狀函數驗證數據集的尺寸。然后,使用train_test_split函數以80:20的比率將數據集分為訓練和測試數據。Y_train和Y_test包含43個整數形式的類,不適合模型。因此,將使用to_categorical函數將其轉換為二進制形式。

# Converting to array data = np.array(data) labels = np.array(labels) # Dataset Dimensions - (Number of Images, Width, Length, Color channels) print("Dataset dimensions : ",data.shape) output: Dataset dimensions : (39209, 30, 30, 3) # Splitting the dataset into train and test from sklearn.model_selection import train_test_split X_train, X_test, Y_train, Y_test = train_test_split(data, labels, test_size = 0.2, random_state = 42) # Checking dimensions - (Number of Images, Width, Length, Color channels) print("X_train shape : ", X_train.shape) print("X_test shape : ", X_test.shape) print("Y_train shape : ", Y_train.shape) print("Y_test shape : ", Y_test.shape) output: X_train shape : (31367, 30, 30, 3) X_test shape : (7842, 30, 30, 3) Y_train shape : (31367,) Y_test shape : (7842,) # Converting integer class to binary class from keras.utils import to_categorical Y_train_categorical = to_categorical(Y_train, 43) Y_test_categorical = to_categorical(Y_test, 43)

第2步:數據可視化:
將使用imshow函數使數據集中的特定圖像可視化。該數據集中的圖像高度為30px,寬度為30px,并具有3個顏色通道。

# Visualizing Dataset Images i = 100 plt.imshow(X_train[i]) print("Sign category :",Y_train[i])

ConvNets背后的直覺
由于卷積神經網絡能夠檢測和識別圖像中的各種對象,因此在計算機視覺應用中非常流行。

用外行的話來說,CNN基本上是一開始就具有卷積運算的完全連接的神經網絡。這些卷積運算可用于檢測圖像中的定義圖案。它類似于人腦枕葉中的神經元。ConvNets的體系結構使用3層構建,然后堆疊形成完整的ConvNet體系結構。以下是三層:

1、卷積層。
2、池化層。
3、完全連接。

卷積層:卷積層是ConvNet的核心部分,它執行所有計算量大的任務。在整個圖像中遍歷特定模式的內核或過濾器,以檢測特定類型的特征。該遍歷的輸出將導致一個稱為要素圖的二維數組。該特征圖中的每個值都通過ReLU函數傳遞,以消除非線性。
池化層:該層負責減少數據量,因為它減少了計算量和處理所需的時間。有兩種類型的池化:平均值池和最大值池。顧名思義,“最大”池返回最大值,“平均”池返回內核覆蓋的圖像部分的平均值。
完全連接:上一步收到的二維輸出數組通過展平過程轉換為列向量。該向量被傳遞到多層神經網絡,該網絡通過一系列時期學習使用Softmax函數對圖像進行分類。

步驟3:訓練模型

```python # Importing Keras Libraries from keras.models import Sequential from keras.layers import Conv2D, MaxPool2D, Dense, Flatten, Dropout # Creating Neural network Architecture # Initialize neural network model = Sequential() # Add 2 convolutional layers with 32 filters, a 5x5 window, and ReLU activation function model.add(Conv2D(filters = 32, kernel_size = (5, 5), activation = 'relu', input_shape = X_train.shape[1:])) model.add(Conv2D(filters = 32, kernel_size = (5, 5), activation = 'relu')) # Add max pooling layer with a 2x2 window model.add(MaxPool2D(pool_size = (2, 2))) # Add dropout layer model.add(Dropout(rate = 0.25)) # Add 2 convolutional layers with 32 filters, a 5x5 window, and ReLU activation function model.add(Conv2D(filters = 64, kernel_size = (3, 3), activation = 'relu')) model.add(Conv2D(filters = 64, kernel_size = (3, 3), activation = 'relu')) # Add max pooling layer with a 2x2 window model.add(MaxPool2D(pool_size = (2, 2))) # Add dropout layer model.add(Dropout(rate = 0.25)) # Add layer to flatten input model.add(Flatten()) # Add fully connected layer of 256 units with a ReLU activation function model.add(Dense(256, activation = 'relu')) # Add dropout layer model.add(Dropout(rate = 0.5)) # Add fully connected layer of 256 units with a Softmax activation function model.add(Dense(43, activation = 'softmax')) # Summarizing the model architecture model.summary() output: _________________________________________________________________ Layer (type) Output Shape Param # ================================================================= conv2d_1 (Conv2D) (None, 26, 26, 32) 2432 _________________________________________________________________ conv2d_2 (Conv2D) (None, 22, 22, 32) 25632 _________________________________________________________________ max_pooling2d_1 (MaxPooling2 (None, 11, 11, 32) 0 _________________________________________________________________ dropout_1 (Dropout) (None, 11, 11, 32) 0 _________________________________________________________________ conv2d_3 (Conv2D) (None, 9, 9, 64) 18496 _________________________________________________________________ conv2d_4 (Conv2D) (None, 7, 7, 64) 36928 _________________________________________________________________ max_pooling2d_2 (MaxPooling2 (None, 3, 3, 64) 0 _________________________________________________________________ dropout_2 (Dropout) (None, 3, 3, 64) 0 _________________________________________________________________ flatten_1 (Flatten) (None, 576) 0 _________________________________________________________________ dense_1 (Dense) (None, 256) 147712 _________________________________________________________________ dropout_3 (Dropout) (None, 256) 0 _________________________________________________________________ dense_2 (Dense) (None, 43) 11051 ================================================================= Total params: 242,251 Trainable params: 242,251 Non-trainable params: 0 _________________________________________________________________ # Compile neural network model.compile(loss = "categorical_crossentropy", optimizer = "adam", metrics = ["accuracy"]) # Train neural network history = model.fit(X_train, Y_train_categorical, batch_size = 32, epochs = 15, validation_data = (X_test, Y_test_categorical)) Output after 15 epochs: Epoch 15/15 31367/31367 [==============================] - 98s 3ms/step - loss: 0.2169 - acc: 0.9485 - val_loss: 0.0835 - val_acc: 0.9787

步驟4:模型評估:

# Ploting graph - Epoch vs Accuracy plt.plot(history.history['acc'], label='training accuracy') plt.plot(history.history['val_acc'], label='val accuracy') plt.title('Accuracy') plt.xlabel('epochs') plt.ylabel('accuracy') plt.grid() plt.legend() plt.show()

準確性與時代

# Ploting graph - Epoch vs Loss plt.plot(history.history['loss'], label='training loss') plt.plot(history.history['val_loss'], label='val loss') plt.title('Loss') plt.xlabel('epochs') plt.ylabel('loss') plt.grid() plt.legend() plt.show()

損失與時代

# Calculating Accuracy Score from sklearn.metrics import accuracy_score y_test = pd.read_csv('Test.csv') labels = y_test["ClassId"].values imgs = y_test["Path"].valuesdata = []for img in imgs:image = Image.open(img)image = image.resize((30,30))data.append(np.array(image))X_test = np.array(data)pred = model.predict_classes(X_test)from sklearn.metrics import accuracy_score print("Accuracy Score : ",accuracy_score(labels, pred)) Output: Accuracy Score : 0.9499604117181314

歡迎大家的閱讀,如果大家有不同的意見可以發表在留言區,我們一起學習,共同進步。

總結

以上是生活随笔為你收集整理的人工智能中,自动驾驶汽车是如何自动识别交通标志的?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 午夜精品久久久久久久第一页按摩 | 阿v视频免费在线观看 | 好姑娘在线观看高清完整版电影 | 日本成人免费观看 | 欧美高清久久 | 亚洲欧美中文日韩在线v日本 | 国产精品99无码一区二区 | 日韩视频一二三区 | 韩国三色电费2024免费吗怎么看 | 午夜在线视频免费观看 | 国产福利视频一区二区三区 | 91亚洲网站| 免费黄色资源 | 中国性老太hd大全69 | 国产丰满大乳奶水在线视频 | 成人综合色站 | 日本免费一区二区三区四区 | 午夜理伦三级做爰电影 | 曰本丰满熟妇xxxx性 | 在线成人中文字幕 | 日本午夜精品理论片a级app发布 | 久久国产三级 | 天堂资源在线播放 | 日本va欧美va欧美va精品 | 精品午夜一区二区 | 国产一二三在线 | 婷婷伊人综合 | 久插视频 | 久久久久精彩视频 | av免费看在线 | 三级第一页| 伊人精品一区二区三区 | 午夜一级在线 | 中文在线日本 | 99视频久 | 天天操人人爽 | 高hnp视频 | 91视频色版 | 亚洲一区二区乱码 | 天天综合91| 少妇高潮伦 | 日韩专区在线播放 | 欧美日韩不卡视频 | 亚洲美女啪啪 | 七月色| 夜夜嗨av一区二区三区网页 | 色小说在线 | 亚洲精品福利网站 | 天天爱综合网 | 国产免费一区二区三区最新6 | 国产在线拍揄自揄拍无码 | 中文国产字幕 | 中国大陆高清aⅴ毛片 | 麻豆av一区 | 久久成人综合网 | 国产一级免费视频 | 久久精品韩国 | 欧洲金发美女大战黑人 | 国产在线观看无码免费视频 | 99热免费精品 | 看全色黄大色黄大片女一次牛 | a视频| 好爽快一点高潮了 | 日本黄色大片免费看 | 特大黑人娇小亚洲女 | 久久久久久久久久久久久女国产乱 | jizzjizz在线 | 精品国产a线一区二区三区东京热 | 日本在线视频不卡 | 91福利片| 国产日韩亚洲 | 亚洲精品中文字幕乱码三区91 | 少妇太紧太爽又黄又硬又爽 | 国产偷亚洲偷欧美偷精品 | 在线观看av不卡 | 潘金莲一级淫片a.aaaaa播放 | 狠狠澡| 可以免费观看av的网站 | 久草新在线| 欧美一区欧美二区 | 91尤物在线 | 久久久久成人精品无码中文字幕 | 亚欧激情 | 中国女人真人一级毛片 | 澳门免费av | 国产精品五区 | 99成人免费视频 | 仙踪林久久久久久久999 | 精品丝袜一区 | 99插插插| 亚洲av高清一区二区三区 | 人妻丰满熟妇av无码区 | 亚洲av综合色区无码一区 | 日一日射一射 | 正在播放老肥熟妇露脸 | 99热导航| 又粗又猛又爽又黄少妇视频网站 | 性色一区二区 | 黄色av国产 |