国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

基于yolov5的遙感圖像目標檢測(NWPU VHR-10)

這篇具有很好參考價值的文章主要介紹了基于yolov5的遙感圖像目標檢測(NWPU VHR-10)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

最近在做畢設(shè),感覺網(wǎng)上信息不是很全,把自己的訓練過程寫下來供做這個方向的友友學習。只有簡單的復現(xiàn),其余的還沒探索到。

一、數(shù)據(jù)集以及數(shù)據(jù)預處理

首先就是數(shù)據(jù)集:我用的數(shù)據(jù)集是西工大發(fā)布的數(shù)據(jù)集,NWPU VHR-10

鏈接:https://pan.baidu.com/s/1vfhDU2ORWUpL-aGM1PllGw?
提取碼:d5au

西工大數(shù)據(jù)集有十個類別,有三個文件夾,分別是positive image set(650張圖片),negative image set(150張圖片)和ground truth(650個txt文件)。

negative image set中的影像無對應的地物目標,
positive image set中的影像包括1個及以上對應的地物目標,
ground truth中的txt對應positive image set中地物目標的外接矩形
影像信息:

  • image size: 500~1100 * 500~1100 * 3
  • image number: 800
  • object number: 3,651

標注信息:
10類,共3,651個目標;

  • airplane,飛機
  • ship,船
  • storage tank,儲罐
  • baseball diamond,棒球場
  • tennis court,網(wǎng)球場
  • basketball court,籃球場
  • ground track field,地面軌道場
  • harbor,港口
  • bridge,橋
  • vehicle,交通工具

?首先就是要把NWPU VHR-10轉(zhuǎn)換成類似于voc數(shù)據(jù)集的形式然后再轉(zhuǎn)化為yolo格式。

voc文件格式包含文件annotations存放圖片信息、images存放訓練圖片、ImageSets存放圖片訓練信息。

將negative image set、positive image set內(nèi)圖片重新進行順序編號為000001.jpg-000800.jpg,positive image set內(nèi)圖片為000001.jpg-000650.jpg,negative image set內(nèi)圖片為000651.jpg-000800.jpg,然后存放在image文件夾內(nèi)。

數(shù)據(jù)集的annotations文件夾內(nèi)的標注信息xml文件格式相同的xml文件。因為negative image set內(nèi)圖片無對應標注信息,所以只生成包含圖片大小的xml文件。

ImageSets文件夾內(nèi)劃分為train.txt、val.txt、trainval.txt、test.txt四個文件,train代表訓練集信息,val代表驗證集信息,trainval代表訓練集和驗證集合并的數(shù)據(jù)信息,test代表測試集信息。

然后將voc格式轉(zhuǎn)換為yolo格式,在目錄下生成新的labels文件夾,把數(shù)據(jù)集路徑導入txt文件,將每個xml標注信息提取轉(zhuǎn)換為了txt格式,每個圖像對應一個txt文件。

附上我的程序,其中main.py,1.py,2.py,3.py按順序運行,因為后一個可能會用到前一個生成出來的東西的地址,把地址改成自己的地址就行。

鏈接:https://pan.baidu.com/s/1C04y16LIdyby5vhNEzsYSA?
提取碼:iz0r

有個地方出錯了,3.py里面這一行改成底下那一句,少了一個bridge的類,harbor和vehicle之間少了一個,,然后tennis拼錯了

基于yolov5的遙感圖像目標檢測(NWPU VHR-10)

classes = ['airplane','ship','storage tank','baseball diamond','tennis court','basketball court','ground track field','harbor','bridge','vehicle']  # class names

!??!地址很多?。?!而且一定要按照順序來運行,如果不確定能不能生成文件夾,可以自己提前創(chuàng)建,然后直接運行就行,除了地址其余什么都不需要改!?。。?!

?基于yolov5的遙感圖像目標檢測(NWPU VHR-10)

二、環(huán)境搭建

首先附上yolov5官方源碼,可以自己在Github上面下載,直接在Github上面搜yolov5,下載點贊最多的那個就行。我已經(jīng)下載到我的網(wǎng)盤了,這里附上我的網(wǎng)盤鏈接。

鏈接:https://pan.baidu.com/s/1BENXIeyKgjwyAhnXA_n9Uw?
提取碼:3r9o

yolov5運行需要pytorch和cuda,因為我以前運行過一些神經(jīng)網(wǎng)絡深度學習的算法,所以我的環(huán)境都是已經(jīng)搭建好的,另外如果想提高運行速度,是需要下載GPU的,只用cpu運行速度太慢,但是也能運行。python版本最好是3.7或者3.8,太高好像會報錯,可以在運行前提前降一下python版本。我用的是3.8的conda版本。

如果是純純小白,看這篇博客,安裝環(huán)境

記錄使用Anaconda、Pycharm配置Yolov5環(huán)境全過程

環(huán)境搭建好下一步就是安裝所需要的庫

pip install -r requirements.txt

yolov5自帶一個requirements.txt文件,就是運行時能用到的所有庫,按照上面的語句在終端也就是terminal運行一下就行,雖然一般情況下不會順利完成,安裝不了的就自己手動pip,可以win+r輸入cmd進入命令提示符窗口,輸入pip list,就可以看到所有的庫和版本,對照requirements.txt給定的版本該install的install,該uninstall的uninstall。

三、運行程序

首先需要在data文件夾下創(chuàng)建一個mydata.yaml,像這樣,mydata.yaml是data的子文件。

基于yolov5的遙感圖像目標檢測(NWPU VHR-10)

?mydata.yaml的程序,yaml格式非常嚴格,除地址外的冒號后面都要有一個空格,不然會報錯,(因為這個空格我改了兩個小時),還有?。?!

val,train,test的地址是我們數(shù)據(jù)預處理最后一步生成的地址。基于yolov5的遙感圖像目標檢測(NWPU VHR-10)

在這里的哦,和文件夾是同級文件,至于兩個.cache文件沒有不用管,這是在訓練的時候生成的,現(xiàn)在沒有是正常的,別整錯了哦。

?基于yolov5的遙感圖像目標檢測(NWPU VHR-10)

?這是程序,建議大家直接復制改個地址就行。簡單介紹一下,前面三行是地址,后面是類別,最后一個是類別的數(shù)目,也可以根據(jù)自己數(shù)據(jù)集進行修改。

val: G:/csdn/yolov5/nwpu vhr-10/val.txt
train: G:/csdn/yolov5/nwpu vhr-10/train.txt
test: G:/csdn/yolov5/nwpu vhr-10/test.txt
names:
- airplane
- ship
- storage tank
- baseball diamond
- tennis court
- basketball court
- ground track field
- harbor
- bridge
- vehicle
nc: 10

然后就是修改主程序,train.py,在utils文件下

基于yolov5的遙感圖像目標檢測(NWPU VHR-10)

?主要需要修改的部分就是這五個,如果使用的是源碼,只需要把第三行的yaml文件改成Mydata就行。第一行的.pt文件是權(quán)重文件,是可以換的,后面會提到。

接下來就是修改yaml文件,第二行我們使用的是yolo5s.yaml,所以在model/yolov5s.yaml中修改。

基于yolov5的遙感圖像目標檢測(NWPU VHR-10)

?把nc數(shù)改成上面一樣的就行,因為西工大數(shù)據(jù)集只有十個類別,所以我的nc是10。

接下來就可以運行了。

如果出現(xiàn)了連接不到網(wǎng)絡或者對方無響應什么的問題,那就是在運行中它會自己下載權(quán)重文件,也就是上面第一行的yolov5s.pt? 的pt文件,出現(xiàn)問題也沒多大關(guān)系,可以自己下載權(quán)重文件然后放到文件夾里就行啦。

鏈接:https://pan.baidu.com/s/1p7_v_Wlicw_7oBUv-QNv_w?
提取碼:uarf

這是權(quán)重文件鏈接,放到根目錄下,也就是說和model是同級文件,并行的?。?/span>

權(quán)重文件長這樣,內(nèi)存越大,權(quán)重越大,訓練效果越好,并不絕對?。?!小心過擬合,而且運行速度zun的很慢,我用5s運行的西工大數(shù)據(jù)集,100個epochs,跑了十個小時,換了個權(quán)重文件,5x的,一個小時都跑不完一個epoch。

基于yolov5的遙感圖像目標檢測(NWPU VHR-10)

這樣就沒問題啦,運行出來的結(jié)果會保存到runs\train\exp里面

基于yolov5的遙感圖像目標檢測(NWPU VHR-10)

?四、detect

同樣也是在utils文件夾下,修改這三個文件,第一個是我們使用的權(quán)重文件,第二個是我們需要檢測的圖片地址(一定要換成自己的圖片?。?!)?,第三個就是老規(guī)矩。然后就可以運行了,生成的結(jié)果在runs\test\exp里面,我忘了截圖了。

基于yolov5的遙感圖像目標檢測(NWPU VHR-10)

?五、換權(quán)重文件

第一步,修改train里面的五個框,把5s改成別的,建議如果用大的權(quán)重文件就把epoch和batch-size改小一點,要不然會超時的哦,第二不,改相應的pt文件里的nc數(shù),有印象吧,然后就可以運行了,如果報錯,可以直接用一行代碼在終端也就是terminal里運行。(因為我自己運行的時候報了個莫名其妙的錯誤,所以用了這種方法,比較簡單,不用改源碼,什么都不需要改。

python train.py --batch-size 2 --epochs 100 --data G:\bishe\bishe1\yolov5-master\data\mydata.yaml --weights D:\BaiduNetdiskDownload\yolov5-weights\yolov5x.pt

四個要素,batchsize,epochs,mydata.yaml的地址還有權(quán)重文件.pt的地址。這個方法不用改代碼,什么都不需要動,無論你把我剛剛?cè)Φ膸讉€框改成什么樣了都沒關(guān)系,直接這一行就行了

同樣,detect也可以用這個方法。

python .\detect.py --source C:\Users\Administrator\PycharmProjects\yolov5\imgs\valid\images --weights C:\Users\Administrator\PycharmProjects\yolov5\runs\train\exp8\weights\best.pt

兩個要素,一個是你需要測試的圖片的地址,另一個是pt文件,這個文件就是我們訓練出來的了,在runs\train\exp\weights\best.pt

這個也一樣,不需要改源碼,也不用管你把源碼框框改成什么樣了,都可以用這個方法。

基于yolov5的遙感圖像目標檢測(NWPU VHR-10)

?放一張detect的圖片。

這是我使用yolov5訓練西工大數(shù)據(jù)集的全過程,我一點點摸索出來的,如果有不對的地方歡迎各位大佬留言指正,如果有什么問題也可以私信我,會的我會回答,不會的我只能深感抱歉,后續(xù)有改進我也會發(fā)出來的。謝謝大家!??!文章來源地址http://www.zghlxwxcb.cn/news/detail-424950.html

到了這里,關(guān)于基于yolov5的遙感圖像目標檢測(NWPU VHR-10)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務器費用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包