AlexeyAB DarkNet YOLOv3框架解析与应用实践(四)
AlexeyAB
DarkNet YOLOv3框架解析與應(yīng)用實(shí)踐(四)
Nightmare
從前,在一所大學(xué)的大樓里,西蒙尼亞、維達(dá)第和齊瑟曼有一個(gè)很好的主意,幾乎和你現(xiàn)在坐的大樓完全不同。他們想,嘿,我們一直在向前運(yùn)行這些神經(jīng)網(wǎng)絡(luò),它們工作得很好,為什么不也向后運(yùn)行呢?這樣我們就能知道電腦在想什么。。。
由此產(chǎn)生的圖像是如此恐怖,如此怪異,以至于他們的尖叫聲可以聽到一路坦普頓。
許多研究人員已經(jīng)擴(kuò)大了他們的工作范圍,包括谷歌一篇廣為人知的博客文章。 這是我抄襲那些抄襲那些有好主意的人。
與Darknet做惡夢(mèng)
如果沒有安裝Darknet,請(qǐng)先安裝!我們將使用VGG-16預(yù)訓(xùn)練模型來做噩夢(mèng)。但是,我們不需要整個(gè)模型,只需要卷積層,所以我們可以使用vgg-conv.cfg文件(應(yīng)該已經(jīng)在cfg/子目錄中有了這個(gè)文件)。你需要在這里下載預(yù)訓(xùn)練重量(57MB)。
現(xiàn)在我們可以生成您在第一段中看到的尖叫圖像:
./darknet nightmare cfg/vgg-conv.cfg vgg-conv.weights
data/scream.jpg 10
命令分解如下:首先是可執(zhí)行的子例程,./darknet nightmare,然后是配置文件和權(quán)重文件cfg/vgg-conv.cfg vgg-conv.weights。最后,我們得到了要修改的圖像和要瞄準(zhǔn)的配置文件層data/scream.jpg 10。
這可能需要一段時(shí)間,特別是如果您只使用CPU。在我的機(jī)器上大約需要15分鐘。我強(qiáng)烈建議讓CUDA更快地產(chǎn)生噩夢(mèng)。啟用CUDA后,在泰坦X上大約需要7秒。
你可以嘗試較低的層次,以獲得更藝術(shù)的感覺:
./darknet nightmare
cfg/vgg-conv.cfg vgg-conv.weights data/dog.jpg 7
或者用更高的層次來獲得更復(fù)雜的緊急行為:
./darknet nightmare cfg/vgg-conv.cfg vgg-conv.weights
data/eagle.jpg 13
Special Options
你可能會(huì)注意到你的尖叫家伙看起來和我的不太一樣。那是因?yàn)槲矣幸恍┨貏e的選擇!我實(shí)際使用的命令是:
./darknet nightmare
cfg/vgg-conv.cfg vgg-conv.weights \
data/scream.jpg
10 -range 3 -iters 20 -rate .01 -rounds 4
Darknet在連續(xù)的回合中生成圖像,上一輪的輸出將進(jìn)入下一輪。每一輪的圖像也被寫入磁盤。每一輪由若干次迭代組成。在每次迭代中,Darknet都會(huì)對(duì)圖像進(jìn)行修改,以在一定比例上增強(qiáng)選定的層。音階是從一組八度音階中隨機(jī)選取的。該層是從一系列可能的層中隨機(jī)選擇的。修改此過程的命令包括:
–rounds n:更改輪數(shù)(默認(rèn)為1)。多輪意味著生成的圖像越多,通常對(duì)原始圖像的更改也越多。
-iters
n:更改每輪的迭代次數(shù)(默認(rèn)為10)。更多的迭代意味著每輪圖像的更多更改。
-range
n:更改可能圖層的范圍(默認(rèn)值1)。如果設(shè)置為1,則每次迭代時(shí)僅選擇給定層。否則,一個(gè)層將在比范圍內(nèi)隨機(jī)選擇(例如10-范圍3將在層9-11之間選擇)。
-八度音階n:更改可能的音階數(shù)(默認(rèn)為4)。在一個(gè)倍頻程下,只檢查全尺寸圖像。每增加一個(gè)八度音階,圖像就會(huì)增加一個(gè)更小的版本(前一個(gè)八度音階的3/4大小)。
-rate
x:更改圖像的學(xué)習(xí)速率(默認(rèn)值為.05)。越高意味著每次迭代對(duì)圖像的更改越多,但也有一些不穩(wěn)定性和不精確性。
-thresh
x:更改要放大的特征的閾值(默認(rèn)值為1.0)。在目標(biāo)層中,僅放大偏離平均值超過x個(gè)標(biāo)準(zhǔn)差的特征。較高的閾值意味著放大的特征較少。
-zoom x:更改每一輪后應(yīng)用于圖像的縮放(默認(rèn)為1.0)。您可以選擇添加放大(x<1)或縮小(x>1)以在每一輪后應(yīng)用于圖像。
-rotate
x:更改每一輪后應(yīng)用的旋轉(zhuǎn)(默認(rèn)為0.0)。每輪后可選旋轉(zhuǎn)。
A Smaller Model
VGG-16是一個(gè)非常大的模型,如果內(nèi)存不足,請(qǐng)嘗試使用這個(gè)模型!
cfg文件在cfg/子目錄中(或者這里),您可以下載權(quán)重(72mb)。
./darknet nightmare
cfg/jnet-conv.cfg jnet-conv.weights \
data/yo.jpg 11
-rounds 4 -range 3
Comparison With Deep Dream and GoogleNet
這些例子使用VGG-16網(wǎng)絡(luò)。雖然古格倫似乎專注于狗和蛞蝓,但VGG喜歡生產(chǎn)獾,一種嚙齒動(dòng)物和猴子之間的奇怪雜交:
VGG也沒有GoogleNet所擁有的本地響應(yīng)規(guī)范化層。因此,它的夢(mèng)魘經(jīng)常被彩色的星光暴過度飽和。
總結(jié)
以上是生活随笔為你收集整理的AlexeyAB DarkNet YOLOv3框架解析与应用实践(四)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: AlexeyAB DarkNet YOL
- 下一篇: AlexeyAB DarkNet YOL