(論文)WS-DAN (弱監督數據增強)

背景

  • 近期在做外賣分類的項目,外賣分類屬于細粒度圖像分類,在分類的過程中要從圖片的行人中和非機動車中區分出各類外賣(主要是美團、餓了嗎)。剛好近期發現了一片關于細粒度圖像分類較新的論文(See Better Before Looking Closer: Weakly Supervised Data Augmentation Network for Fine-Grained Visual Classification),于是就準備親生嘗試一下。
  • 論文地址:https://arxiv.org/pdf/1901.09891.pdf?點擊閱讀

目錄

  • Weakly Suprevised Learning(弱監督學習)
  • Data Augmentation(數據增強)
  • WS-DAN (Weakly Supervised Data Augmentation Network)(弱監督數據增強網絡)

Weakly Suprevised Learning(弱監督學習)

什么是弱監督學習

弱監督是相對監督而言,所謂的監督簡單的說就是label,所以監督的強弱就是從label來劃分的,弱監督就是data的label并不是很完善的情況,其種類如下:

  • 不完整監督: 部分樣本label缺失。 即只有訓練數據集的一個(通常很小的)子集有標簽,其它數據則沒有標簽。在很多任務中都存在這種情況。例如,在圖像分類中,真值標簽是人工標注的;從互聯網上獲得大量的圖片很容易,然而由于人工標注的費用,只能標注其中一個小子集的圖像。
  • 粗粒度監督: 只有粗粒度的標簽。 又以圖像分類任務為例。我們希望圖片中的每個物體都被標注;然而我們只有圖片級的標簽而沒有物體級的標簽。比如說你有一張水果的圖片,但是你不知道圖片中的水果具體是蘋果還是梨。
  • 不準確監督:給的label包含噪聲,甚至是錯誤的label,比如把“行人”標注為“汽車”。 即給定的標簽并不總是真值。出現這種情況的原因有,標注者粗心或疲倦,或者一些圖像本身就難以分類。

Data Augmentation(數據增強)

數據增強是常用的增加數據訓練數據量的方法,被用來預防過擬合和提高深度學習模型的表現。在計算機視覺領域實踐應用中常用的數據增強方法主要有:剪裁、翻轉、旋轉、比例縮放、位移、高斯噪聲以及更高級的增強技術條件型生成對抗網絡(Conditional GAN)。

  • 剪裁(Crop):從原始圖像中隨機抽樣一部分,然后將此部分調整為原圖像大小。這種方法通常也被稱為隨機剪裁
  • 翻轉(Flip):可以對圖片進行水平和垂直翻轉。
  • 旋轉(Rotation):對圖像按照圖像中心進行旋轉一定角度,并將大小作為原圖的大小。
  • 比例縮放(Scale):圖像可以向內或者向外縮放。向內縮放后通常圖像會小于原圖,通常會對超出邊界做處內容假設;向外縮放后通常會大于原圖,通常會新圖中剪裁出一部分。(它和隨機剪裁得到對圖像具有一定區別,有興趣可以自己拿一張圖片試一下看一下效果)
  • 位移(Translation):對同圖像中對目標按照x或y方向平移,因為多數情況,我們的目標對象可能出現在圖像的任何位置。
  • 高斯噪聲(Gaussian Noise):當神經網絡試圖學習高頻特征(即非常頻繁出現的無意義模式),而這些高頻特征對模型提升沒有什么幫助的時候發生過擬合(Overfitting)。因此,對這些數據人為加入噪聲,使其特征失真,減弱其對模型的影響,高斯噪聲就是這種方法之一,
  • 條件型生成對抗網絡(Conditional GANs):是一種強大的神經網絡,能將一張圖片從一個領域轉換到另一個領域中去,比如改變風景圖片的季節、轉換圖片風格等。

講了那么多數據增強的方法,和弱監督學習有什么關系呢?

常用的數據增強方法中有很多采用的是隨機的方法增廣,像隨機圖像剪裁,對圖像處理時是采用隨機對目標圖像進行剪裁對方法,這樣做有一定的概率是能剪裁到我們需要對目標,但是更大的概率是會剪裁到我們并不需要的目標,比如背景等噪聲目標。’(WS-DAN)Weakly Supervised Data Augmentation Network’(弱監督數據增強網絡)在訓練過程中通過弱監督學習產生一個用來表征目標顯著特征的’attention map’;然后利用’attention map’有目標性的指導數據增強(包括注意力剪裁’attention cropping’和注意力丟棄’attention dropping’等)。

WS-DAN (Weakly Supervised Data Augmentation Network)(弱監督數據增強網絡)

‘WS-DAN’通過兩種渠道增強圖像分類的表現,一種方式:因為我們從圖片中提取了顯著的特征,使圖片看起來更加有效’See Better’;另一種方式:注意力圈定了目標的位置,使得模型能夠更‘近’的觀察我們的目標從而提高模型表現’Look Closer’。

  • Attention CroppingAttention Dropping能夠使模型做到See Better Before Looking CloserSee BetterAttention map表示了目標的顯著特征部分。我們可以隨機選擇其中的一個顯著特征部分將它刪除,進而產生更加顯著的特征部分;或者將閑著特征部分剪裁下來用于提取更加詳細的特征。

?

  • ?

  • 訓練過程:(a)弱監督注意力學習,通過弱監督注意力學習對每一張訓練圖片生成一個注意力圖(attention maps)來表征對象對顯著特征部分。(b)注意力引導數據增強,隨機選擇一張注意力圖,通過注意力剪裁和注意力刪除的方式去增強這張圖片,最后原圖和增強對數據都會被作為輸入數據進行訓練。

?

  • ?

  • 測試過程:首先原圖通過弱監督學習輸出目標的類別概率和注意力圖;然后通過目標定位和精煉定位目標的位置;最后將前兩個階段的數據結合。

?

  • ?

  • BAP(Bilinear Attention Pooling)的過程:首先通過網絡的主干(如resnet18)部分分別得到特征圖(a)和注意力圖(b)。每一個注意力圖都代表了目標的特定部分。通過對注意力圖和特征圖的元素點乘得到各個分部特征圖,讓后利用卷積或者池化處理分部特征圖,最后將各個分部特征圖結合得到特征矩陣。

?

實踐比較

  • 注意力剪裁和隨機剪裁的比較: 隨機剪裁容易剪裁到圖像的背景,而注意力剪裁知道取那些部分會see better。

?

  • ?

  • 注意力丟棄和隨機丟棄的比較: 隨機丟棄可能會將整個目標丟棄或者只丟棄背景部分,而注意力丟棄對剔除目標顯著部分和的注意力求具有更高的效率。

?

補充

  • bilinear pooling:主要是外積,主要用于組合cnn(a和b)的feature map

?

  • ?

  • 代碼地址:https://github.com/GuYuc/WS-DAN.PyTorch?點擊跳轉

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/540104.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/540104.shtml
英文地址,請注明出處:http://en.pswp.cn/news/540104.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

羅馬音平假名片假名轉換器_關于五十音你所要知道的一切!文末附日網高清字帖...

今天開始,木子小花日本語教室將開始同時更新日語文法系列文章 和 日語真題詳解系列文章,從五十音圖的記憶方法到日語助詞的用法整理,從N5的簡單句子構成到N1復雜文法的接續記憶方法,力求做出全知乎(小聲:全…

django的web開發筆記1(智能診斷系統數據概覽記錄)

接于上一篇,這一篇主要記錄如何鏈接mysql數據庫以及從數據庫中調用數據信息到頁面,同時包含百度地圖api的一些使用。 其中包括模塊,echert圖表繪制數據調用,百度地圖數據信息調用以及一些單機效果,頁面數據調用等。 1…

Spring中應用反射機制淺析

我們知道,Spring中大量使用了反射機制,那么究竟是什么地方使用了呢?就從源頭說起吧。 一 反射源頭Class類 對類的概念我們已經非常熟悉了。比如可以有Student這個類,Person這個類。但是我們要知道,有一個叫Class的類,…

ios nslog 例子_iOS開發-使用宏自定義輸出(NSLog)

前言:1)輸出日志是會大量損耗系統性能2)輸出的信息很容易會被截取到,導致信息不安全。所以我們會在發行版(Release)取消所有的Log。如果一行一行地去注釋掉Log,顯然不是一個明確的選擇。因此我們可以使用宏去自定義Log輸出。最簡單的一個例子…

python小技巧積累--題庫(持續更新)

介紹 作為一名程序員,除了需要具備解決問題的思路以外,代碼的質量和簡潔性也很關鍵。 python內置庫中就有很多簡潔而又優雅的操作,這里的知識都來源于網絡積累, 閑暇時整理下來方便溫故。目錄 >選擇正確的內置功能 使用enum…

提高SQL執行性能方案:如何讓你的SQL運行得更快

---- 人們在使用SQL時往往會陷入一個誤區,即太關注于所得的結果是否正確,而忽略了不同的實現方法之間可能存在的性能差異,這種性能差異在大型的或是復雜的數據庫環境中(如聯機事務處理OLTP或決策支持系統DSS)中表現得尤…

休眠后gpio狀態_STM32中GPIO的8種工作模式總結

STM32中GPIO的8種工作模式總結一、推挽輸出:可以輸出高、低電平,連接數字器件;推挽結構一般是指兩個三極管分別受兩個互補信號的控制,總是在一個三極管導通的時候另一個截止。高低電平由IC的電源決定。形象點解釋:推挽&#xff0c…

Ubuntu16.04 下 tensorRT安裝

環境準備 主要是根據工程環境需要,參考trt文檔安裝trt 1.查看trt適配情況 :鏈接跳轉,注意,不同版本的trt有不同版本的文檔,請以最新文檔為準。 2.根據自己系統情況下載相關包 因為我自己拉的docker鏡像是ubuntu16.04…

左右xcode的重構選項的一些理解

Rename(重命名):對標示符進行重命名,以獲得更好的代碼可讀性,這些標示符包含類,方法或者函數的名稱. Extract(抽取):將你在XCode種選擇的代碼抽取到一個新的方法或函數中. Create SuperClass(創建父類):為Xcode中當前所選的類定義父類 Move Up(上移):將所選擇的方法,屬性,或實例…

window 如何查看tomcat 實時日志_如何處理生產環境Tomcat的catalina.out日志?

前語:不要為了讀文章而讀文章,一定要帶著問題來讀文章,勤思考。作者:jmcui 來源:http://1t.click/x4q# 前言隨著每天業務的增長,Tomcat 的catalina.out日志 變得越來越大,占用磁盤空間不說。要…

zabbix的agent端的主動模式關鍵三個參數

如多主機超過300和隊列內容過多,就采用主動模式. [rootweb03 zabbix]# egrep -v "^#|^$" zabbix_agentd.conf PidFile/var/run/zabbix/zabbix_agentd.pid LogFile/var/log/zabbix/zabbix_agentd.log LogFileSize0 StartAgents0 ServerActive172.16.1.8 Hostnameweb03…

opencv 繪制坐標曲線_OpenCV手工實現灰度及RGB直方圖

#include #include#include#include#include#include#include#include#includeusing namespacecv;using namespacestd;//單通道圖片直方圖繪制void drawHist(vectornums){Mat hist Mat::zeros(600, 800, CV_8UC3);auto Max max_element(nums.begin(), nums.end());//max迭代器類…

onnx 測試_用于ONNX的TensorRT后端

用于ONNX的TensorRT后端解析ONNX模型以使用TensorRT執行。另請參閱TensorRT文檔。有關最近更改的列表,請參見changelog。支持的TensorRT版本Master分支上的開發適用于具有完整維度和動態架構shape支持的TensorRT 7.2.1的最新版本。對于TensorRT的早期版本&#xff0…

paddlepaddle測試安裝_百度paddlepaddle深度學習7日入門-CV疫情特輯心得

正值疫情嚴重之日,作為一名研究生被迫待在家里學習,手頭的科研項目也嚴重受挫。。。偶然間,看到微信公眾號發布這門課,馬上報名,入坑!!!瞬間疫情其間有學習的目標了。。該課程學習依…

apache目錄 vscode_VsCode搭建Java開發環境(Spring Boot項目創建、運行、調試)

VsCode搭建Java開發環境(Spring Boot項目創建、運行、調試)安裝如下兩個主要擴展即可,這兩個擴展已關聯java項目開發主要使用的maven、springboot等所需要的擴展。開始步驟:在 Visual Studio Code 中打開擴展視圖(CtrlShiftX)。輸入“java”搜索商店擴展…

android dp轉px的公式_Android特效專輯——自定義不一樣的Toast

大家都知道,Android的控件有時候很難滿足我們的需求,所以我們需要自定義View。自定義的方式很多,有繼承原生控件也有直接自定義View的,今天寫的是自定義的Toast,當然,這個不是復寫Toast,是換一種表達形式&a…

code iban 是有什么組成_深入淺出Zookeeper(四):客戶端的請求在服務器中經歷了什么...

作者 泊浮目 沃趣科技高級研發工程師出品 沃趣科技1. 前言當我們向zk發出一個數據更新請求時,這個請求的處理流程是什么樣的?zk又是使用了什么共識算法來保證一致性呢?帶著這些問題,我們進入今天的正文。2. 設計模式&#xff1…

Centos7: 配置IO調度

今天有同事問我個問題:“CentOS7如何修改IO默認的調度”,我這里簡單整理下如何調整的方法: 1、查看CentOS7下IO支持的調度 1234[rootkvm02 ~]# dmesg | grep -i scheduler [ 16.900459] io scheduler noop registered[ 16.900473] io sch…

啟動activemq_「Java」 - SpringBoot amp; ActiveMQ

一、消息隊列消息隊列中間件是分布式系統中重要的組件,主要解決應用耦合、異步消息、流量削鋒等問題,實現高性能、高可用、可伸縮和最終一致性架構,是大型分布式系統不可缺少的中間件。目前在生產環境中使用較多的消息隊列有ActiveMQ、Rabbit…

永不休眠怎么設置_電腦休眠后應該怎樣喚醒?

可能有朋友會碰到這種情況,電腦屏幕顯示正在休眠,而且不停的轉圈,這是怎么回事,如何喚醒?下面讓堅哥為大家分析一下吧。電腦開機顯示休眠一般根據以下幾種情況進行處理:1、正常電腦休眠:一般的是按一下電源…