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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

之江杯2020零样本目标分割题参赛总结

發(fā)布時(shí)間:2025/3/8 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 之江杯2020零样本目标分割题参赛总结 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

  • 一、賽題簡介
  • 二、ZS3Net簡介
  • 三、我的tricks
  • 四、總結(jié)


??比賽鏈接:https://zhejianglab.aliyun.com/entrance/531816/rankingList。我最終排名第四,這是綜合決賽第一輪、第二輪線上成績和最后答辯成績的排名,實(shí)際上我最后決賽第二輪線上成績已達(dá)到第二。和商業(yè)賽不同,之江杯更關(guān)注學(xué)術(shù)問題,這個(gè)賽題也比較前沿,報(bào)名團(tuán)隊(duì)只有三百多個(gè),但看最后的決賽名單就知道,來的多是非常專業(yè)的團(tuán)隊(duì)。我這次依然是solo參賽,最后居然沖到了前排,真是沒想到,實(shí)屬幸運(yùn)。


一、賽題簡介

??本題屬于圖像語義分割任務(wù),零樣本是指沒有提供任何測試集類別的樣本,但提供了和測試集相似類別的圖像及語義分割標(biāo)注作為訓(xùn)練集,此外可以使用已訓(xùn)練好的詞向量表來連結(jié)訓(xùn)練集類別和測試集類別間的語義關(guān)系,(詞向量可以理解為一種用數(shù)字編碼表示的詞典)。舉例:訓(xùn)練集中提供了西瓜的圖像分割樣本,測試集要求實(shí)現(xiàn)哈密瓜的圖像分割,好比一個(gè)人見過西瓜但從來沒有見過哈密瓜,他可以通過查閱西瓜和哈密瓜的詞典來推測哈密瓜長什么樣子。
??零樣本目標(biāo)分割任務(wù)的初衷是為了解決圖像語義分割問題標(biāo)注成本非常高的問題,同時(shí)這也是對更為通用的人工智能的一種探索,要求機(jī)器不僅能夠識(shí)別圖像,還要把圖像名稱的語義和圖像特征對應(yīng)起來。本賽題訓(xùn)練集200類(下稱已知類,seen),共約80000張圖片,是和ImageNet風(fēng)格類似的實(shí)物照片,測試集初賽和決賽都各有不同的50類(下稱未知類,unseen),每類約100張圖片。
??這個(gè)問題比較前沿,相關(guān)文獻(xiàn)和開源不多,能夠查到的按時(shí)間順序排序是SPNet -> ZS3Net -> CaGNet。CaGNet應(yīng)該是當(dāng)時(shí)的SOTA,這次比賽CaGNet的作者團(tuán)隊(duì)也來了,但最后沒有獲獎(jiǎng),學(xué)術(shù)和比賽畢竟還是不一樣,比賽需要很多trick,就比如孔子參加科舉未必能中舉因?yàn)樗粫?huì)寫八股文,但大師的成就不是區(qū)區(qū)小賽的成績所能比的,向他們致敬。這次比賽的冠軍團(tuán)隊(duì)來自浙江大學(xué),確實(shí)非常牛,心服口服,他們的方法已經(jīng)撰寫論文被頂會(huì)錄用(好像是AAAI?),應(yīng)該是新的SOTA了。

二、ZS3Net簡介

??由于賽程短,我還是零基礎(chǔ)進(jìn)入,自然是采用本渣一貫的策略:走別人的路,讓別人無路可走(囧)??戳艘蝗ξ墨I(xiàn)后,覺得CaGNet較難,估計(jì)來不及,所以從ZS3Net下手,ZS3Net是該領(lǐng)域較早期的一個(gè)作品。下面簡介一下ZS3Net和我的理解。
??原文NIPS2019:https://arxiv.org/abs/1906.00817
??代碼:https://github.com/valeoai/ZS3
??先放上論文主圖:

??ZS3在經(jīng)典圖像分割網(wǎng)絡(luò)DeepLabV3+基礎(chǔ)上動(dòng)手術(shù),首先把網(wǎng)絡(luò)切開,切出末層和除末層之外的前層。網(wǎng)絡(luò)末層的輸出是像素級(jí)的分類結(jié)果,而末層的輸入就是每像素所屬類別的語義特征,語義特征是什么?也是詞向量。而零樣本任務(wù)中已知類和未知類的唯一連結(jié)就是詞向量,這樣我們從DeepLabV3+末層的輸入入手,就可以把已知類和未知類關(guān)聯(lián)起來。
??然而DeepLabV3+的末層輸入的這個(gè)詞向量和我們從其他文本中訓(xùn)練得到的詞向量(我使用的是Glove6B)是不對應(yīng)的。我們可以想象一下,假設(shè)末層輸入的語義特征是300維,它可能是按照顏色、紋理、形狀…這樣的300個(gè)屬性排列的,但我們從外界得到的詞向量可能是物種、材料…、形狀、紋理、顏色…等這樣的排列,兩者有交叉部分,但順序不同,描述方式也不同,好比是兩本詞典,你需要一個(gè)翻譯機(jī)制翻譯過來。
??ZS3Net創(chuàng)造性的提出用生成器的方式實(shí)現(xiàn)這個(gè)翻譯。這個(gè)生成器的輸入是外界得到的詞向量,比如Glove6B中詞向量,輸出是剛才提到特征向量(即DeepLabv3+末層的輸入,當(dāng)然它也是前層的輸出),使用已知類的Glove6B詞向量和DeepLabv3+前層輸出特征向量訓(xùn)練這個(gè)生成器,訓(xùn)練好的生成器就掌握了這種翻譯機(jī)制,可以用來根據(jù)未知類的Glove6B詞向量生成未知類的特征向量。
得到了未知類的特征向量再用它來訓(xùn)練DeepLabV3+的末層(前層凍結(jié)不訓(xùn)練),得到了新的網(wǎng)絡(luò)權(quán)重,就可以直接用于未知類的分割任務(wù)了。
??這個(gè)問題可能有點(diǎn)繞,我再來捋一遍,其實(shí)就是分為3步:
??1,在已知類上把DeepLabV3+訓(xùn)練充分;
??2,使用訓(xùn)練集類別的詞向量和訓(xùn)練集圖片經(jīng)DeepLabV3+前層輸出的特征向量訓(xùn)練一個(gè)生成器;
??3,從Glove6B中得到未知類的詞向量,用生成器生成特征向量,用這個(gè)特征向量替換訓(xùn)練集圖片經(jīng)DeepLabV3+前層輸出的特征向量(注,只替換目標(biāo)部分,不替換背景),同時(shí)也替換訓(xùn)練集標(biāo)注Label中的已知類類別為未知類類別。然后再凍結(jié)前層,重新訓(xùn)練末層。最后把前層權(quán)重和末層權(quán)重合并起來得到的新的網(wǎng)絡(luò)權(quán)重,就可以直接用于未知類測試集的推理。
??實(shí)際ZS3Net原文方法比我講的要復(fù)雜一些,還用了一些技巧,但核心原理就是我剛才講的三步。

三、我的tricks

??單靠已有開源想在這種比賽中獲勝是不可能的,我在仔細(xì)分析數(shù)據(jù)、調(diào)試網(wǎng)絡(luò)之后,進(jìn)行了以下三點(diǎn)主要的改進(jìn),正是這三點(diǎn)改進(jìn)使得分有了很大提高。
1、對訓(xùn)練集逐類別加強(qiáng)訓(xùn)練
??由于本題訓(xùn)練集的類別數(shù)特別多,高達(dá)200類,而且各類差別很大,有的很好訓(xùn)練,而有的很難訓(xùn)練,主要是上帝造的東西都比較好訓(xùn)練一些,人造的東西都難訓(xùn)練。如果全部丟進(jìn)去一起訓(xùn)練,網(wǎng)絡(luò)訓(xùn)練進(jìn)展非常緩慢,而且我卡也有限,只有2080ti,跑兩天兩夜也只達(dá)到mIoU0.25的水平。逼的沒辦法,我設(shè)計(jì)了一種逐類別訓(xùn)練的方法,效果不錯(cuò)。具體如下:


??step1: 先把200類全部訓(xùn)練幾個(gè)epoch,驗(yàn)證每一類的IoU,把IoU達(dá)到一定閾值以上的類別稱為learned類,表示它們已經(jīng)訓(xùn)練好了,把剩余的稱為unlearn類。
??step2: 然后每epoch從unlearn類中隨機(jī)挑選10個(gè)作為to learn類,從learned類中每類選50張圖片以保持記憶性,從to learn中每類選200張圖片以加強(qiáng)訓(xùn)練。每輪訓(xùn)練結(jié)束再驗(yàn)證,重新劃分learned類和unlearn類。
??如此循環(huán)往復(fù)。我最后達(dá)到159類learned,還有41類確實(shí)非常難以分類,仍然是unlearn。這樣可以達(dá)到mIoU0.36,比直接訓(xùn)練法整整提高了11個(gè)點(diǎn)!
2、只使用優(yōu)質(zhì)數(shù)據(jù)訓(xùn)練生成器
??ZS3Net的生成器使用GMMN,它比較簡單,參數(shù)也少,所以訓(xùn)練它不難,不需要非常大量的數(shù)據(jù)。但是由于deeplabv3+本身在本題訓(xùn)練集上的成績并不是很高,mIoU0.36實(shí)際上意味著它有很多分割結(jié)果仍是錯(cuò)誤的,如果我們用這些錯(cuò)誤的特征向量和類別對應(yīng)關(guān)系去訓(xùn)練這個(gè)生成器,這個(gè)生成器的翻譯就會(huì)不準(zhǔn)。
??所以我們應(yīng)該去掉那些錯(cuò)誤數(shù)據(jù),只喂給生成器最好的飼料來訓(xùn)練。一個(gè)自然的想法是只用learned類來訓(xùn)練它,更進(jìn)一步還可以深入到每張圖片,比如計(jì)算每張圖片的acc,只用acc高的圖片來喂它。這樣訓(xùn)練出來的生成器就更加準(zhǔn)確。
3、用一種新穎的方法對結(jié)果進(jìn)行融合
??觀察測試集推理結(jié)果我發(fā)現(xiàn),網(wǎng)絡(luò)對很多圖片分割也都大致能分割出來,但分類卻是錯(cuò)誤的,更細(xì)致的觀察我發(fā)現(xiàn)如果網(wǎng)絡(luò)對某張圖片分類錯(cuò)誤時(shí)它會(huì)表現(xiàn)的沒有正確時(shí)那么“自信”,就是它分割出的面積會(huì)小一些,比如缺一塊或者中間有孔洞。這樣我就想出了采用如下方式進(jìn)行融合:
??step1:在不同訓(xùn)練條件下得到的各個(gè)權(quán)重分別對測試集做推理
??step2:對比同一張圖片在不同權(quán)重下的推理結(jié)果,選擇目標(biāo)面積較大的一個(gè)作為最終推理結(jié)果。
這個(gè)方法也很有效,我在決賽第一輪的時(shí)候沒有使用融合,只排到第6名,決賽第二輪的時(shí)候使用了這個(gè)融合,排到第2名。

四、總結(jié)

??本次賽制是初賽取前12名進(jìn)入決賽,決賽前6有獎(jiǎng),我是以初賽第11名進(jìn)入決賽的,所以我去現(xiàn)場的時(shí)候沒報(bào)希望,心態(tài)也非常放松。由于決賽采用了未知類詞向量統(tǒng)一提供的方式,而初賽很多團(tuán)隊(duì)在詞向量方面做了不少工作,所以改這種方式之后很多隊(duì)伍翻了船,而我自始至終本本分分的做零樣本網(wǎng)絡(luò)方面的工作,沒有去琢磨詞向量,所以決賽我占優(yōu)勢。另外決賽第二輪我想到了用上面提到的融合方法又提了不少分,說實(shí)話第一輪我也想到了,但是當(dāng)天一直在趕路,而且心態(tài)上沒抱希望所以沒有打起精神來改代碼就沒用融合。
這次比賽認(rèn)識(shí)了很多大佬,結(jié)識(shí)了幾位朋友,收獲滿滿。

總結(jié)

以上是生活随笔為你收集整理的之江杯2020零样本目标分割题参赛总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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