东方耀AI技术分享

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 5517|回复: 8

[课堂笔记] 04、在Ubuntu下使用make命令编译AlexeyAB版Darknet

[复制链接]

1365

主题

1856

帖子

1万

积分

管理员

Rank: 10Rank: 10Rank: 10

积分
14418
QQ
发表于 2020-2-18 16:23:59 | 显示全部楼层 |阅读模式
04、在Ubuntu下使用make命令编译AlexeyAB版Darknet

先修改Makefile文件:之后直接make
需要注意的是Makefile中有一些可选参数
GPU=1代表编译完成后将可以使用CUDA来进行GPU加速
CUDNN=1代表通过cuDNN v5-v7进行编译,这样将可以加速使用GPU训练过程
CUDNN_HALF=1代表在编译的过程中是否添加Tensor Cores, 编译完成后将可以将目标检测速度提升为原来的3倍,训练网络的速度提高为原来的2倍
OPENCV=1代表编译的过程中加入OpenCV, 目前支持的OpenCV的版本有4.x/3.x/2.4.x, 编译结束后将允许Darknet对网络摄像头的视频流或者视频文件进行目标检测


set AVX=1 and OPENMP=1 to speedup on CPU (if error occurs then set AVX=0)
OPENMP=1代表编译过程将引入openmp,编译结束后将代表可以使用多核CPU对yolo进行加速。
LIBSO=1 代表编译库darknet.so
ZED_CAMERA=1 构建具有ZED-3D相机支持的库(应安装ZED SDK),然后运行
DEBUG=1 代表是否开启YOLO的debug模式

  1. GPU=1
  2. CUDNN=1
  3. CUDNN_HALF=1
  4. OPENCV=1
  5. AVX=1
  6. OPENMP=1
  7. LIBSO=1
  8. ZED_CAMERA=0

  9. # set GPU=1 and CUDNN=1 to speedup on GPU
  10. # set CUDNN_HALF=1 to further speedup 3 x times (Mixed-precision on Tensor Cores) GPU: Volta, Xavier, Turing and higher
  11. # set AVX=1 and OPENMP=1 to speedup on CPU (if error occurs then set AVX=0)

  12. USE_CPP=0
  13. DEBUG=0

  14. ARCH= -gencode arch=compute_30,code=sm_30 \
  15.       -gencode arch=compute_35,code=sm_35 \
  16.       -gencode arch=compute_50,code=[sm_50,compute_50] \
  17.       -gencode arch=compute_52,code=[sm_52,compute_52] \
  18.           -gencode arch=compute_61,code=[sm_61,compute_61] \
  19.           -gencode arch=compute_75,code=[sm_75,compute_75]
复制代码


DarkNet的测试
./darknet imtest data/eagle.jpg


测试的(使用预训练模型)进行前向推理
./darknet detector test cfg/coco.data cfg/yolov3.cfg backup/yolov3.weights data/person.jpg


训练的(使用预训练模型)
1、先修改cfg/coco.data下的数据路径:
  1. classes= 80
  2. train  = /home/dfy888/DataSets/COCO/trainvalno5k.txt
  3. valid  = /home/dfy888/DataSets/COCO/5k.txt
  4. #valid = data/coco_val_5k.list
  5. names = data/coco.names
  6. backup = backup
  7. eval=coco
复制代码


2、再修改cfg/yolov3.cfg的网络配置:关闭测试 开启训练 稍微调大一点max_batches
  1. # Testing
  2. # batch=1
  3. # subdivisions=1
  4. # Training
  5. batch=64
  6. subdivisions=16

  7. max_batches = 500300
复制代码
3、执行下面的,就可以看到模型在继续训练啦!
./darknet detector train cfg/coco.data cfg/yolov3.cfg backup/yolov3.weights







darknet.png
darknet_final.png
让天下人人学会人工智能!人工智能的前景一片大好!
回复

使用道具 举报

1365

主题

1856

帖子

1万

积分

管理员

Rank: 10Rank: 10Rank: 10

积分
14418
QQ
 楼主| 发表于 2020-11-3 09:27:34 | 显示全部楼层

  1. 编译darknet也可以直接用cmake  运行:./build.sh
  2. 会自动去查找系统的存在的依赖:cuda gcc cudnn zed等

  3. jiang@jiang-Ubuntu:~/dfy_darknet_works/darknet-master$ ./build.sh
  4. -- The C compiler identification is GNU 7.5.0
  5. -- The CXX compiler identification is GNU 7.5.0
  6. -- Check for working C compiler: /usr/bin/cc
  7. -- Check for working C compiler: /usr/bin/cc -- works
  8. -- Detecting C compiler ABI info
  9. -- Detecting C compiler ABI info - done
  10. -- Detecting C compile features
  11. -- Detecting C compile features - done
  12. -- Check for working CXX compiler: /usr/bin/c++
  13. -- Check for working CXX compiler: /usr/bin/c++ -- works
  14. -- Detecting CXX compiler ABI info
  15. -- Detecting CXX compiler ABI info - done
  16. -- Detecting CXX compile features
  17. -- Detecting CXX compile features - done
  18. -- Looking for a CUDA compiler
  19. -- Looking for a CUDA compiler - /usr/local/cuda-10.0/bin/nvcc
  20. -- The CUDA compiler identification is NVIDIA 10.0.130
  21. -- Check for working CUDA compiler: /usr/local/cuda-10.0/bin/nvcc
  22. -- Check for working CUDA compiler: /usr/local/cuda-10.0/bin/nvcc -- works
  23. -- Detecting CUDA compiler ABI info
  24. -- Detecting CUDA compiler ABI info - done
  25. -- Looking for pthread.h
  26. -- Looking for pthread.h - found
  27. -- Looking for pthread_create
  28. -- Looking for pthread_create - not found
  29. -- Looking for pthread_create in pthreads
  30. -- Looking for pthread_create in pthreads - not found
  31. -- Looking for pthread_create in pthread
  32. -- Looking for pthread_create in pthread - found
  33. -- Found Threads: TRUE  
  34. -- Found CUDA: /usr/local/cuda-10.0 (found version "10.0")
  35. -- Autodetected CUDA architecture(s):  7.5
  36. -- Building with CUDA flags: -gencode;arch=compute_75,code=sm_75
  37. -- Your setup supports half precision (it requires CC >= 7.0)
  38. -- Found OpenCV: /usr (found version "3.2.0")
  39. -- Found Stb: /home/jiang/dfy_darknet_works/darknet-master/3rdparty/stb/include  
  40. -- Found OpenMP_C: -fopenmp (found version "4.5")
  41. -- Found OpenMP_CXX: -fopenmp (found version "4.5")
  42. -- Found OpenMP: TRUE (found version "4.5")  
  43. --   ->  darknet is fine for now, but uselib_track has been disabled!
  44. --   ->  Please rebuild OpenCV from sources with CUDA support to enable it
  45. -- Found CUDNN: /usr/include (found version "7.6.0")
  46. -- CMAKE_CUDA_FLAGS: -gencode arch=compute_75,code=sm_75 --compiler-options " -Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -Wno-deprecated-declarations -Wno-write-strings -DGPU -DCUDNN -DOPENCV -fPIC -fopenmp -Ofast "
  47. -- ZED SDK not found
  48. -- Configuring done
  49. -- Generating done
  50. -- Build files have been written to: /home/jiang/dfy_darknet_works/darknet-master/build_release

  51. 编译100% 后
  52. Install the project...
  53. -- Install configuration: "Release"
  54. -- Installing: /home/jiang/dfy_darknet_works/darknet-master/libdarknet.so
  55. -- Installing: /home/jiang/dfy_darknet_works/darknet-master/include/darknet/darknet.h
  56. -- Installing: /home/jiang/dfy_darknet_works/darknet-master/include/darknet/yolo_v2_class.hpp
  57. -- Installing: /home/jiang/dfy_darknet_works/darknet-master/uselib
  58. -- Set runtime path of "/home/jiang/dfy_darknet_works/darknet-master/uselib" to ""
  59. -- Installing: /home/jiang/dfy_darknet_works/darknet-master/darknet
  60. -- Installing: /home/jiang/dfy_darknet_works/darknet-master/share/darknet/DarknetTargets.cmake
  61. -- Installing: /home/jiang/dfy_darknet_works/darknet-master/share/darknet/DarknetTargets-release.cmake
  62. -- Installing: /home/jiang/dfy_darknet_works/darknet-master/share/darknet/DarknetConfig.cmake
  63. -- Installing: /home/jiang/dfy_darknet_works/darknet-master/share/darknet/DarknetConfigVersion.cmake
复制代码
让天下人人学会人工智能!人工智能的前景一片大好!
回复

使用道具 举报

1365

主题

1856

帖子

1万

积分

管理员

Rank: 10Rank: 10Rank: 10

积分
14418
QQ
 楼主| 发表于 2020-11-3 09:29:23 | 显示全部楼层
jiang@jiang-Ubuntu:~/dfy_darknet_works/darknet-master$ ./darknet imtest data/eagle.jpg
CUDA-version: 10000 (11000), cuDNN: 7.6.0, CUDNN_HALF=1, GPU count: 1  
CUDNN_HALF=1
OpenCV version: 3.2.0
让天下人人学会人工智能!人工智能的前景一片大好!
回复

使用道具 举报

1365

主题

1856

帖子

1万

积分

管理员

Rank: 10Rank: 10Rank: 10

积分
14418
QQ
 楼主| 发表于 2020-11-3 09:36:24 | 显示全部楼层
测试的(使用预训练模型)进行前向推理:
./darknet detector test cfg/coco.data backup/yolov4.cfg backup/yolov4.weights data/person.jpg
让天下人人学会人工智能!人工智能的前景一片大好!
回复

使用道具 举报

1365

主题

1856

帖子

1万

积分

管理员

Rank: 10Rank: 10Rank: 10

积分
14418
QQ
 楼主| 发表于 2020-11-4 09:07:55 | 显示全部楼层

./darknet detector test backup/coco.data backup/yolov4.cfg backup/yolov4.weights data/person.jpg
./darknet detector test backup/coco.data backup/yolov4-tiny.cfg backup/yolov4-tiny.weights data/person.jpg

评估YOLOV4的AP:
./darknet detector valid backup/coco.data backup/yolov4.cfg backup/yolov4.weights

评估模型的FPS:
/home/jiang/py3_openvino_works/vehicle_jjj/plate_videos/1021北辰拍摄.mp4
./darknet detector demo backup/coco.data backup/yolov4.cfg backup/yolov4.weights /home/jiang/py3_openvino_works/vehicle_jjj/plate_videos/1021北辰拍摄.mp4 -dont_show -ext_output
结果:AVG_FPS:52.1
./darknet detector demo backup/coco.data backup/yolov4.cfg backup/yolov4.weights /home/jiang/py3_openvino_works/vehicle_jjj/plate_videos/1021北辰拍摄.mp4 -benchmark

保存结果视频 展示检测的视频:
./darknet detector demo backup/coco.data backup/yolov4.cfg backup/yolov4.weights /home/jiang/py3_openvino_works/vehicle_jjj/plate_videos/1021北辰拍摄.mp4 -out_filename result_dfy.avi

drawing of chart of average-Loss and accuracy-mAP (-map flag) during training

标注工具:https://github.com/AlexeyAB/Yolo_mark

训练:
./darknet detector train backup_fire/fire.data backup_fire/yolov4-tiny_fire.cfg backup/yolov4-tiny.conv.29 -map
训练的图片 必须放darknet当前目录下?  不一定的 写绝对路径即可
让天下人人学会人工智能!人工智能的前景一片大好!
回复

使用道具 举报

1365

主题

1856

帖子

1万

积分

管理员

Rank: 10Rank: 10Rank: 10

积分
14418
QQ
 楼主| 发表于 2020-11-4 13:55:43 | 显示全部楼层
  1. [
  2. {'type': 'net', 'batch': 1, 'subdivisions': 1, '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': 500200, 'policy': 'steps', 'steps': '400000,450000', 'scales': '.1,.1'},

  3. {'type': 'convolutional', 'batch_normalize': 1, 'filters': 16, 'size': 3, 'stride': 1, 'pad': 1, 'activation': 'leaky'},

  4. {'type': 'maxpool', 'size': 2, 'stride': 2},

  5. {'type': 'convolutional', 'batch_normalize': 1, 'filters': 32, 'size': 3, 'stride': 1, 'pad': 1, 'activation': 'leaky'},

  6. {'type': 'maxpool', 'size': 2, 'stride': 2},

  7. {'type': 'convolutional', 'batch_normalize': 1, 'filters': 64, 'size': 3, 'stride': 1, 'pad': 1, 'activation': 'leaky'},

  8. {'type': 'maxpool', 'size': 2, 'stride': 2},

  9. {'type': 'convolutional', 'batch_normalize': 1, 'filters': 128, 'size': 3, 'stride': 1, 'pad': 1, 'activation':'leaky'},

  10. {'type': 'maxpool', 'size': 2, 'stride': 2},

  11. {'type': 'convolutional', 'batch_normalize': 1, 'filters': 256, 'size': 3, 'stride': 1, 'pad': 1, 'activation': 'leaky'},

  12. {'type': 'maxpool', 'size': 2, 'stride': 2},

  13. {'type': 'convolutional', 'batch_normalize': 1, 'filters': 512, 'size': 3, 'stride': 1, 'pad': 1, 'activation': 'leaky'},

  14. {'type': 'maxpool', 'size': 2, 'stride': 1},

  15. {'type': 'convolutional', 'batch_normalize': 1, 'filters': 1024, 'size': 3, 'stride': 1, 'pad': 1, 'activation': 'leaky'},

  16. {'type': 'convolutional', 'batch_normalize': 1, 'filters': 256, 'size': 1, 'stride': 1, 'pad': 1, 'activation': 'leaky'},

  17. {'type': 'convolutional', 'batch_normalize': 1, 'filters': 512, 'size': 3, 'stride': 1, 'pad': 1, 'activation': 'leaky'},

  18. {'type': 'convolutional', 'batch_normalize': 0, 'size': 1, 'stride': 1, 'pad': 1, 'filters': 255, 'activation': 'linear'},

  19. {'type': 'yolo', 'mask': [3, 4, 5], 'anchors': array([[         10,          14],
  20.        [         23,          27],
  21.        [         37,          58],
  22.        [         81,          82],
  23.        [        135,         169],
  24.        [        344,         319]]), 'classes': 80, 'num': 6, 'jitter': '.3', 'ignore_thresh': '.7', 'truth_thresh': 1, 'random': 1},

  25. {'type': 'route', 'layers': [-4]},

  26. {'type': 'convolutional', 'batch_normalize': 1, 'filters': 128, 'size': 1, 'stride': 1, 'pad': 1, 'activation': 'leaky'},

  27. {'type': 'upsample', 'stride': 2},

  28. {'type': 'route', 'layers': [-1, 8]},

  29. {'type': 'convolutional', 'batch_normalize': 1, 'filters': 256, 'size': 3, 'stride': 1, 'pad': 1, 'activation': 'leaky'},

  30. {'type': 'convolutional', 'batch_normalize': 0, 'size': 1, 'stride': 1, 'pad': 1, 'filters': 255, 'activation': 'linear'},

  31. {'type': 'yolo', 'mask': [1, 2, 3], 'anchors': array([[         10,          14],
  32.        [         23,          27],
  33.        [         37,          58],
  34.        [         81,          82],
  35.        [        135,         169],
  36.        [        344,         319]]), 'classes': 80, 'num': 6, 'jitter': '.3', 'ignore_thresh': '.7', 'truth_thresh': 1, 'random': 1}

  37. ]
复制代码
让天下人人学会人工智能!人工智能的前景一片大好!
回复

使用道具 举报

1365

主题

1856

帖子

1万

积分

管理员

Rank: 10Rank: 10Rank: 10

积分
14418
QQ
 楼主| 发表于 2021-2-5 09:00:46 | 显示全部楼层

对cmake的版本有要求啊
  1. jiang@jiang-Ubuntu:~/jjj_darknet_works/darknet-master$ ./build.sh
  2. CMake Error at CMakeLists.txt:1 (cmake_minimum_required):
  3.   CMake 3.18 or higher is required.  You are running version 3.14.1


  4. -- Configuring incomplete, errors occurred!
  5. Error: could not find CMAKE_PROJECT_NAME in Cache
  6. cp: 目标'share/darknet/' 不是目录
复制代码
让天下人人学会人工智能!人工智能的前景一片大好!
回复

使用道具 举报

1365

主题

1856

帖子

1万

积分

管理员

Rank: 10Rank: 10Rank: 10

积分
14418
QQ
 楼主| 发表于 2021-6-28 09:50:59 | 显示全部楼层
东方耀 发表于 2020-11-3 09:29
jiang@jiang-Ubuntu:~/dfy_darknet_works/darknet-master$ ./darknet imtest data/eagle.jpg
CUDA-version ...

jiang@jiang-Ubuntu:~/jjj_darknet_works/Darknet-BBuf$ ./darknet imtest data/eagle.jpg
CUDA-version: 10010 (11010)
Warning: CUDA-version is lower than Driver-version!
, cuDNN: 7.6.5, CUDNN_HALF=1, GPU count: 1  
OpenCV version: 3.2.0
L2 Norm: 371.542877
-0.002260 1.041666 0.952124
-0.025711 1.091045 0.902857
让天下人人学会人工智能!人工智能的前景一片大好!
回复

使用道具 举报

1365

主题

1856

帖子

1万

积分

管理员

Rank: 10Rank: 10Rank: 10

积分
14418
QQ
 楼主| 发表于 2021-6-28 09:55:18 | 显示全部楼层
跟这个来:https://github.com/BBuf/Darknet 深入源码

cmake方式编译安装:
mkdir build
cd build
cmake ..
make
sudo make install  安装在项目目录下,并非系统的
jiang@jiang-Ubuntu:~/jjj_darknet_works/Darknet-BBuf/build$ sudo make install
[ 49%] Built target dark
[ 51%] Built target uselib
[100%] Built target darknet
Install the project...
-- Install configuration: ""
-- Up-to-date: /home/jiang/jjj_darknet_works/Darknet-BBuf/libdark.so
-- Up-to-date: /home/jiang/jjj_darknet_works/Darknet-BBuf/include/darknet/darknet.h
-- Up-to-date: /home/jiang/jjj_darknet_works/Darknet-BBuf/include/darknet/yolo_v2_class.hpp
-- Up-to-date: /home/jiang/jjj_darknet_works/Darknet-BBuf/uselib
-- Up-to-date: /home/jiang/jjj_darknet_works/Darknet-BBuf/darknet
-- Up-to-date: /home/jiang/jjj_darknet_works/Darknet-BBuf/share/darknet/DarknetTargets.cmake
-- Up-to-date: /home/jiang/jjj_darknet_works/Darknet-BBuf/share/darknet/DarknetTargets-noconfig.cmake
-- Up-to-date: /home/jiang/jjj_darknet_works/Darknet-BBuf/share/darknet/DarknetConfig.cmake
-- Up-to-date: /home/jiang/jjj_darknet_works/Darknet-BBuf/share/darknet/DarknetConfigVersion.cmake
让天下人人学会人工智能!人工智能的前景一片大好!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|人工智能工程师的摇篮 ( 湘ICP备2020019608号-1 )

GMT+8, 2024-3-29 18:59 , Processed in 0.199008 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表