杭州品牌網(wǎng)站設(shè)計(jì)中山企業(yè)網(wǎng)站制作公司
鶴壁市浩天電氣有限公司
2026/01/24 08:27:49
杭州品牌網(wǎng)站設(shè)計(jì),中山企業(yè)網(wǎng)站制作公司,網(wǎng)站開(kāi)發(fā)交接協(xié)議書(shū),網(wǎng)站設(shè)計(jì)賞析基于Tensorflow的垃圾分類(lèi)系統(tǒng)
自訓(xùn)練CNN算法模型與mobileNet遷移學(xué)習(xí)#xff0c;可用于圖片或視頻垃圾分類(lèi)。
模型經(jīng)過(guò)訓(xùn)練#xff0c;具有識(shí)別能力#xff0c;可以對(duì)視頻畫(huà)面中的物品進(jìn)行分類(lèi)#xff0c;包括4個(gè)分類(lèi)大類(lèi)#xff0c;訓(xùn)練集有八萬(wàn)多張圖像#xff0c;訓(xùn)練…基于Tensorflow的垃圾分類(lèi)系統(tǒng) 自訓(xùn)練CNN算法模型與mobileNet遷移學(xué)習(xí)可用于圖片或視頻垃圾分類(lèi)。 模型經(jīng)過(guò)訓(xùn)練具有識(shí)別能力可以對(duì)視頻畫(huà)面中的物品進(jìn)行分類(lèi)包括4個(gè)分類(lèi)大類(lèi)訓(xùn)練集有八萬(wàn)多張圖像訓(xùn)練集驗(yàn)證準(zhǔn)確率為91—95%驗(yàn)證集準(zhǔn)確率85—90%具有較高的準(zhǔn)確率。 該模型可以應(yīng)用于智能垃圾桶、智能回收站等場(chǎng)景中提高垃圾分類(lèi)效率。最近在搗鼓一個(gè)基于TensorFlow的垃圾分類(lèi)系統(tǒng)感覺(jué)挺有意思的分享一下我的思路和代碼。這個(gè)系統(tǒng)主要是通過(guò)自訓(xùn)練的CNN算法模型和mobileNet遷移學(xué)習(xí)來(lái)實(shí)現(xiàn)的能夠?qū)D片或視頻中的垃圾進(jìn)行分類(lèi)。模型訓(xùn)練了八萬(wàn)多張圖像訓(xùn)練集的準(zhǔn)確率在91%到95%之間驗(yàn)證集的準(zhǔn)確率也有85%到90%效果還不錯(cuò)。模型架構(gòu)首先我們來(lái)看一下模型的架構(gòu)。我選擇了一個(gè)自訓(xùn)練的CNN模型同時(shí)也嘗試了mobileNet的遷移學(xué)習(xí)。mobileNet是一個(gè)輕量級(jí)的模型適合在移動(dòng)設(shè)備上運(yùn)行這對(duì)于我們想要部署到智能垃圾桶或回收站的場(chǎng)景來(lái)說(shuō)非常合適。import tensorflow as tf from tensorflow.keras import layers, models def build_cnn_model(): model models.Sequential([ layers.Conv2D(32, (3, 3), activationrelu, input_shape(224, 224, 3)), layers.MaxPooling2D((2, 2)), layers.Conv2D(64, (3, 3), activationrelu), layers.MaxPooling2D((2, 2)), layers.Conv2D(128, (3, 3), activationrelu), layers.MaxPooling2D((2, 2)), layers.Flatten(), layers.Dense(128, activationrelu), layers.Dense(4, activationsoftmax) # 4個(gè)分類(lèi)大類(lèi) ]) return model # mobileNet遷移學(xué)習(xí) def build_mobilenet_model(): base_model tf.keras.applications.MobileNetV2(input_shape(224, 224, 3), include_topFalse, weightsimagenet) base_model.trainable False model models.Sequential([ base_model, layers.GlobalAveragePooling2D(), layers.Dense(128, activationrelu), layers.Dense(4, activationsoftmax) # 4個(gè)分類(lèi)大類(lèi) ]) return model數(shù)據(jù)準(zhǔn)備接下來(lái)是數(shù)據(jù)準(zhǔn)備部分。我們使用了八萬(wàn)多張圖像進(jìn)行訓(xùn)練這些圖像涵蓋了四個(gè)主要的垃圾分類(lèi)類(lèi)別。為了增強(qiáng)模型的泛化能力我還對(duì)數(shù)據(jù)進(jìn)行了增強(qiáng)處理比如隨機(jī)旋轉(zhuǎn)、縮放、翻轉(zhuǎn)等。from tensorflow.keras.preprocessing.image import ImageDataGenerator train_datagen ImageDataGenerator( rescale1./255, rotation_range20, width_shift_range0.2, height_shift_range0.2, shear_range0.2, zoom_range0.2, horizontal_flipTrue, fill_modenearest ) train_generator train_datagen.flow_from_directory( path_to_train_data, target_size(224, 224), batch_size32, class_modecategorical )模型訓(xùn)練模型訓(xùn)練部分我使用了Adam優(yōu)化器和交叉熵?fù)p失函數(shù)。為了監(jiān)控訓(xùn)練過(guò)程我還添加了準(zhǔn)確率和損失值的回調(diào)函數(shù)。model build_mobilenet_model() model.compile(optimizeradam, losscategorical_crossentropy, metrics[accuracy]) history model.fit( train_generator, epochs10, validation_datavalidation_generator )模型評(píng)估訓(xùn)練完成后我對(duì)模型進(jìn)行了評(píng)估。訓(xùn)練集的準(zhǔn)確率在91%到95%之間驗(yàn)證集的準(zhǔn)確率在85%到90%之間效果還是相當(dāng)不錯(cuò)的。loss, accuracy model.evaluate(test_generator) print(fTest accuracy: {accuracy:.2f})應(yīng)用場(chǎng)景這個(gè)模型可以應(yīng)用在智能垃圾桶、智能回收站等場(chǎng)景中。通過(guò)攝像頭實(shí)時(shí)捕捉畫(huà)面模型可以快速識(shí)別垃圾類(lèi)別并自動(dòng)分類(lèi)。這不僅提高了垃圾分類(lèi)的效率還能減少人工分類(lèi)的錯(cuò)誤率??偨Y(jié)總的來(lái)說(shuō)這個(gè)基于TensorFlow的垃圾分類(lèi)系統(tǒng)還是挺實(shí)用的。通過(guò)自訓(xùn)練的CNN模型和mobileNet遷移學(xué)習(xí)我們能夠達(dá)到較高的分類(lèi)準(zhǔn)確率。未來(lái)還可以考慮進(jìn)一步優(yōu)化模型比如增加更多的訓(xùn)練數(shù)據(jù)或者嘗試其他更高效的模型架構(gòu)。好了今天就先聊到這里如果你對(duì)這個(gè)項(xiàng)目感興趣歡迎在評(píng)論區(qū)交流討論