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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

yolov3项目工程

發布時間:2024/9/21 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 yolov3项目工程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 下載YOLOv3工程項目

git clone https://github.com/pjreddie/darknet cd darknet
  • 1
  • 2
  • 1
  • 2

2. 修改Makefile配置,使用GPU訓練,修改如下:

GPU=1 #如果使用GPU設置為1,CPU設置為0 CUDNN=1 #如果使用CUDNN設置為1,否則為0 OPENCV=0 #如果調用攝像頭,還需要設置OPENCV為1,否則為0 OPENMP=0 #如果使用OPENMP設置為1,否則為0 DEBUG=0 #如果使用DEBUG設置為1,否則為0CC=gcc NVCC=/home/user/cuda-9.0/bin/nvcc #NVCC=nvcc 修改為自己的路徑 AR=ar ARFLAGS=rcs OPTS=-Ofast LDFLAGS= -lm -pthread COMMON= -Iinclude/ -Isrc/ CFLAGS=-Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -fPIC ... ifeq ($(GPU), 1) COMMON+= -DGPU -I/home/hebao/cuda-9.0/include/ #修改為自己的路徑 CFLAGS+= -DGPU LDFLAGS+= -L/home/hebao/cuda-9.0/lib64 -lcuda -lcudart -lcublas -lcurand #修改為自己的路徑 endif
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

保存完成后,在此路徑下執行make,如果出現如下錯誤:

Loadingweights from yolo.weights...Done! CUDA Error:invalid device function darknet: ./src/cuda.c:21: check_error: Assertion `0' failed. Aborted (core dumped)
  • 1
  • 2
  • 3
  • 4
  • 1
  • 2
  • 3
  • 4

這是因為配置文件Makefile中配置的GPU架構和本機GPU型號不一致導致的。更改前默認配置如下(不同版本可能有變):

ARCH= -gencode arch=compute_30,code=sm_30 \-gencode arch=compute_35,code=sm_35 \-gencode arch=compute_50,code=[sm_50,compute_50] \-gencode arch=compute_52,code=[sm_52,compute_52] # -gencode arch=compute_20,code=[sm_20,sm_21] \ This one is deprecated? # This is what I use, uncomment if you know your arch and want to specify # ARCH= -gencode arch=compute_52,code=compute_52
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

CUDA官方說明文檔:http://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/index.html#virtual-architecture-feature-list

然后重新編譯即可:

3. 準備訓練數據集

按下列文件夾結構,將訓練數據集放到各個文件夾下面,生成4個訓練、測試和驗證txt文件列表
VOCdevkit
—VOC2007
——Annotations
——ImageSets
———Layout
———Main
———Segmentation
——JPEGImages
Annotations中是所有的xml文件
JPEGImages中是所有的訓練圖片
Main中是4個txt文件,其中test.txt是測試集,train.txt是訓練集,val.txt是驗證集,trainval.txt是訓練和驗證集。

3. 生成2007_train.txt和2007_val.txt文件

下載voc_label.py文件,將文件下載到VOCdevkit同級的路徑下,生成訓練和驗證的文件列表
wget https://pjreddie.com/media/files/voc_label.py

修改sets為訓練樣本集的名稱 sets=[('2007', 'train')] 修改classes為訓練樣本集的類標簽 classes=[str(i) for i in range(10)]
  • 1
  • 2
  • 3
  • 4
  • 1
  • 2
  • 3
  • 4

運行python voc_label.py,生成2007_train.txt訓練文件列表。

4.下載Imagenet上預先訓練的權重

wget https://pjreddie.com/media/files/darknet53.conv.74
  • 1
  • 1

5. 修改cfg/voc.data

classes= 10 #classes為訓練樣本集的類別總數 train = /home/user/darknet/2007_train.txt #train的路徑為訓練樣本集所在的路徑 valid = /home/user/darknet/2007_val.txt #valid的路徑為驗證樣本集所在的路徑 names = data/voc.names #names的路徑為data/voc.names文件所在的路徑 backup = backup
  • 1
  • 2
  • 3
  • 4
  • 5
  • 1
  • 2
  • 3
  • 4
  • 5

6. 在darknet文件夾下面新建文件夾backup

7. 修改data/voc.name為樣本集的標簽名

0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 1
  • 2
  • 3

8. 修改cfg/yolov3-voc.cfg

關于cfg修改,以10類目標檢測為例,主要有以下幾處調整(藍色標出):

[net] # Testing ### 測試模式 # batch=1 # subdivisions=1 # Training ### 訓練模式,每次前向的圖片數目 = batch/subdivisions batch=64 subdivisions=16 width=416 ### 網絡的輸入寬、高、通道數 height=416 channels=3 momentum=0.9 ### 動量 decay=0.0005 ### 權重衰減 angle=0 saturation = 1.5 ### 飽和度 exposure = 1.5 ### 曝光度 hue=.1 ### 色調 learning_rate=0.001 ### 學習率 burn_in=1000 ### 學習率控制的參數 max_batches = 50200 ### 迭代次數 policy=steps ### 學習率策略 steps=40000,45000 ### 學習率變動步長 scales=.1,.1 ### 學習率變動因子 [convolutional] batch_normalize=1 ### BN filters=32 ### 卷積核數目 size=3 ### 卷積核尺寸 stride=1 ### 卷積核步長 pad=1 ### pad activation=leaky ### 激活函數......[convolutional] size=1 stride=1 pad=1 filters=45 #3*(10+4+1) activation=linear[yolo] mask = 6,7,8 anchors = 10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 classes=10 #類別 num=9 jitter=.3 ignore_thresh = .5 truth_thresh = 1 random=0 #1,如果顯存很小,將random設置為0,關閉多尺度訓練; ......[convolutional] size=1 stride=1 pad=1 filters=45 #3*(10+4+1) activation=linear[yolo] mask = 3,4,5 anchors = 10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 classes=10 #類別 num=9 jitter=.3 ignore_thresh = .5 truth_thresh = 1 random=0 #1,如果顯存很小,將random設置為0,關閉多尺度訓練; ......[convolutional] size=1 stride=1 pad=1 filters=45 #3*(10+4+1) activation=linear[yolo] mask = 0,1,2 anchors = 10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 classes=10 #類別 num=9 jitter=.3 # 數據擴充的抖動操作 ignore_thresh = .5 #文章中的閾值1 truth_thresh = 1 #文章中的閾值2 random=0 #1,如果顯存很小,將random設置為0,關閉多尺度訓練;

總結

以上是生活随笔為你收集整理的yolov3项目工程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。