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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

iou画 yolov3_yolov3环境配置训练及优化

發布時間:2023/12/10 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 iou画 yolov3_yolov3环境配置训练及优化 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

科普

gcc/g++: - GNU project C and C++ compiler.When you compile C++ programs, you should invoke GCC as g++ instead.

Cuda:GPU Accelerated Computing with C and C++

一、Ubuntu+cuda+cudnn+opencv+darknet/yolov3環境配置

1.NVIDIA顯卡驅動安裝

首先查看系統是否已經安裝NVIDIA驅動,查看方式輸入nvidia-smi無輸出或系統信息沒有顯卡信息。

安裝方式有ppa或官網下載驅動安裝,再次之前可查看系統推薦驅動:

ubuntu-drivers devices

也可以在官網查看:https://www.geforce.cn/drivers

安裝成功:nvidia-smi顯示顯卡信息,或系統信息有顯卡graphics這欄,如下:

2.gcc降版本

3.安裝cuda

查看顯卡支持cuda版本

windows:(參考:https://blog.csdn.net/wangyjfrecky/article/details/55100963)

控制面板->搜索NVIDIA->雙擊進入NVIDIA控制面板:

點擊幫助->系統信息->組件

UBUNTU:參考(http://www.voidcn.com/article/p-ujjgjaae-xp.html)根據顯卡型號選擇

我選擇cuda9.0 cuda9.0【點這下載】

根據自己的系統選擇,但必須選擇runfile,因為之前已經安裝過驅動,其他包會重復安裝。可能導致循環登錄。安裝參考官網命令:

首先是協議,按enter到100%,是否安裝驅動選擇no,其他默認或自定。

InstallNVIDIA Accelerated GraphicsDriver for Linux-x86_64 384.81?

此處選擇no

此處需要安裝四個打包文件patch,命令同上,安裝后在根目錄/usr/local下會有cuda-9.0和cuda兩個文件夾。

若系統自帶驅動符合要求,可以直接跳過驅動安裝:

配置環境變量:

打開~/.bashrc文件,在末尾加入:

export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}}

export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

***此處需要測試nvcc命令,若提示沒有安裝并建議安裝nvidia-cuda-toolkit,可以重啟電腦再試,run包安裝時有選擇cuda-toolkit安裝,若重復安裝,nvidia-cuda-toolkit自帶415驅動,可能導致循環登錄。正常安裝后,nvcc輸出:

具體可參考這篇博客:https://blog.csdn.net/jiangyanting2011/article/details/78873113

3.cudnn安裝

cudnn安裝比較簡單,需注意和cuda版本匹配【下載地址】

注冊登錄后下載

4.opencv NVIDIA cuda版本編譯安裝

cuda9.0支持opencv3.4.0及之前的版本,opencv官網下載opencv,我選擇3.4.0,

下載解壓后進入目錄 cd opencv-3.4.0

安裝cmake 等一系列依賴包

$ sudo apt-get install build-essential

$ sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev

$ sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev # 處理圖像所需的包

$ sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev liblapacke-dev

$ sudo apt-get install libxvidcore-dev libx264-dev # 處理視頻所需的包

$ sudo apt-get install libatlas-base-dev gfortran # 優化opencv功能

$ sudo apt-get install ffmpeg

創建新文件夾來編譯,否則會報錯 ,進入目錄

sudo mkdir build

cd build

編譯 (無cuda版本可按網上教程來,此處為cuda版本)

$ cmake -D CMAKE_BUILD_TYPE=RELEASE \

-D CMAKE_INSTALL_PREFIX=/usr/local \

-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.4.0/modules \#若出錯或無可去掉

-D PYTHON_EXCUTABLE=/usr/bin/python3\ #根據自己的Python版本確定,默認則安裝到2.7版本

-D WITH_CUDA=ON \ #使用CUDA

-D WITH_TBB=ON \

-D BUILD_NEW_PYTHON_SUPPORT=ON \

-D WITH_V4L=ON \

-D WITH_GTK=ON \ #不加ubuntu cmake可能會報錯

-D WITH_OPENGL=ON \

-D WITH_CUBLAS=ON \

-D DCUDA_NVCC_FLAGS="-D_FORCE_INLINES" \

-D CUDA_ARCH_BIN="6.1" \ # [GPU計算能力](https://developer.nvidia.com/cuda-gpus)

-D CUDA_ARCH_PTX="" \ #線程并行計算`

-D BUILD_EXAMPLES=ON \

-D CUDA_GENERATION=Pascal .. #自己顯卡架構

完成后lscpu 查看電腦CPU核數

我的總共為4,接下來:

sudo make -j4

完成后安裝

sudo make install

測試,無報錯則安裝成功

xiaose@lenovo:~$ python3

Python 3.6.7 (default, Oct 22 2018, 11:32:17)

[GCC 8.2.0] on linux

Type "help", "copyright", "credits" or "license" for more information.

>>> import cv2

>>>

提示找不到cv2模塊,安裝

sudo apt-get install python3-opencv

重新編譯報錯解決:刪除build同級目錄下cache文件

5.darknet/yolov3 編譯

YOLOv3官網【下載】

打開Makefile,更改參數,根據自己環境修改參數

GPU=1

CUDNN=1

OPENCV=1

OPENMP=0

DEBUG=0

由于使用Pascal架構,需要在架構上加-gencode arch=compute_61,code=[sm_61,compute_61]

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_61,code=[sm_61,compute_61]

修改nvcc路徑,根據自己修改

NVCC=/usr/local/cuda-9.0/bin/nvcc

COMMON+,LDFLAGS+路徑可為默認cuda或改為cuda-9.0

ifeq ($(GPU), 1)

COMMON+= -DGPU -I/usr/local/cuda-9.0/include/

CFLAGS+= -DGPU

LDFLAGS+= -L/usr/local/cuda-9.0/lib64 -lcuda -lcudart -lcublas -lcurand

endif

修改完成后保存,執行

sudo make

若更改參數,重新編譯 make clean 后make

測試,darknet目錄下 ./darknet出現下圖,編譯成功

$ ./darknet

usage: ./darknet

二、訓練技巧、問題及解決辦法:

1.xml標注文件轉txt

可參考darknet源碼scripts/voc_labels.py文件

2.更改測試label,box線條粗細及標簽大小

image.c文件

3.訓練圖片集路徑問題

原作者是將txt文件生成訓練集路徑

實測:將目錄下圖像生訓練集路徑文件train_image_path.txt,并將txt文件放到圖片目錄下一一對應

4. .cfg文件修改

batch=64

subdivisions=16

batch,subdivisions根據自己顯存大小修改,并且batch/subdivisions最好為自己GPU數量的整數倍

learning_rate=0.001

burn_in=1000

多GPU訓練時:learning_rate=0.001/gpus burn_in=1000*gpus 對于YOLO層

[convolutional]

size=1

stride=1

pad=1

filters=42

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=9

num=9

jitter=.3

ignore_thresh = .5

truth_thresh = 1

random=1

classes根據自己檢測類別數更改,對應上一層卷積層filters=3×(5+num[classes])

anchors可以根據自己的樣本聚類得到

5.cannot fopen ***.jpg/txt

檢查對應訓練集路徑

6.cuda error: out of memory

改小batch/增大sudbivisions,或者關閉多尺度訓練random=0

7.darknet: ./src/cuda.c:36: check_error: Assertion `0' failed.

(1)有out of memory錯誤:檢查是否有圖像讀取錯誤或同6

(2)無out of memory 錯誤:Makefile中arch架構與自己顯卡架構不匹配,參照安裝方法重新編譯。

一般來說,也可能是類別數和yolo層filters不匹配

8.訓練開始一段時間后出現loss=nan 、IOU=nan ,其他參數全為0的情況

確保cfg文件是train模式,batch、subdivisions不全為1,查看自己訓練集txt是否為空

若為多GPU訓練,按上述設置參數,防止陷入局部極值點或loss及IOU計算錯誤。

9.obj和no obj同時下降

使用初始權重darknet53.conv.74或YOLOv3.weights訓練時,由于與作者訓練集樣本結構不同,為 正常現象,若全降為0后不上升,出現大片nan和0,根據多GPU訓練修改參數或將batch增大到128及以上

10.測試權重需要關閉訓練

11.修改cfg文件不需要重新編譯,修改源碼需要重新編譯

12.訓練權重在訓練的電腦上可以檢測出目標,但換一臺機器后無法檢測出目標的問題

確保gcc/g++降版本的時候刪掉了原來的連接,根據自己的顯卡,選擇相應的fermi/kepler/maxwell/pascal/turing架構,并根據計算能力選擇arch=xx后重新編譯

13. No input parameters supplied: Success darknet: ./src/utils.c:256: error: Assertion `0' failed.Aborted (core dumped)

首先加sudo權限,報錯找不到libcudart.so.9.0,【解決辦法】

若不能解決,則可能為darknet自身問題【參考】重新編譯darknet

優化

根據官方參考文檔

1. 在.cfg文件中設置random=1,可以增加檢測精度。

2. 增加input圖像尺寸,在.cfg文件中設置(height=608,heigh=608)以上,可以增加檢測精度

3. 對.cfg文件中的anchors重新進行聚類

4. 確保數據集中所有的class都有對應的label,檢測你的數據集可以使用https://github.com/AlexeyAB/Yolo_mark

5. 所使用的數據集包括同一物體在不同角度、光照、背景、大小下的圖片,并且確保訓練2000**classes個iterations以上。

6. 確保生成的txt文檔不為空

其他詳見官方參考文檔

參考:

總結

以上是生活随笔為你收集整理的iou画 yolov3_yolov3环境配置训练及优化的全部內容,希望文章能夠幫你解決所遇到的問題。

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