程 卓
(貴陽職業技術學院,貴州 貴陽 550081)
在當前互聯網環境中,圖像和視頻數據的廣泛傳播推動了搜索應用和圖像識別算法的不斷發展。這些算法在圖像標注、物體檢測和場景分類等領域取得了重大突破[1]。與此同時,卷積神經網絡(Convolutional Neural Networks,CNN)在多個模式和圖像識別應用中得到了高效的應用,如手勢識別、人臉識別、物體分類和生成場景描述[2]。這些應用的成功整合得益于深度學習算法的研究和豐富的開源標記數據集,如ImageNet、CIFAR 等[3]。
本文的核心目標是分析不同類型的預訓練神經網絡模型在物體檢測方面的性能差異,將重點評估AlexNet、GoogleNet(Inception 模型)和ResNet50這3 種CNN 模型。對這3 種神經網絡的圖像檢測性能進行詳細評估和比較,以了解它們在圖像識別過程的能力。
本文提到的3 個CNN 模型都包含以下幾個關鍵層次。這些層次在圖像目標識別任務中扮演不同的角色。
輸入層(Input Layer)是每個CNN 的第一層,接受原始圖像數據,通常會對輸入圖像進行大小調整,以滿足模型的輸入要求,通常是固定大小的圖像。
卷積層(Convolutional Layers)是CNN 的核心組件,充當圖像的過濾器,用來提取圖像中的特征。通過卷積操作,卷積層會在圖像上滑動一些濾波器(卷積核),從圖像中捕捉不同的特征,如邊緣、紋理等。卷積層的輸出通常稱為特征圖,表示圖像中不同位置的特征[4]。
池化層(Pooling Layers)通常緊隨卷積層之后,主要功能是減小特征圖的尺寸,同時保留重要信息。最常見的池化操作是最大池化,保留每個池化窗口中的最大值,從而保持最顯著的特征。
線性整流單元層(ReLU Layers)接在池化層之后,作用是將特征圖中的負值轉換為零,同時保持正值不變,有助于增加網絡的非線性性,使其能夠學習更復雜的特征和模式。
全連接層(Fully Connected Layers)是CNN 的最后一層,通常用于將高級特征翻譯成與類別標簽相關的輸出。這一層將前面層提取的特征映射到類別的概率分布,通常使用softmax 函數來獲得預測概率。全連接層將網絡的輸出與特定的類別進行匹配,以實現圖像目標識別[5-6]。
3 個CNN 模型的性能評估具體執行步驟如下。
第一,創建訓練數據集和測試數據集。首先,從超級類別的圖像數據中選擇一組圖像用于訓練和測試。對于AlexNet,這些圖像通常被調整為(224,244)像素大小。對于GoogleNet 和ResNet50,圖像通常被調整為(227,227)像素大小。數據集隨后被劃分為訓練數據集和驗證數據集兩個部分。訓練數據集用于模型的訓練,驗證數據集用于模型性能的評估。
第二,修改CNN 網絡。對于每個CNN 模型,需要根據任務的特定需求來修改模型的結構。通常,最后兩層將被替換為全連接層和分類輸出層。全連接層的大小通常設置為與訓練數據集中的類別數相同,以確保模型能夠進行適當的分類。可能還需要調整全連接層的學習率,以加快網絡訓練的速度。
第三,訓練網絡。在此步驟中,需要設置一些訓練選項,包括學習率、批量大小以及用于驗證網絡性能的驗證數據。學習率用來控制權重更新的速度,批量大小指定一次性用于更新權重的訓練樣本數量。驗證數據用于定期評估網絡在不同訓練周期中的性能。
第四,測試網絡的準確性。使用已經微調的CNN 模型對驗證數據集中的圖像進行分類。模型將對每個圖像進行分類,并輸出類別標簽的概率分布。然后,可以計算分類準確度,即模型正確分類的圖像所占的比例。這個指標用來評估模型的性能和精確度,以確定哪個模型在圖像分類任務中表現得更好。
CIFAR-100 圖像數據集包含多個通用物體圖像的超類別,以及每個超類別的多個子類別。CIFAR-100 數據集共有100 個圖像類別,每個類別都有600 張圖像。這600 張圖像分為每個類別的500 張訓練圖像和100 張測試圖像,總共有60 000張不同的圖像。
CIFAR-10 數據集包含32×32 像素的彩色圖像,分為10 個類別,每個類別有6 000 張圖像,總共有60 000 張圖像,包括50 000 張訓練圖像和10 000張測試圖像。數據集分為5 個訓練批次和1 個測試批次,每個批次包含10 000 張圖像。測試圖像是從每個類別中隨機選擇的。
為了進行研究,需要從每個超類別中選擇一些通用類別用于網絡的訓練。本文研究所選的超類別包括床、自行車、公共汽車、椅子、沙發、摩托車、有軌電車、桌子、火車和衣柜。這些類別將用于訓練神經網絡,以便進行后續的性能比較。
性能分析是通過在CIFAR-100 和CIFAR-10數據集上測試每個CNN 網絡模型的圖像分類算法進行的。表1 和表2 分別顯示了不同CNN 模型在CIFAR-100 和CIFAR-10 測試數據集上不同圖像類別的分類準確性。這兩個表格列出了不同圖像類別以及每個CNN 模型在該類別上正確識別的圖像數量百分比。

表1 不同CNN 模型在CIFAR-100 測試數據集上的分類準確率 單位:%

表2 不同CNN 模型在CIFAR-10 測試數據集上的分類準確率單位:%
表3 是3 個CNN 模型對自行車的預測結果,顯示了3 個網絡模型對自行車類的預測準確性。從表3 可以看到,AlexNet 對自行車類的最高預測是摩托車,預測能力稍差。GoogleNet 在預測過程中表現最佳,ResNet 的預測結果性能居中。

表3 不同CNN 模型對CIFAR-100 數據集的自行車類別預測準確度對比
表4 展示了不同CNN 模型對船類別的結果,其中每個網絡的預測標簽和得分顯示了它們對對象的檢測準確性。對于CIFAR-100 數據集的大多數類別,GoogleNet 通常提供了正確的標簽和分類,而ResNet50 在CIFAR-100 類別識別中表現中等。然而,在CIFAR-10 數據集上,ResNet50 提供了最佳的分類結果。這可能是因為大多數分類器是針對包含簡單、細微特征的物體類別進行訓練的,因此網絡模型可能會在物體的外觀和屬性上產生混淆。

表4 不同CNN 模型對CIFAR-10 數據集的自行車類別預測準確度對比
觀察所有表格結果可以看出,不同CNN 模型在不同類別圖像上的分類準確性存在差異。本文使用以下方法來計算CNN 模型生成的輸入類別的概率分布。這種方法關注目標識別過程中最有可能被識別出的前10 個類別。首先,基于圖像的概率分布,將每個圖像分為前10 個最有可能的類別之一。其次,計算每個圖像在每個目標類別下被分類的次數。利用上述方法進行計算獲得的結果如表5 所示。通過對比可以看出,GoogleNet 和ResNet50 網絡模型的性能要優于AlexNet 模型。

表5 不同CNN 模型對CIFAR-10 數據集自行車類別的預測準確度對比 單位:%
本文分析了3 種不同的CNN 模型在CIFAR-10和CIFAR-100 數據集上的預測準確性,提供了詳細的預測分析方法,比較了這些網絡在不同類別物體上的預測性能。盡管在現實生活中,床、沙發和椅子等物體是不同且容易識別的,但經過訓練的網絡模型仍可能出現混淆和錯誤結果,因此它們的準確率有所不同。這些研究結果有助于深入了解CNN在圖像分類任務中的性能和適用性。