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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人工智能 > pytorch >内容正文

pytorch

深度学习项目-人群密度估计

發(fā)布時(shí)間:2024/4/11 pytorch 64 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深度学习项目-人群密度估计 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Multi-scale Convolution Neural Networks for Crowd Counting

項(xiàng)目簡介

復(fù)現(xiàn)論文Multi-scale Convolution Neural Networks for Crowd Counting。考慮到目前還沒有具體寫的比較完善的基于Keras的復(fù)現(xiàn),這對于迅速成型的頂層系統(tǒng)的構(gòu)建不太方便。本項(xiàng)目使用的是TensorFlow2中Keras的API,不建議使用單獨(dú)的Keras,本項(xiàng)目設(shè)計(jì)在多個(gè)數(shù)據(jù)集上進(jìn)行訓(xùn)練測試,模型泛化能力強(qiáng),實(shí)際主要ShanghaiTech數(shù)據(jù)集上訓(xùn)練獲得模型。

數(shù)據(jù)集下載

  • ShanghaiTech Dataset
    • 下載地址
  • Mall Dataset
    • 下載地址
  • The_UCF_CC_50 Dataset
    • 下載地址
  • 地址說明
    • 不提供數(shù)據(jù)集官方地址,數(shù)據(jù)集均放置在我的谷歌云盤,開啟共享,無法訪問的可以郵箱聯(lián)系我,我將提供百度網(wǎng)盤地址。

論文說明

針對深度神經(jīng)網(wǎng)絡(luò)近幾年的發(fā)展以及現(xiàn)有的網(wǎng)絡(luò)模型難以優(yōu)化以及計(jì)算耗時(shí),主要提出了multi-scale blob模塊(類Inception結(jié)構(gòu))進(jìn)行相關(guān)特征的提取。

作者主要提出了MSCNN的網(wǎng)絡(luò)結(jié)構(gòu),該結(jié)構(gòu)比起MCNN具有更好的處理能力及效果且參數(shù)量大幅度縮減,并且縱向?qū)Ρ攘薒BP+RR、MCNN+CCR等模型。

具體論文文件可以直接訪問。

環(huán)境配置

  • 基于Python3.6
  • 需要第三方包已在requirements列出
    • 切換到requirements文件所在目錄,執(zhí)行命令pip install -r requirements.txt即可配置環(huán)境
  • 腳本運(yùn)行說明
    • 訓(xùn)練
      • 命令行執(zhí)行
        • python train.py -b 16
      • 更詳細(xì)的選項(xiàng)可以執(zhí)行python train.py -h查看幫助
    • 測試
      • 命令行執(zhí)行
        • python test.py -s yes
      • 更詳細(xì)的選項(xiàng)可以執(zhí)行python test.py -h查看幫助

模型構(gòu)建

針對之前出現(xiàn)的損失大幅降低但密度圖預(yù)測全0的情況,主要是由于回歸器層激活函數(shù)不當(dāng),為了獲得更好的收斂結(jié)果,最后一層的激活函數(shù)調(diào)整如下。

output=Relu(Sigmoid(x))output = Relu(Sigmoid(x))output=Relu(Sigmoid(x))

使用Keras的Function API構(gòu)建模型的代碼如下,更具體的可以查看文末的Github地址。

def MSCNN(input_shape=(224, 224, 3)):"""模型構(gòu)建本論文模型簡單:param input_shape 輸入圖片尺寸:return:"""input_tensor = Input(shape=input_shape)# block1x = Conv2D(filters=64, kernel_size=(9, 9), strides=1, padding='same', activation='relu')(input_tensor)# block2x = MSB(4*16)(x)x = MaxPooling2D(pool_size=(2, 2), strides=(2, 2))(x)# block3x = MSB(4*32)(x)x = MSB(4*32)(x)x = MaxPooling2D(pool_size=(2, 2), strides=(2, 2))(x)x = MSB_mini(3*64)(x)x = MSB_mini(3*64)(x)x = Conv2D(1000, (1, 1), activation='relu', kernel_regularizer=l2(5e-4))(x)x = Conv2D(1, (1, 1))(x)x = Activation('sigmoid')(x)x = Activation('relu')(x)model = Model(inputs=input_tensor, outputs=x)return model

注意,輸出層不能使用傳統(tǒng)的Relu,會(huì)輸出陷入“死區(qū)”,導(dǎo)致預(yù)測均為0值且loss確實(shí)在不斷降低。

結(jié)構(gòu)概念圖

結(jié)構(gòu)配置圖

模型訓(xùn)練

訓(xùn)練數(shù)據(jù)集

主要在ShanghaiTech上訓(xùn)練,其余數(shù)據(jù)集類似封裝data loader即可完成訓(xùn)練或者測試。

訓(xùn)練效果展示(模型簡單訓(xùn)練5輪)

對ShanghaiTech驗(yàn)證集隨機(jī)5張圖片進(jìn)行人群密度估計(jì),結(jié)果如下,可以看到,收斂的效果還是不錯(cuò)的,想要獲得更好的效果則需要更為細(xì)致的訓(xùn)練調(diào)整。

補(bǔ)充說明

訓(xùn)練相關(guān)完整代碼已經(jīng)上傳到我的Github,歡迎Star或者Fork。如有錯(cuò)誤,歡迎指正。

總結(jié)

以上是生活随笔為你收集整理的深度学习项目-人群密度估计的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。