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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

适用于Windows和Linux的Yolo-v3和Yolo-v2(上)

發(fā)布時間:2023/11/28 生活经验 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 适用于Windows和Linux的Yolo-v3和Yolo-v2(上) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

適用于Windows和Linux的Yolo-v3和Yolo-v2(上)

https://github.com/eric-erki/darknetAB

(用于對象檢測的神經網絡)-Tensor Cores可以在Linux和Windows上使用

更多詳細信息:http : //pjreddie.com/darknet/yolo/

要求(以及如何安裝依賴項)
預訓練模型
問題說明
Yolo v3在其框架(TensorRT,TensorFlow,PyTorch,OpenVINO,OpenCV-dnn,TVM等)中
數(shù)據(jù)集

  1. 此存儲庫中的改進

  2. 如何使用

  3. 如何在Linux上編譯

o 使用cmake

o 使用make

  1. 如何在Windows上編譯

o 使用CMake-GUI

o 使用vcpkg

o 傳統(tǒng)方式

  1. 如何訓練(Pascal VOC數(shù)據(jù))

  2. 如何使用多GPU進行訓練:

  3. 如何訓練(檢測自定義對象)

  4. 如何訓練tiny-yolo(檢測自定義對象)

  5. 什么時候應該停止訓練

  6. 如何在PascalVOC 2007上計算mAP

  7. 如何改善物體檢測

  8. 如何標記對象的有界框并創(chuàng)建注釋文件

  9. 如何將Yolo用作DLL和SO庫

mAP@0.5(AP50)-FPS(GeForce 1080 Ti)https://arxiv.org/abs/1911.11929 https://github.com/WongKinYiu/CrossStagePartialNetworks-更多型號

MS COCO上的Yolo v3:速度/準確度(mAP@0.5)圖表
MS COCO上的Yolo v3(Yolo v3與RetinaNet)-圖3:https 😕/arxiv.org/pdf/1804.02767v1.pdf
在Pascal VOC 2007上的Yolo v2:https : //hsto.org/files/a24/21e/068/a2421e0689fb43f08584de9d44c2215f.jpg
在Pascal VOC 2012(comp4)上的Yolo v2:https://hsto.org/files/3a6/fdf/b53/3a6fdfb533f34cee9b52bdd9bb0b19d9.jpg

預訓練模型

不同的cfg文件有權重文件(針對MS COCO數(shù)據(jù)集進行了訓練):

GeForce 1080Ti上的FPS:

csresnext50-panet-SPP-原始optimal.cfg - 65.4%mAP@0.5(43.2%AP
@ 0.5…0.95)
- 35 FPS -
100.5 BFlops - 217 MB:csresnext50-panet-SPP-原始optimal_final.weights
yolov3-spp.cfg - 60.6%mAP@0.5
- 30 FPS -
141.5 BFlops - 240 MB:yolov3-spp.weights
yolov3-tiny-prn.cfg - 33.1%mAP@0.5
- 400 FPS -
3.5 BFlops - 18.8 MB:yolov3纖巧,prn.weights
ENET-coco.cfg(EfficientNetB0-Yolov3) - 45.5%mAP@0.5
- 60 FPS -
3.7 BFlops - 18.3 MB:enetb0-coco_final.weights
yolov3-openimages.cfg -247
MB??-OpenImages數(shù)據(jù)集:yolov3-openimages.weights

單擊 -Yolo v3型號

單擊 -Yolo v2型號

放到附近編譯:darknet.exe

可以通過以下路徑獲取cfg文件: darknet/cfg/

要求

Windows或Linux
CMake> = 3.8對于現(xiàn)代CUDA支持:https : //cmake.org/download/
CUDA 10.0:https : //developer.nvidia.com/cuda-toolkit-archive(在Linux上執(zhí)行安裝后操作)
OpenCV> = 2.4:使用首選的軟件包管理器(棕色,apt),使用vcpkg從源代碼構建或從OpenCV官方網站下載(在Windows上,設置系統(tǒng)變量OpenCV_DIR= C:\opencv\build- include和x64文件夾圖像)
CUD 10.0的cuDNN>
= 7.0 https://developer.nvidia.com/rdp/cudnn-archive(在Linux副本上cudnn.h,libcudnn.so…如此處所述https://docs.nvidia.com/deeplearning/sdk/cudnn-install
/index.html#installlinux-tar上的Windows拷貝cudnn.h,cudnn64_7.dll,cudnn64_7.lib這里desribed https://docs.nvidia.com/deeplearning/sdk/cudnn-install/index.html#installwindows)
CC> = 3.0的GPU:https : //en.wikipedia.org/wiki/CUDA#GPUs_supported
在Linux GCC或Clang上,在Windows MSVC 2015/2017/2019 https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=Community

在其框架中的Yolo v3

TensorFlow:轉換yolov3.weights/ cfg文件yolov3.ckpt/ pb/meta:使用mystic123或jinyu121項目,TensorFlow -精簡版
英特爾OpenVINO 2019 R1:(Myriad X / USB神經計算棒/ Arria FPGA):閱讀本手冊
OpenCV-dnn是CPU(x86 / ARM-Android)最快的實現(xiàn),OpenCV可以使用OpenVINO后端進行編譯以在(Myriad X / USB Neural
Compute Stick / Arria FPGA)上運行,與yolov3.weights/ cfg配合使用:C ++示例或Python示例
PyTorch> ONNX>
CoreML> iOS如何將cfg / weights-files轉換為pt-file:ultralytics / yolov3和iOS App
適用于YOLOv3的TensorRT(推理速度提高-70%):Deep Stream 4.0本身就支持Yolo
TVM -深度學習模型(Keras,MXNet,PyTorch,Tensorflow,CoreML,暗網)插入不同的硬件后端(的CPU,GPU,FPGA和專用加速器)最低部署模塊的編譯:https://tvm.ai/about
Netron-神經網絡可視化器:https : //github.com/lutzroeder/netron

數(shù)據(jù)集

MS COCO:用于./scripts/get_coco_dataset.sh獲取標記的MS COCO檢測數(shù)據(jù)集
OpenImages:python ./scripts/get_openimages_dataset.py用于標記訓練檢測數(shù)據(jù)集
Pascal VOC:python ./scripts/voc_label.py用于標記Train / Test / Val檢測數(shù)據(jù)集
ILSVRC2012(ImageNet分類):使用./scripts/get_imagenet_train.sh(也imagenet_label.sh用于標記有效集)
用于檢測的德語/比利時/俄羅斯/ LISA / MASTIF交通標志數(shù)據(jù)集-使用此解析器:https : //github.com/angeligareta/Datasets2Darknet#detection-task
其數(shù)據(jù)集列表:https : //github.com/AlexeyAB/darknet/tree/master/scripts#datasets

結果示例

Others: https://www.youtube.com/user/pjreddie/videos

此存儲庫中的改進

增加了對Windows的支持
添加了最新模型:CSP,PRN,EfficientNet
添加的層:[conv_lstm],[scale_channels] SE / ASFF / BiFPN,[local_avgpool],[sam],[Gaussian_yolo],[reorg3d](固定的[reorg]),固定的[batchnorm]
新增了訓練循環(huán)模型(具有conv-lstm [conv_lstm]/
conv-rnn層[crnn])以精確檢測視頻的功能
添加了數(shù)據(jù)擴充:[net] mixup=1 cutmix=1 mosaic=1 blur=1。添加的激活:SWISH,MISH,NORM_CHAN,NORM_CHAN_SOFTMAX
增加了使用CPU-RAM進行GPU處理訓練的能力,以增加mini_batch_size和準確性(而非批處理規(guī)范同步)
如果使用此XNOR-net模型訓練自己的權重(位1推斷),則在CPU和GPU上的二進制神經網絡性能將提高2到4倍的檢測速度:https : //github.com/AlexeyAB/darknet/blob/master
/cfg/yolov3-tiny_xnor.cfg
通過將2層融合到1個卷積+批量范數(shù)中,將神經網絡性能提高了約7%
改進的性能:如果在或中定義了Tensor Core,則在GPU Volta / Turing(Tesla V100,GeForce RTX等)上檢測2倍,CUDNN_HALFMakefiledarknet.sln
改進了FullHD的性能約1.2倍,4K的性能約2倍,使用darknet detector demo… 可以檢測視頻(文件/流)
性能提高了3.5倍的數(shù)據(jù)增強進行訓練(使用OpenCV SSE / AVX功能而不是手寫功能)-消除了在多GPU或GPU Volta上進行訓練的瓶頸
使用AVX在Intel CPU上提高了檢測和訓練的性能(Yolo v3?85 %)
在調整網絡大小時優(yōu)化內存分配 random=1
優(yōu)化的GPU初始化以進行檢測-最初使用batch = 1,而不是使用batch = 1重新初始化
使用命令添加了正確的mAP,F1,IoU,Precision-Recall計算darknet detector map…
-map在訓練過程中添加了平均損耗和精度mAP(標志)圖表
./darknet detector demo
… -json_port 8070 -mjpeg_port 8090作為JSON和MJPEG服務器運行,以使用軟件或Web瀏覽器通過網絡在線獲取結果
增加了訓練錨的計算
添加了檢測和跟蹤對象的示例:https : //github.com/AlexeyAB/darknet/blob/master/src/yolo_console_dll.cpp
如果使用了不正確的cfg文件或數(shù)據(jù)集,則為運行時提示和警告
許多其代碼修復…

并添加了手冊- 如何訓練Yolo v3 / v2(以檢測自定義對象)

另外,可能對使用簡化的存儲庫感興趣,該存儲庫中已實現(xiàn)INT8量化(+ 30%的加速和-1%的mAP降低): https://github.com/AlexeyAB/yolo2_light

如何在命令行上使用

在Linux上,請使用./darknet代替darknet.exe,例如:./darknet detector
test ./cfg/coco.data ./cfg/yolov3.cfg ./yolov3.weights

在Linux上./darknet,在根目錄中找到可執(zhí)行文件,而在Windows上,在目錄中找到可執(zhí)行文件。\build\darknet\x64

Yolo v3 COCO- 圖片:darknet.exe detector test cfg/coco.data cfg/yolov3.cfg yolov3.weights
-thresh 0.25
輸出對象的坐標:darknet.exe detector test
cfg/coco.data yolov3.cfg yolov3.weights -ext_output dog.jpg
Yolo v3 COCO- 視頻:darknet.exe detector demo cfg/coco.data cfg/yolov3.cfg yolov3.weights
-ext_output test.mp4
Yolo v3 COCO- WebCam 0:darknet.exe detector demo
cfg/coco.data cfg/yolov3.cfg yolov3.weights -c 0
用于網絡攝像機的 Yolo v3 COCO-智能網絡攝像頭:darknet.exe detector demo
cfg/coco.data cfg/yolov3.cfg yolov3.weights
http://192.168.0.80:8080/video?dummy=param.mjpg
Yolo v3-保存結果視頻文件res.avi:darknet.exe detector demo
cfg/coco.data cfg/yolov3.cfg yolov3.weights test.mp4 -out_filename res.avi
Yolo v3 Tiny COCO-視頻:darknet.exe detector demo
cfg/coco.data cfg/yolov3-tiny.cfg yolov3-tiny.weights test.mp4
允許來自軟件瀏覽器或Web瀏覽器ip-address:8070和8090的多個連接的JSON和MJPEG服務器:./darknet detector demo
./cfg/coco.data ./cfg/yolov3.cfg ./yolov3.weights test50.mp4 -json_port
8070 -mjpeg_port 8090 -ext_output
GPU#1上的 Yolo v3 Tiny :darknet.exe detector demo
cfg/coco.data cfg/yolov3-tiny.cfg yolov3-tiny.weights -i 1 test.mp4
替代方法Yolo v3 COCO-圖片: darknet.exe detect cfg/yolov3.cfg yolov3.weights
-i 0 -thresh 0.25
在Amazon
EC2上進行訓練,以使用URL來查看mAP和損失圖,例如:http://ec2-35-160-228-91.us-west-2.compute.amazonaws.com:8090在Chrome / Firefox中(Darknet應該使用OpenCV進行編譯): ./darknet detector train cfg/coco.data yolov3.cfg
darknet53.conv.74 -dont_show -mjpeg_port 8090 -map
186 MB Yolo9000-圖片: darknet.exe detector test cfg/combine9k.data cfg/yolo9000.cfg
yolo9000.weights
如果使用cpp api構建應用程序,請記住將data / 9k.tree和data / coco9k.map放在應用程序的同一文件夾下
要處理圖像列表data/train.txt并將檢測結果保存到result.json文件中,請使用: darknet.exe detector test cfg/coco.data cfg/yolov3.cfg yolov3.weights
-ext_output -dont_show -out result.json < data/train.txt
處理圖像列表data/train.txt并保存檢測結果以result.txt供使用:

darknet.exe detector test cfg/coco.data cfg/yolov3.cfg yolov3.weights -dont_show -ext_output < data/train.txt
> result.txt
偽標記-處理圖像列表data/new_train.txt并將檢測結果以Yolo訓練格式保存為每個圖像作為標簽<image_name>.txt(通過這種方式,可以增加訓練數(shù)據(jù)量)使用: darknet.exe detector test cfg/coco.data cfg/yolov3.cfg yolov3.weights
-thresh 0.25 -dont_show -save_labels < data/new_train.txt
要計算錨點: darknet.exe detector calc_anchors data/obj.data -num_of_clusters 9
-width 416 -height 416
要檢查準確性mAP @ IoU = 50: darknet.exe detector map data/obj.data
yolo-obj.cfg backup\yolo-obj_7000.weights
要檢查準確性mAP @ IoU = 75: darknet.exe detector map data/obj.data
yolo-obj.cfg backup\yolo-obj_7000.weights -iou_thresh 0.75

用于在任何Android智能手機上使用網絡攝像機mjpeg-stream

  1. 下載Android手機mjpeg-stream
    soft:IP網絡攝像頭/ Smart WebCam

o 智能網絡攝像頭-最好:https : //play.google.com/store/apps/details? id =com.acontech.android.SmartWebCam2

o IP網絡攝像頭:https : //play.google.com/store/apps/details?id=com.pas.webcam

  1. 通過WiFi(通過WiFi路由器)或USB將Android手機連接到計算機

  2. 在手機上啟動Smart WebCam

  3. 替換下面的地址,在電話應用程序(Smart WebCam)中顯示并啟動:

Yolo v3 COCO模型: darknet.exe detector demo data/coco.data yolov3.cfg yolov3.weights
http://192.168.0.80:8080/video?dummy=param.mjpg -i 0

如何在Linux上編譯(使用cmake)

該CMakeLists.txt將嘗試查找已安裝的可選依賴像CUDA,cudnn,ZED與編譯構建。還將創(chuàng)建一個共享對象庫文件以darknet用于代碼開發(fā)。

在克隆的存儲庫中執(zhí)行以下操作:

mkdir build-release

cd build-release

cmake …

make

make install

如何在Linux上編譯(使用make)

只需make在darknet目錄中進行即可。在制作之前,可以在Makefile:鏈接中設置此類選項

GPU=1使用CUDA進行構建以通過使用GPU加速(CUDA應該在中/usr/local/cuda)
CUDNN=1使用cuDNN v5-v7進行構建,以通過使用GPU加速訓練(cuDNN應該在中/usr/local/cudnn)
CUDNN_HALF=1 為Tensor Core構建(在Titan V / Tesla V100 /
DGX-2及更高版本上)加速檢測3倍,訓練2倍
OPENCV=1 使用OpenCV 4.x / 3.x / 2.4.x構建-允許檢測來自網絡攝像機或網絡攝像機的視頻文件和視頻流
DEBUG=1 調試Yolo版本
OPENMP=1 使用OpenMP支持進行構建以通過使用多核CPU來加速Yolo
LIBSO=1生成一個庫darknet.so和uselib使用該庫的二進制可運行文件。或者,可以嘗試運行,以便LD_LIBRARY_PATH=./:LDLIBRARYPATH./uselibtest.mp4如何使用自己的代碼使用此SO庫?可以查看C++示例:https://github.com/AlexeyAB/darknet/blob/master/src/yoloconsoledll.cpp或在這樣的方式:LDLIBRARYPATH=./:LD_LIBRARY_PATH ./uselib test.mp4如何使用自己的代碼使用此SO庫-可以查看C ++示例:https://github.com/AlexeyAB/darknet/blob/master/src/yolo_console_dll.cpp 或在這樣的方式:LD_LIBRARY_PATH=./:LDL?IBRARYP?ATH./uselibtest.mp4使使SO?C++https://github.com/AlexeyAB/darknet/blob/master/src/yoloc?onsoled?ll.cppLDL?IBRARYP?ATH=./:LD_LIBRARY_PATH
./uselib data/coco.names cfg/yolov3.cfg yolov3.weights test.mp4
ZED_CAMERA=1 構建具有ZED-3D攝像機支持的庫(應安裝ZED SDK),然后運行LD_LIBRARY_PATH=./:$LD_LIBRARY_PATH ./uselib data/coco.names
cfg/yolov3.cfg yolov3.weights zed_camera

要在Linux上運行Darknet,請使用本文提供的示例,只需使用./darknet代替darknet.exe,即使用以下命令:./darknet detector
test ./cfg/coco.data ./cfg/yolov3.cfg ./yolov3.weights

如何在Windows上編譯(使用CMake-GUI)

如果已經安裝了Visual Studio
2015/2017/2019,CUDA> 10.0,cuDNN> 7.0和OpenCV> 2.4,則這是在Windows上構建Darknet的推薦方法。

使用CMake-GUI如下所示這個IMAGE:

  1. 配置

  2. 發(fā)電機的可選平臺(設置:x64)

  3. 完成

  4. 生成

  5. 打開工程

  6. 設置:x64和發(fā)行版

  7. 建立

  8. 建立解決方案

如何在Windows上編譯(使用vcpkg)

如果已經安裝了Visual Studio
2015/2017/2019,CUDA> 10.0,cuDNN> 7.0,OpenCV> 2.4,則要編譯Darknet,建議使用 CMake-GUI。

否則,請按照下列步驟操作:

  1. 將Visual Studio安裝或更新到至少2017版,并確保已對其進行完全修補(如果不確定是否自動更新到最新版本,請再次運行安裝程序)。如果需要從頭開始安裝,請從此處下載VS:Visual Studio社區(qū)

  2. 安裝CUDA和cuDNN

  3. 安裝git和cmake。確保至少在當前帳戶的路徑上

  4. 安裝vcpkg并嘗試安裝測試庫以確保一切正常,例如vcpkg install opengl

  5. 定義環(huán)境變量,VCPKG_ROOT指向的安裝路徑vcpkg

  6. 用名稱VCPKG_DEFAULT_TRIPLET和值定義另一個環(huán)境變量x64-windows

  7. 打開Powershell并鍵入以下命令:

  8. PS > cd $env:VCPKG_ROOT9. PS Code\vcpkg> .\vcpkg install pthreads opencv[ffmpeg] #replace with opencv[cuda,ffmpeg] in case you want to use cuda-accelerated openCV

  9. 打開Powershell,轉到darknet文件夾并使用命令進行構建.\build.ps1。如果要使用Visual Studio,將在構建后找到CMake為創(chuàng)建的兩個自定義解決方案,一個在中build_win_debug,另一個在中build_win_release,其中包含適用于系統(tǒng)的所有配置標志。

如何在Windows上編譯(舊版方式)

  1. 如果具有CUDA 10.0,cuDNN 7.4和OpenCV 3.x(路徑:C:\opencv_3.0\opencv\build\include&C:\opencv_3.0\opencv\build\x64\vc14\lib),則打開build\darknet\darknet.sln,設置x64并釋放https://hsto.org/webt/uh/fk/-e/uhfk-eb0q-hwd9hsxhrikbokd6u。 jpeg并執(zhí)行以下操作:構建->構建Darknet。還要添加Windows系統(tǒng)變量CUDNN以及CUDNN的路徑:https 😕/user-images.githubusercontent.com/4096485/53249764-019ef880-36ca-11e9-8ffe-d9cf47e7e462.jpg

1.1. 查找文件opencv_world320.dll和opencv_ffmpeg320_64.dll(或opencv_world340.dll和opencv_ffmpeg340_64.dll)C:\opencv_3.0\opencv\build\x64\vc14\bin并放在附近darknet.exe

1.2. 檢查是否存在bin和include文件夾C:\Program
Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0,然后從安裝CUDA的路徑將復制到此文件夾

1.3. 要安裝CUDNN(加速神經網絡),請執(zhí)行以下操作:

o 下載并安裝CUD 10.0的cuDNN v7.4.1:https://developer.nvidia.com/rdp/cudnn-archive

o 添加CUDNN具有CUDNN路徑的Windows系統(tǒng)變量:https 😕/user-images.githubusercontent.com/4096485/53249764-019ef880-36ca-11e9-8ffe-d9cf47e7e462.jpg

o 將文件復制cudnn64_7.dll到\build\darknet\x64附近的文件夾darknet.exe

1.4. 如果要在沒有CUDNN的情況下進行構建,請:打開\darknet.sln->(右鍵單擊項目)->屬性-> C / C
+±>預處理程序->預處理程序定義,然后刪除:CUDNN;

  1. 如果有其版本的CUDA(不是10.0)build\darknet\darknet.vcxproj,請使用記事本打開,用“ CUDA 10.0”找到2個位置,并將其更改為CUDA版本。然后打開\darknet.sln->(右鍵單擊項目)->屬性-> CUDA C / C
    +±>設備,然后將其刪除;compute_75,sm_75。然后執(zhí)行步驟1

  2. 如果沒有GPU,但是擁有OpenCV 3.0(路徑:C:\opencv_3.0\opencv\build\include&C:\opencv_3.0\opencv\build\x64\vc14\lib),則打開build\darknet\darknet_no_gpu.sln,設置x64和Release,然后執(zhí)行以下操作:Build-> Build darknet_no_gpu

  3. 如果使用的是OpenCV 2.4.13而不是3.0,則應在\darknet.sln打開后更改路徑

4.1(右鍵單擊項目)->屬性-> C / C +±>常規(guī)->其包含目錄: C:\opencv_2.4.13\opencv\build\include

4.2(右鍵單擊項目)->屬性->鏈接器->常規(guī)->其庫目錄: C:\opencv_2.4.13\opencv\build\x64\vc14\lib

  1. 如果帶有Tensor內核的GPU(nVidia Titan V / Tesla V100 / DGX-2及更高版本)加速檢測3倍,訓練2倍:\darknet.sln->(右鍵單擊項目)->屬性-> C / C
    +±>預處理程序->預處理程序定義,并在此處添加:CUDNN_HALF;

注意:僅在安裝Visual Studio之后,才必須安裝CUDA。

如何編譯(自定義):

另外,可以為CUDA 9.1和OpenCV 3.0 創(chuàng)建自己的darknet.sln&darknet.vcxproj例子

然后添加到創(chuàng)建的項目中:

(右鍵單擊項目)->屬性-> C / C +±>常規(guī)->其包含目錄,放在這里:

C:\opencv_3.0\opencv\build\include;…\3rdparty\include;

%(AdditionalIncludeDirectories);

(CudaToolkitIncludeDir);(CudaToolkitIncludeDir);(CudaToolkitIncludeDir);(CUDNN)\include

(右鍵單擊項目)->構建依賴關系->構建自定義->設置CUDA 9.1或擁有的版本的設置-例如,如下所示:http : //devblogs.nvidia.com/parallelforall/wp-content/uploads/
2015/01 / VS2013-R-5.jpg
添加到項目:

所有.c文件
所有.cu文件
文件http_stream.cpp從\src目錄
文件darknet.h從\include目錄

(右鍵單擊項目)->屬性->鏈接器->常規(guī)->其庫目錄,放在這里:

C:\opencv_3.0\opencv\build\x64\vc14\lib;

$(CUDA_PATH)\lib$(PlatformName);

$(CUDNN)\lib\x64;%(AdditionalLibraryDirectories)

(右鍵單擊項目)->屬性->鏈接器->輸入->其依賴項,放在這里:

…\3rdparty\lib\x64\pthreadVC2.lib;cublas.lib;curand.lib;cudart.lib;cudnn.lib;%(AdditionalDependencies)

(右鍵單擊項目)->屬性-> C / C +±>預處理程序->預處理程序定義

OPENCV;_TIMESPEC_DEFINED;_CRT_SECURE_NO_WARNINGS;_CRT_RAND_S;WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions)

編譯為.exe(X64和Release)并使用.exe將.dll-s放在附近:https : //hsto.org/webt/uh/fk/-e/uhfk-eb0q-hwd9hsxhrikbokd6u.jpeg

pthreadVC2.dll, pthreadGC2.dll 來自\ 3rdparty \ dll \ x64
cusolver64_91.dll, curand64_91.dll, cudart64_91.dll, cublas64_91.dll -91(對于CUDA 9.1或版本),來自C:\ Program Files \ NVIDIA GPU Computing Toolkit
CUDA \ v9.1 \ bin
對于OpenCV的3.2:opencv_world320.dll與opencv_ffmpeg320_64.dll從C:\opencv_3.0\opencv\build\x64\vc14\bin
對于OpenCV的2.4.13: opencv_core2413.dll,opencv_highgui2413.dll并opencv_ffmpeg2413_64.dll從C:\opencv_2.4.13\opencv\build\x64\vc14\bin

訓練方法(Pascal VOC資料):

  1. 下載卷積層的預訓練權重(154 MB):http : //pjreddie.com/media/files/darknet53.conv.74并放入目錄build\darknet\x64

  2. 下載Pascal VOC數(shù)據(jù)并將其解壓縮到目錄中,build\darknet\x64\data\voc將創(chuàng)建dir build\darknet\x64\data\voc\VOCdevkit\:

o http://pjreddie.com/media/files/VOCtrainval_11-May-2012.tar

o http://pjreddie.com/media/files/VOCtrainval_06-Nov-2007.tar

o http://pjreddie.com/media/files/VOCtest_06-Nov-2007.tar

2.1 將文件下載voc_label.py到dir build\darknet\x64\data\voc:
http : //pjreddie.com/media/files/voc_label.py

  1. 下載并安裝適用于Windows的Python:https://www.python.org/ftp/python/3.5.2/python-3.5.2-amd64.exe

  2. 運行命令:(python build\darknet\x64\data\voc\voc_label.py生成文件:2007_test.txt,2007_train.txt,2007_val.txt,2012_train.txt,2012_val.txt)

  3. 運行命令: type 2007_train.txt 2007_val.txt 2012_*.txt > train.txt

  4. 設置batch=64并subdivisions=8在文件中yolov3-voc.cfg:鏈接

  5. 使用train_voc.cmd或使用命令行開始訓練:

darknet.exe detector train cfg/voc.data cfg/yolov3-voc.cfg
darknet53.conv.74

(注意:要禁用Loss-Window use標志-dont_show。如果使用的是CPU,請嘗試使用darknet_no_gpu.exe代替darknet.exe。)

如果需要,請更改文件中的路徑 build\darknet\cfg\voc.data

有關鏈接的訓練的更多信息:http : //pjreddie.com/darknet/yolo/#train-voc

注意:如果在訓練過程中看到(損失)字段的nan值avg-則訓練有誤,但如果出現(xiàn)nan在其行中-則訓練進行得很好。

如何使用多GPU進行訓練:

  1. 首先在1個GPU上進行1000次迭代訓練: darknet.exe
    detector train cfg/voc.data cfg/yolov3-voc.cfg darknet53.conv.74

  2. 然后停止并通過使用部分訓練的模型/backup/yolov3-voc_1000.weights運行訓練來進行multigpu(最多4個GPU):darknet.exe detector train cfg/voc.data cfg/yolov3-voc.cfg /backup/yolov3-voc_1000.weights
    -gpus 0,1,2,3

僅對于小型數(shù)據(jù)集,有時對于4個GPU集learning_rate =
0.00025(例如,learning_rate = 0.001 / GPU)而言,降低學習率會更好。在這種情況下burn_in = and max_batches
=在cfg文件中增加4倍的時間。即使用burn_in = 4000代替1000。 Same
goes for steps= if policy=steps is set.。

https://groups.google.com/d/msg/darknet/NbJqonJBTSY/Te5PfIpuCAAJ

總結

以上是生活随笔為你收集整理的适用于Windows和Linux的Yolo-v3和Yolo-v2(上)的全部內容,希望文章能夠幫你解決所遇到的問題。

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