当前位置:   article > 正文

darknet入门记录【msys2环境+opencv编译】_msys 编译opencv

msys 编译opencv

记录废话很多,主要内容:

  1. window下使用mysy2对darknet进行编译
  2. 配合opencv编译darknet的问题解决:
  • opencv4最新版本Iplimage
  • clock_t为代表的简单报错
  • timeval timesub无定义
  • mysy2链接库dll

对darknet整个项目各个部分的一个解释:

src 源文件,包含了darknet最底层的一些定义,包括激活层、全局池化层、归一层等等

example 高层文件,对底层的调用,包括检测和显示

cfg 配置文件,*.cfg 模型架构 *.data模型训练配置

  1. classes= 80 #训练种类
  2. train = /home/pjreddie/data/coco/trainvalno5k.txt #训练集路径
  3. valid = coco_testdev #验证集路径
  4. #valid = data/coco_val_5k.list
  5. names = data/coco.names #训练种类的具体名称文件
  6. backup = /home/pjreddie/backup/ #训练后得到的权重存放位置

 python文件即python接口


Darknet: Open Source Neural Networks in C

看了一下官网,这种强烈的中二气息让人欲罢不能,不由得赞叹,包装相当巧妙。

先安装了msys2,教程很详细在window下搭建Darknet环境_橘子都吃不起!的博客-CSDN博客感谢!!

官网MSYS2

在实际安装中的版本:一定要添加清华镜像站!!以下只是一个记录过程,没有实际的意义。用make -j带一个参数,可以把项目在进行并行编译.

  1. $ pacman -S gcc
  2. 正在解析依赖关系...
  3. 正在查找软件包冲突...
  4. 软件包 (9) binutils-2.30-2 gcc-libs-9.1.0-2 isl-0.21-1 mpc-1.1.0-1
  5. msys2-runtime-devel-3.0.7-6
  6. msys2-w32api-headers-7.0.0.5479.8db8dd5a-1
  7. msys2-w32api-runtime-7.0.0.5479.8db8dd5a-1
  8. windows-default-manifest-6.4-1 gcc-9.1.0-2
  9. 下载大小: 43.98 MiB
  10. 全部安装大小: 291.77 MiB
  11. 净更新大小: 288.06 MiB
  12. :: 进行安装吗? [Y/n] y
  13. :: 正在获取软件包......
  14. gcc-libs-9.1.0-2... 1183.6 KiB 180 KiB/s 00:07 [#####################] 100%
  15. binutils-2.30-2-... 4.3 MiB 411 KiB/s 00:11 [#####################] 100%
  16. isl-0.21-1-x86_64 505.7 KiB 1397 KiB/s 00:00 [#####################] 100%
  17. mpc-1.1.0-1-x86_64 74.1 KiB 4.02 MiB/s 00:00 [#####################] 100%
  18. msys2-runtime-de... 5.3 MiB 1842 KiB/s 00:03 [#####################] 100%
  19. msys2-w32api-hea... 4.6 MiB 2.18 MiB/s 00:02 [#####################] 100%
  20. msys2-w32api-run... 1825.4 KiB 2.42 MiB/s 00:01 [#####################] 100%
  21. windows-default-... 1388.0 B 90.4 KiB/s 00:00 [#####################] 100%
  22. gcc-9.1.0-2-x86_64 26.3 MiB 2.39 MiB/s 00:11 [#####################] 100%
  23. (9/9) 正在检查密钥环里的密钥 [#####################] 100%
  24. (9/9) 正在检查软件包完整性 [#####################] 100%
  25. (9/9) 正在加载软件包文件 [#####################] 100%
  26. (9/9) 正在检查文件冲突 [#####################] 100%
  27. (9/9) 正在检查可用存储空间 [#####################] 100%
  28. :: 正在处理软件包的变化...
  29. (1/9) 正在更新 gcc-libs [#####################] 100%
  30. (2/9) 正在安装 binutils [#####################] 100%
  31. (3/9) 正在安装 isl [#####################] 100%
  32. (4/9) 正在安装 mpc [#####################] 100%
  33. (5/9) 正在安装 msys2-runtime-devel [#####################] 100%
  34. (6/9) 正在安装 msys2-w32api-headers [#####################] 100%
  35. (7/9) 正在安装 msys2-w32api-runtime [#####################] 100%
  36. (8/9) 正在安装 windows-default-manifest [#####################] 100%
  37. (9/9) 正在安装 gcc [#####################] 100%
  38. MSYS ~
  39. $ pacman -S gdb
  40. 正在解析依赖关系...
  41. 正在查找软件包冲突...
  42. 软件包 (4) expat-2.2.9-1 mpdecimal-2.4.2-2 python-3.7.4-1 gdb-8.2.1-3
  43. 下载大小: 18.88 MiB
  44. 全部安装大小: 114.38 MiB
  45. :: 进行安装吗? [Y/n] y
  46. :: 正在获取软件包......
  47. expat-2.2.9-1-x86_64 43.7 KiB 2.85 MiB/s 00:00 [#####################] 100%
  48. mpdecimal-2.4.2-... 86.7 KiB 363 KiB/s 00:00 [#####################] 100%
  49. python-3.7.4-1-x... 14.9 MiB 945 KiB/s 00:16 [#####################] 100%
  50. gdb-8.2.1-3-x86_64 3.9 MiB 1397 KiB/s 00:03 [#####################] 100%
  51. (4/4) 正在检查密钥环里的密钥 [#####################] 100%
  52. (4/4) 正在检查软件包完整性 [#####################] 100%
  53. (4/4) 正在加载软件包文件 [#####################] 100%
  54. (4/4) 正在检查文件冲突 [#####################] 100%
  55. (4/4) 正在检查可用存储空间 [#####################] 100%
  56. :: 正在处理软件包的变化...
  57. (1/4) 正在安装 expat [#####################] 100%
  58. (2/4) 正在安装 mpdecimal [#####################] 100%
  59. (3/4) 正在安装 python [#####################] 100%
  60. (4/4) 正在安装 gdb [#####################] 100%
  61. MSYS ~
  62. $ pacman -S make
  63. 正在解析依赖关系...
  64. 正在查找软件包冲突...
  65. 软件包 (1) make-4.2.1-1
  66. 下载大小: 0.41 MiB
  67. 全部安装大小: 1.22 MiB
  68. :: 进行安装吗? [Y/n] y
  69. :: 正在获取软件包......
  70. make-4.2.1-1-x86_64 414.8 KiB 531 KiB/s 00:01 [#####################] 100%
  71. (1/1) 正在检查密钥环里的密钥 [#####################] 100%
  72. (1/1) 正在检查软件包完整性 [#####################] 100%
  73. (1/1) 正在加载软件包文件 [#####################] 100%
  74. (1/1) 正在检查文件冲突 [#####################] 100%
  75. (1/1) 正在检查可用存储空间 [#####################] 100%
  76. :: 正在处理软件包的变化...
  77. (1/1) 正在安装 make [#####################] 100%
  78. MSYS ~
  79. $ make -v
  80. GNU Make 4.2.1
  81. 为 x86_64-pc-msys 编译
  82. Copyright (C) 1988-2016 Free Software Foundation, Inc.
  83. 许可证:GPLv3+:GNU 通用公共许可证第 3 版或更新版本<http://gnu.org/licenses/gpl.html>
  84. 本软件是自由软件:您可以自由修改和重新发布它。
  85. 在法律允许的范围内没有其他保证。
  86. MSYS ~
  87. $ gcc -v
  88. 使用内建 specs。
  89. COLLECT_GCC=gcc
  90. COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-pc-msys/9.1.0/lto-wrapper.exe
  91. 目标:x86_64-pc-msys
  92. 配置为:/msys_scripts/gcc/src/gcc-9.1.0/configure --build=x86_64-pc-msys --prefix=/usr --libexecdir=/usr/lib --enable-bootstrap --enable-shared --enable-shared-libgcc --enable-static --enable-version-specific-runtime-libs --with-arch=x86-64 --with-tune=generic --disable-multilib --enable-__cxa_atexit --with-dwarf2 --enable-languages=c,c++,fortran,lto --enable-graphite --enable-threads=posix --enable-libatomic --enable-libgomp --enable-libitm --enable-libquadmath --enable-libquadmath-support --disable-libssp --disable-win32-registry --disable-symvers --with-gnu-ld --with-gnu-as --disable-isl-version-check --enable-checking=release --without-libiconv-prefix --without-libintl-prefix --with-system-zlib --enable-linker-build-id --with-default-libstdcxx-abi=gcc4-compatible --enable-libstdcxx-filesystem-ts
  93. 线程模型:posix
  94. gcc 版本 9.1.0 (GCC)

另外,常用命令参考msys2软件包管理工具pacman常用命令_hustlei的专栏-CSDN博客_msys2 pacman

测试一下!!另外使用的模型参数可以在YOLO: Real-Time Object Detection下载。

  1. D:\demo\darknet>.\darknet detect cfg/yolov3-tiny.cfg yolov3-tiny.weights data/person.jpg
  2. layer filters size input output
  3. 0 conv 16 3 x 3 / 1 416 x 416 x 3 -> 416 x 416 x 16 0.150 BFLOPs
  4. 1 max 2 x 2 / 2 416 x 416 x 16 -> 208 x 208 x 16
  5. 2 conv 32 3 x 3 / 1 208 x 208 x 16 -> 208 x 208 x 32 0.399 BFLOPs
  6. 3 max 2 x 2 / 2 208 x 208 x 32 -> 104 x 104 x 32
  7. 4 conv 64 3 x 3 / 1 104 x 104 x 32 -> 104 x 104 x 64 0.399 BFLOPs
  8. 5 max 2 x 2 / 2 104 x 104 x 64 -> 52 x 52 x 64
  9. 6 conv 128 3 x 3 / 1 52 x 52 x 64 -> 52 x 52 x 128 0.399 BFLOPs
  10. 7 max 2 x 2 / 2 52 x 52 x 128 -> 26 x 26 x 128
  11. 8 conv 256 3 x 3 / 1 26 x 26 x 128 -> 26 x 26 x 256 0.399 BFLOPs
  12. 9 max 2 x 2 / 2 26 x 26 x 256 -> 13 x 13 x 256
  13. 10 conv 512 3 x 3 / 1 13 x 13 x 256 -> 13 x 13 x 512 0.399 BFLOPs
  14. 11 max 2 x 2 / 1 13 x 13 x 512 -> 13 x 13 x 512
  15. 12 conv 1024 3 x 3 / 1 13 x 13 x 512 -> 13 x 13 x1024 1.595 BFLOPs
  16. 13 conv 256 1 x 1 / 1 13 x 13 x1024 -> 13 x 13 x 256 0.089 BFLOPs
  17. 14 conv 512 3 x 3 / 1 13 x 13 x 256 -> 13 x 13 x 512 0.399 BFLOPs
  18. 15 conv 255 1 x 1 / 1 13 x 13 x 512 -> 13 x 13 x 255 0.044 BFLOPs
  19. 16 yolo
  20. 17 route 13
  21. 18 conv 128 1 x 1 / 1 13 x 13 x 256 -> 13 x 13 x 128 0.011 BFLOPs
  22. 19 upsample 2x 13 x 13 x 128 -> 26 x 26 x 128
  23. 20 route 19 8
  24. 21 conv 256 3 x 3 / 1 26 x 26 x 384 -> 26 x 26 x 256 1.196 BFLOPs
  25. 22 conv 255 1 x 1 / 1 26 x 26 x 256 -> 26 x 26 x 255 0.088 BFLOPs
  26. 23 yolo
  27. Loading weights from yolov3-tiny.weights...Done!
  28. data/person.jpg: Predicted in 0.809380 seconds.
  29. horse: 94%
  30. dog: 91%
  31. dog: 90%
  32. person: 86%

测试出来的结果和教程一样是狗中狗。

如果需要加载视频的话,是需要用opencv来编译的,在msys64中安装一下opencv

pacman -S mingw-w64-x86_64-opencv 

  1. $ pacman -S mingw-w64-x86_64-opencv
  2. 正在解析依赖关系...
  3. 正在查找软件包冲突...
  4. 警告:检测到循环依赖:
  5. 警告:mingw-w64-x86_64-harfbuzz 将在它 mingw-w64-x86_64-freetype 的依赖关系之前被安装
  6. 软件包 (90) mingw-w64-x86_64-SDL2-2.0.10-1 mingw-w64-x86_64-binutils-2.33.1-1
  7. mingw-w64-x86_64-boost-1.72.0-1 mingw-w64-x86_64-bzip2-1.0.8-1
  8. mingw-w64-x86_64-ca-certificates-20190110-1
  9. mingw-w64-x86_64-cairo-1.16.0-1
  10. mingw-w64-x86_64-ceres-solver-1.14.0-4
  11. mingw-w64-x86_64-cppunit-1.15.1-1
  12. mingw-w64-x86_64-crt-git-8.0.0.5576.34082b63-1
  13. mingw-w64-x86_64-eigen3-3.3.7-1 mingw-w64-x86_64-expat-2.2.9-1
  14. mingw-w64-x86_64-fontconfig-2.13.1-1
  15. mingw-w64-x86_64-freeglut-3.2.1-1
  16. mingw-w64-x86_64-freeimage-3.18.0-3
  17. mingw-w64-x86_64-freetype-2.10.1-1
  18. mingw-w64-x86_64-fribidi-1.0.8-1 mingw-w64-x86_64-gcc-9.2.0-2
  19. mingw-w64-x86_64-gcc-libgfortran-9.2.0-2
  20. mingw-w64-x86_64-gcc-libs-9.2.0-2
  21. mingw-w64-x86_64-gettext-0.19.8.1-8
  22. mingw-w64-x86_64-gflags-2.2.2-2 mingw-w64-x86_64-giflib-5.2.1-1
  23. mingw-w64-x86_64-glib2-2.62.4-1 mingw-w64-x86_64-glog-0.4.0-2
  24. mingw-w64-x86_64-glsl-optimizer-git-r66914.9a2852138d-1
  25. mingw-w64-x86_64-gmp-6.1.2-1 mingw-w64-x86_64-graphite2-1.3.13-2
  26. mingw-w64-x86_64-harfbuzz-2.6.4-3 mingw-w64-x86_64-hdf5-1.10.5-1
  27. mingw-w64-x86_64-headers-git-8.0.0.5576.34082b63-1
  28. mingw-w64-x86_64-hlsl2glsl-git-r848.957cd20-1
  29. mingw-w64-x86_64-icu-65.1-1 mingw-w64-x86_64-ilmbase-2.4.0-2
  30. mingw-w64-x86_64-intel-tbb-1~2020.0-1 mingw-w64-x86_64-isl-0.22-1
  31. mingw-w64-x86_64-jasper-2.0.16-1 mingw-w64-x86_64-jxrlib-1.1-3
  32. mingw-w64-x86_64-lcms2-2.9-1 mingw-w64-x86_64-leptonica-1.78.0-1
  33. mingw-w64-x86_64-libdatrie-0.2.12-1
  34. mingw-w64-x86_64-libffi-3.2.1-4 mingw-w64-x86_64-libiconv-1.16-1
  35. mingw-w64-x86_64-libjpeg-turbo-2.0.4-1
  36. mingw-w64-x86_64-libpng-1.6.37-3 mingw-w64-x86_64-libraw-0.19.5-1
  37. mingw-w64-x86_64-libsystre-1.0.1-4
  38. mingw-w64-x86_64-libtasn1-4.15.0-1
  39. mingw-w64-x86_64-libthai-0.1.28-2 mingw-w64-x86_64-libtiff-4.1.0-1
  40. mingw-w64-x86_64-libtre-git-r128.6fb7206-2
  41. mingw-w64-x86_64-libunwind-9.0.0-5
  42. mingw-w64-x86_64-libwebp-1.1.0-1
  43. mingw-w64-x86_64-libwinpthread-git-8.0.0.5574.33e5a2ac-1
  44. mingw-w64-x86_64-lzo2-2.10-1 mingw-w64-x86_64-metis-5.1.0-3
  45. mingw-w64-x86_64-mpc-1.1.0-1 mingw-w64-x86_64-mpdecimal-2.4.2-1
  46. mingw-w64-x86_64-mpfr-4.0.2-2
  47. mingw-w64-x86_64-ncurses-6.1.20190630-1
  48. mingw-w64-x86_64-ogre3d-1.12.2-1 mingw-w64-x86_64-openblas-0.3.7-1
  49. mingw-w64-x86_64-openexr-2.4.0-2
  50. mingw-w64-x86_64-openjpeg2-2.3.1-1
  51. mingw-w64-x86_64-openssl-1.1.1.d-1
  52. mingw-w64-x86_64-p11-kit-0.23.18.1-1
  53. mingw-w64-x86_64-pango-1.43.0-3 mingw-w64-x86_64-pcre-8.43-1
  54. mingw-w64-x86_64-pixman-0.38.4-1
  55. mingw-w64-x86_64-protobuf-3.11.2-1 mingw-w64-x86_64-python-3.8.1-1
  56. mingw-w64-x86_64-readline-8.0.001-2
  57. mingw-w64-x86_64-sqlite3-3.30.1-1
  58. mingw-w64-x86_64-suitesparse-5.6.0-1 mingw-w64-x86_64-szip-2.1.1-2
  59. mingw-w64-x86_64-tcl-8.6.10-1 mingw-w64-x86_64-termcap-1.3.1-5
  60. mingw-w64-x86_64-tesseract-ocr-4.1.0-1
  61. mingw-w64-x86_64-tinyxml-2.6.2-4 mingw-w64-x86_64-tk-8.6.10-1
  62. mingw-w64-x86_64-uasm-v2.50-1
  63. mingw-w64-x86_64-vulkan-headers-1.1.127-1
  64. mingw-w64-x86_64-vulkan-loader-1.1.127-1
  65. mingw-w64-x86_64-windows-default-manifest-6.4-3
  66. mingw-w64-x86_64-wineditline-2.205-3
  67. mingw-w64-x86_64-winpthreads-git-8.0.0.5574.33e5a2ac-1
  68. mingw-w64-x86_64-xz-5.2.4-1 mingw-w64-x86_64-zlib-1.2.11-7
  69. mingw-w64-x86_64-zstd-1.4.4-1 mingw-w64-x86_64-zziplib-0.13.69-1
  70. mingw-w64-x86_64-opencv-4.2.0-1
  71. 下载大小: 325.51 MiB
  72. 全部安装大小: 1822.64 MiB
  73. :: 进行安装吗? [Y/n] y
  74. :: 正在获取软件包......
  75. mingw-w64-x86_64... 833.1 KiB 833 KiB/s 00:01 [#####################] 100%
  76. mingw-w64-x86_64... 155.9 KiB 768 KiB/s 00:00 [#####################] 100%
  77. mingw-w64-x86_64... 623.0 KiB 2.17 MiB/s 00:00 [#####################] 100%
  78. mingw-w64-x86_64... 102.1 KiB 6.23 MiB/s 00:00 [#####################] 100%
  79. mingw-w64-x86_64... 13.6 MiB 3.24 MiB/s 00:04 [#####################] 100%
  80. mingw-w64-x86_64... 5.1 MiB 2.23 MiB/s 00:02 [#####################] 100%
  81. mingw-w64-x86_64... 3.1 MiB 2.61 MiB/s 00:01 [#####################] 100%
  82. mingw-w64-x86_64... 645.3 KiB 844 KiB/s 00:01 [#####################] 100%
  83. mingw-w64-x86_64... 486.0 KiB 1482 KiB/s 00:00 [#####################] 100%
  84. mingw-w64-x86_64... 345.9 KiB 4.33 MiB/s 00:00 [#####################] 100%
  85. mingw-w64-x86_64... 78.9 KiB 5.13 MiB/s 00:00 [#####################] 100%
  86. mingw-w64-x86_64... 45.0 KiB 2.75 MiB/s 00:00 [#####################] 100%
  87. mingw-w64-x86_64... 692.4 KiB 2.70 MiB/s 00:00 [#####################] 100%
  88. mingw-w64-x86_64... 12.9 KiB 0.00 B/s 00:00 [#####################] 100%
  89. mingw-w64-x86_64... 54.6 KiB 0.00 B/s 00:00 [#####################] 100%
  90. mingw-w64-x86_64... 32.9 MiB 2.71 MiB/s 00:12 [#####################] 100%
  91. mingw-w64-x86_64... 286.6 KiB 1412 KiB/s 00:00 [#####################] 100%
  92. mingw-w64-x86_64... 31.4 KiB 0.00 B/s 00:00 [#####################] 100%
  93. mingw-w64-x86_64... 127.3 KiB 4.01 MiB/s 00:00 [#####################] 100%
  94. mingw-w64-x86_64... 580.2 KiB 1769 KiB/s 00:00 [#####################] 100%
  95. mingw-w64-x86_64... 6.7 MiB 2.61 MiB/s 00:03 [#####################] 100%
  96. mingw-w64-x86_64... 333.9 KiB 2.28 MiB/s 00:00 [#####################] 100%
  97. mingw-w64-x86_64... 3.1 MiB 2.54 MiB/s 00:01 [#####################] 100%
  98. mingw-w64-x86_64... 667.7 KiB 342 KiB/s 00:02 [#####################] 100%
  99. mingw-w64-x86_64... 1521.0 KiB 1123 KiB/s 00:01 [#####################] 100%
  100. mingw-w64-x86_64... 168.1 KiB 1788 KiB/s 00:00 [#####################] 100%
  101. mingw-w64-x86_64... 433.8 KiB 423 KiB/s 00:01 [#####################] 100%
  102. mingw-w64-x86_64... 758.3 KiB 1349 KiB/s 00:01 [#####################] 100%
  103. mingw-w64-x86_64... 88.6 KiB 2.79 MiB/s 00:00 [#####################] 100%
  104. mingw-w64-x86_64... 141.3 KiB 2.94 MiB/s 00:00 [#####################] 100%
  105. mingw-w64-x86_64... 3.1 MiB 1915 KiB/s 00:02 [#####################] 100%
  106. mingw-w64-x86_64... 58.2 KiB 6.31 MiB/s 00:00 [#####################] 100%
  107. mingw-w64-x86_64... 885.1 KiB 1211 KiB/s 00:01 [#####################] 100%
  108. mingw-w64-x86_64... 44.9 KiB 2.74 MiB/s 00:00 [#####################] 100%
  109. mingw-w64-x86_64... 254.2 KiB 1453 KiB/s 00:00 [#####################] 100%
  110. mingw-w64-x86_64... 84.2 KiB 5.48 MiB/s 00:00 [#####################] 100%
  111. mingw-w64-x86_64... 24.0 KiB 0.00 B/s 00:00 [#####################] 100%
  112. mingw-w64-x86_64... 1784.7 KiB 943 KiB/s 00:02 [#####################] 100%
  113. mingw-w64-x86_64... 176.8 KiB 2.50 MiB/s 00:00 [#####################] 100%
  114. mingw-w64-x86_64... 292.6 KiB 4.08 MiB/s 00:00 [#####################] 100%
  115. mingw-w64-x86_64... 352.9 KiB 3.63 MiB/s 00:00 [#####################] 100%
  116. mingw-w64-x86_64... 4.8 MiB 2.24 MiB/s 00:02 [#####################] 100%
  117. mingw-w64-x86_64... 33.1 KiB 4.04 MiB/s 00:00 [#####################] 100%
  118. mingw-w64-x86_64... 375.2 KiB 3.52 MiB/s 00:00 [#####################] 100%
  119. mingw-w64-x86_64... 3.0 MiB 3.17 MiB/s 00:01 [#####################] 100%
  120. mingw-w64-x86_64... 6.6 MiB 2.79 MiB/s 00:02 [#####################] 100%
  121. mingw-w64-x86_64... 1919.6 KiB 1092 KiB/s 00:02 [#####################] 100%
  122. mingw-w64-x86_64... 297.7 KiB 3.34 MiB/s 00:00 [#####################] 100%
  123. mingw-w64-x86_64... 16.7 MiB 1973 KiB/s 00:09 [#####################] 100%
  124. mingw-w64-x86_64... 4.6 MiB 1894 KiB/s 00:02 [#####################] 100%
  125. mingw-w64-x86_64... 147.6 KiB 1893 KiB/s 00:00 [#####################] 100%
  126. mingw-w64-x86_64... 889.1 KiB 312 KiB/s 00:03 [#####################] 100%
  127. mingw-w64-x86_64... 347.1 KiB 2.44 MiB/s 00:00 [#####################] 100%
  128. mingw-w64-x86_64... 529.8 KiB 331 KiB/s 00:02 [#####################] 100%
  129. mingw-w64-x86_64... 54.6 KiB 0.00 B/s 00:00 [#####################] 100%
  130. mingw-w64-x86_64... 10.5 MiB 1450 KiB/s 00:07 [#####################] 100%
  131. mingw-w64-x86_64... 436.0 KiB 635 KiB/s 00:01 [#####################] 100%
  132. mingw-w64-x86_64... 922.4 KiB 1094 KiB/s 00:01 [#####################] 100%
  133. mingw-w64-x86_64... 133.4 KiB 2.77 MiB/s 00:00 [#####################] 100%
  134. mingw-w64-x86_64... 434.9 KiB 844 KiB/s 00:01 [#####################] 100%
  135. mingw-w64-x86_64... 18.4 MiB 1929 KiB/s 00:10 [#####################] 100%
  136. mingw-w64-x86_64... 21.2 MiB 1765 KiB/s 00:12 [#####################] 100%
  137. mingw-w64-x86_64... 213.4 KiB 1872 KiB/s 00:00 [#####################] 100%
  138. mingw-w64-x86_64... 252.3 KiB 5.13 MiB/s 00:00 [#####################] 100%
  139. mingw-w64-x86_64... 288.7 KiB 2.45 MiB/s 00:00 [#####################] 100%
  140. mingw-w64-x86_64... 438.5 KiB 3.27 MiB/s 00:00 [#####################] 100%
  141. mingw-w64-x86_64... 632.1 KiB 3.01 MiB/s 00:00 [#####################] 100%
  142. mingw-w64-x86_64... 220.0 KiB 5.12 MiB/s 00:00 [#####################] 100%
  143. mingw-w64-x86_64... 3.0 MiB 1448 KiB/s 00:02 [#####################] 100%
  144. mingw-w64-x86_64... 541.7 KiB 76.9 KiB/s 00:07 [#####################] 100%
  145. mingw-w64-x86_64... 705.4 KiB 1100 KiB/s 00:01 [#####################] 100%
  146. mingw-w64-x86_64... 234.8 KiB 2.94 MiB/s 00:00 [#####################] 100%
  147. mingw-w64-x86_64... 483.0 KiB 2.46 MiB/s 00:00 [#####################] 100%
  148. mingw-w64-x86_64... 118.6 KiB 4.63 MiB/s 00:00 [#####################] 100%
  149. mingw-w64-x86_64... 811.4 KiB 1274 KiB/s 00:01 [#####################] 100%
  150. mingw-w64-x86_64... 84.5 KiB 3.93 MiB/s 00:00 [#####################] 100%
  151. mingw-w64-x86_64... 131.7 KiB 4.15 MiB/s 00:00 [#####################] 100%
  152. mingw-w64-x86_64... 111.7 MiB 3.03 MiB/s 00:37 [#####################] 100%
  153. mingw-w64-x86_64... 2.0 MiB 3.76 MiB/s 00:01 [#####################] 100%
  154. mingw-w64-x86_64... 228.2 KiB 1826 KiB/s 00:00 [#####################] 100%
  155. mingw-w64-x86_64... 101.1 KiB 6.58 MiB/s 00:00 [#####################] 100%
  156. mingw-w64-x86_64... 289.7 KiB 1694 KiB/s 00:00 [#####################] 100%
  157. mingw-w64-x86_64... 804.0 KiB 367 KiB/s 00:02 [#####################] 100%
  158. mingw-w64-x86_64... 1439.4 KiB 885 KiB/s 00:02 [#####################] 100%
  159. mingw-w64-x86_64... 93.3 KiB 6.08 MiB/s 00:00 [#####################] 100%
  160. mingw-w64-x86_64... 168.7 KiB 3.51 MiB/s 00:00 [#####################] 100%
  161. mingw-w64-x86_64... 290.9 KiB 9.16 MiB/s 00:00 [#####################] 100%
  162. mingw-w64-x86_64... 580.0 KiB 1198 KiB/s 00:00 [#####################] 100%
  163. mingw-w64-x86_64... 4.8 MiB 1811 KiB/s 00:03 [#####################] 100%
  164. mingw-w64-x86_64... 22.4 MiB 4.39 MiB/s 00:05 [#####################] 100%
  165. (90/90) 正在检查密钥环里的密钥 [#####################] 100%
  166. (90/90) 正在检查软件包完整性 [#####################] 100%
  167. (90/90) 正在加载软件包文件 [#####################] 100%
  168. (90/90) 正在检查文件冲突 [#####################] 100%
  169. (90/90) 正在检查可用存储空间 [#####################] 100%
  170. :: 正在处理软件包的变化...
  171. ( 1/90) 正在安装 mingw-w64-x86_64-eigen3 [#####################] 100%
  172. ( 2/90) 正在安装 mingw-w64-x86_64-gflags [#####################] 100%
  173. ( 3/90) 正在安装 mingw-w64-x86_64-libiconv [#####################] 100%
  174. ( 4/90) 正在安装 mingw-w64-x86_64-zlib [#####################] 100%
  175. ( 5/90) 正在安装 mingw-w64-x86_64-binutils [#####################] 100%
  176. ( 6/90) 正在安装 mingw-w64-x86_64-headers-git [#####################] 100%
  177. ( 7/90) 正在安装 mingw-w64-x86_64-crt-git [#####################] 100%
  178. ( 8/90) 正在安装 mingw-w64-x86_64-isl [#####################] 100%
  179. ( 9/90) 正在安装 mingw-w64-x86_64-gmp [#####################] 100%
  180. (10/90) 正在安装 mingw-w64-x86_64-mpfr [#####################] 100%
  181. (11/90) 正在安装 mingw-w64-x86_64-mpc [#####################] 100%
  182. (12/90) 正在安装 mingw-w64-x86_64-libwinpthrea... [#####################] 100%
  183. (13/90) 正在安装 mingw-w64-x86_64-gcc-libs [#####################] 100%
  184. (14/90) 正在安装 mingw-w64-x86_64-windows-defa... [#####################] 100%
  185. (15/90) 正在安装 mingw-w64-x86_64-winpthreads-git [#####################] 100%
  186. (16/90) 正在安装 mingw-w64-x86_64-gcc [#####################] 100%
  187. (17/90) 正在安装 mingw-w64-x86_64-uasm [#####################] 100%
  188. (18/90) 正在安装 mingw-w64-x86_64-libunwind [#####################] 100%
  189. (19/90) 正在安装 mingw-w64-x86_64-glog [#####################] 100%
  190. (20/90) 正在安装 mingw-w64-x86_64-gcc-libgfortran [#####################] 100%
  191. (21/90) 正在安装 mingw-w64-x86_64-openblas [#####################] 100%
  192. Set the environment variable OPENBLAS_NUM_THREADS to the
  193. number of threads to use.
  194. (22/90) 正在安装 mingw-w64-x86_64-metis [#####################] 100%
  195. (23/90) 正在安装 mingw-w64-x86_64-suitesparse [#####################] 100%
  196. (24/90) 正在安装 mingw-w64-x86_64-ceres-solver [#####################] 100%
  197. (25/90) 正在安装 mingw-w64-x86_64-intel-tbb [#####################] 100%
  198. (26/90) 正在安装 mingw-w64-x86_64-freeglut [#####################] 100%
  199. (27/90) 正在安装 mingw-w64-x86_64-libjpeg-turbo [#####################] 100%
  200. (28/90) 正在安装 mingw-w64-x86_64-jasper [#####################] 100%
  201. (29/90) 正在安装 mingw-w64-x86_64-bzip2 [#####################] 100%
  202. (30/90) 正在安装 mingw-w64-x86_64-expat [#####################] 100%
  203. (31/90) 正在安装 mingw-w64-x86_64-gettext [#####################] 100%
  204. (32/90) 正在安装 mingw-w64-x86_64-wineditline [#####################] 100%
  205. (33/90) 正在安装 mingw-w64-x86_64-pcre [#####################] 100%
  206. (34/90) 正在安装 mingw-w64-x86_64-libffi [#####################] 100%
  207. (35/90) 正在安装 mingw-w64-x86_64-mpdecimal [#####################] 100%
  208. (36/90) 正在安装 mingw-w64-x86_64-libtre-git [#####################] 100%
  209. (37/90) 正在安装 mingw-w64-x86_64-libsystre [#####################] 100%
  210. (38/90) 正在安装 mingw-w64-x86_64-ncurses [#####################] 100%
  211. (39/90) 正在安装 mingw-w64-x86_64-libtasn1 [#####################] 100%
  212. (40/90) 正在安装 mingw-w64-x86_64-p11-kit [#####################] 100%
  213. (41/90) 正在安装 mingw-w64-x86_64-ca-certificates [#####################] 100%
  214. (42/90) 正在安装 mingw-w64-x86_64-openssl [#####################] 100%
  215. (43/90) 正在安装 mingw-w64-x86_64-termcap [#####################] 100%
  216. (44/90) 正在安装 mingw-w64-x86_64-readline [#####################] 100%
  217. (45/90) 正在安装 mingw-w64-x86_64-tcl [#####################] 100%
  218. (46/90) 正在安装 mingw-w64-x86_64-sqlite3 [#####################] 100%
  219. (47/90) 正在安装 mingw-w64-x86_64-tk [#####################] 100%
  220. (48/90) 正在安装 mingw-w64-x86_64-xz [#####################] 100%
  221. (49/90) 正在安装 mingw-w64-x86_64-python [#####################] 100%
  222. (50/90) 正在安装 mingw-w64-x86_64-glib2 [#####################] 100%
  223. No schema files found: doing nothing.
  224. /
  225. (51/90) 正在安装 mingw-w64-x86_64-graphite2 [#####################] 100%
  226. (52/90) 正在安装 mingw-w64-x86_64-harfbuzz [#####################] 100%
  227. mingw-w64-x86_64-harfbuzz 的可选依赖
  228. mingw-w64-x86_64-icu: harfbuzz-icu support [等待中]
  229. mingw-w64-x86_64-cairo: hb-view program [等待中]
  230. (53/90) 正在安装 mingw-w64-x86_64-libpng [#####################] 100%
  231. (54/90) 正在安装 mingw-w64-x86_64-freetype [#####################] 100%
  232. (55/90) 正在安装 mingw-w64-x86_64-szip [#####################] 100%
  233. (56/90) 正在安装 mingw-w64-x86_64-hdf5 [#####################] 100%
  234. (57/90) 正在安装 mingw-w64-x86_64-zstd [#####################] 100%
  235. (58/90) 正在安装 mingw-w64-x86_64-libtiff [#####################] 100%
  236. (59/90) 正在安装 mingw-w64-x86_64-giflib [#####################] 100%
  237. (60/90) 正在安装 mingw-w64-x86_64-libwebp [#####################] 100%
  238. (61/90) 正在安装 mingw-w64-x86_64-icu [#####################] 100%
  239. (62/90) 正在安装 mingw-w64-x86_64-boost [#####################] 100%
  240. (63/90) 正在安装 mingw-w64-x86_64-cppunit [#####################] 100%
  241. (64/90) 正在安装 mingw-w64-x86_64-jxrlib [#####################] 100%
  242. (65/90) 正在安装 mingw-w64-x86_64-lcms2 [#####################] 100%
  243. (66/90) 正在安装 mingw-w64-x86_64-libraw [#####################] 100%
  244. (67/90) 正在安装 mingw-w64-x86_64-openjpeg2 [#####################] 100%
  245. (68/90) 正在安装 mingw-w64-x86_64-ilmbase [#####################] 100%
  246. (69/90) 正在安装 mingw-w64-x86_64-openexr [#####################] 100%
  247. (70/90) 正在安装 mingw-w64-x86_64-freeimage [#####################] 100%
  248. (71/90) 正在安装 mingw-w64-x86_64-glsl-optimiz... [#####################] 100%
  249. (72/90) 正在安装 mingw-w64-x86_64-hlsl2glsl-git [#####################] 100%
  250. (73/90) 正在安装 mingw-w64-x86_64-vulkan-headers [#####################] 100%
  251. (74/90) 正在安装 mingw-w64-x86_64-vulkan-loader [#####################] 100%
  252. (75/90) 正在安装 mingw-w64-x86_64-SDL2 [#####################] 100%
  253. (76/90) 正在安装 mingw-w64-x86_64-tinyxml [#####################] 100%
  254. (77/90) 正在安装 mingw-w64-x86_64-zziplib [#####################] 100%
  255. mingw-w64-x86_64-zziplib 的可选依赖
  256. mingw-w64-x86_64-SDL: SDL_rwops for ZZipLib
  257. (78/90) 正在安装 mingw-w64-x86_64-ogre3d [#####################] 100%
  258. (79/90) 正在安装 mingw-w64-x86_64-protobuf [#####################] 100%
  259. (80/90) 正在安装 mingw-w64-x86_64-fontconfig [#####################] 100%
  260. Fontconfig configuration is done via /mingw64/etc/fonts/conf.avail and conf.d.
  261. Read /mingw64/etc/fonts/conf.d/README for more information.
  262. updating font cache... done.
  263. (81/90) 正在安装 mingw-w64-x86_64-lzo2 [#####################] 100%
  264. (82/90) 正在安装 mingw-w64-x86_64-pixman [#####################] 100%
  265. (83/90) 正在安装 mingw-w64-x86_64-cairo [#####################] 100%
  266. mingw-w64-x86_64-cairo 的可选依赖
  267. mingw-w64-x86_64-glib2: libcairo-gobject [已安装]
  268. (84/90) 正在安装 mingw-w64-x86_64-leptonica [#####################] 100%
  269. (85/90) 正在安装 mingw-w64-x86_64-fribidi [#####################] 100%
  270. (86/90) 正在安装 mingw-w64-x86_64-libdatrie [#####################] 100%
  271. (87/90) 正在安装 mingw-w64-x86_64-libthai [#####################] 100%
  272. (88/90) 正在安装 mingw-w64-x86_64-pango [#####################] 100%
  273. (89/90) 正在安装 mingw-w64-x86_64-tesseract-ocr [#####################] 100%
  274. (90/90) 正在安装 mingw-w64-x86_64-opencv [#####################] 100%
  275. mingw-w64-x86_64-opencv 的可选依赖
  276. mingw-w64-x86_64-ffmpeg: support to read and write video files
  277. mingw-w64-x86_64-python3-numpy: Python 3.x interface

补充一个安装 pacman -S mingw-w64-x86_64-pkg-config

  1. pacman -S mingw-w64-x86_64-pkg-config
  2. 警告:mingw-w64-x86_64-pkg-config-0.29.2-1 已经为最新 -- 重新安装
  3. 正在解析依赖关系...
  4. 正在查找软件包冲突...
  5. 软件包 (1) mingw-w64-x86_64-pkg-config-0.29.2-1
  6. 全部安装大小: 1.31 MiB
  7. 净更新大小: 0.00 MiB
  8. :: 进行安装吗? [Y/n] y
  9. (1/1) 正在检查密钥环里的密钥 [#####################] 100%
  10. (1/1) 正在检查软件包完整性 [#####################] 100%
  11. (1/1) 正在加载软件包文件 [#####################] 100%
  12. (1/1) 正在检查文件冲突 [#####################] 100%
  13. (1/1) 正在检查可用存储空间 [#####################] 100%
  14. :: 正在处理软件包的变化...
  15. (1/1) 正在重新安装 mingw-w64-x86_64-pkg-config [#####################] 100%

注意!打开中间的64bit窗口输入pkg-config才好用!!

PC@LIF MINGW64 ~
$ pkg-config --cflags opencv4
-ID:/msys64/mingw64/include/opencv4/opencv -ID:/msys64/mingw64/include/opencv4

然而还是不行啊!

  1. 》更改路径的操作 MINGW64 /home
  2. $ cd "/D/demo/darknetopencv"
  3. 》尝试make MINGW64 /D/demo/darknetopencv
  4. $ make -j
  5. g++ -Iinclude/ -Isrc/ -DOPENCV `pkg-config --cflags opencv` -Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -fPIC -Ofast -DOPENCV -c ./src/image_opencv.cpp -o obj/image_opencv.o
  6. Package opencv was not found in the pkg-config search path.
  7. Perhaps you should add the directory containing `opencv.pc'
  8. to the PKG_CONFIG_PATH environment variable
  9. No package 'opencv' found
  10. ./src/image_opencv.cpp:5:10: fatal error: opencv2/opencv.hpp: No such file or directory
  11. 5 | #include "opencv2/opencv.hpp"
  12. | ^~~~~~~~~~~~~~~~~~~~
  13. compilation terminated.
  14. make: *** [Makefile:86:obj/image_opencv.o] 错误 1
  15. 》看看有没有包 MINGW64 /D/demo/darknetopencv
  16. $ pkg-config --cflags --libs opencv
  17. Package opencv was not found in the pkg-config search path.
  18. Perhaps you should add the directory containing `opencv.pc'
  19. to the PKG_CONFIG_PATH environment variable
  20. No package 'opencv' found
  21. 》原来这个坏东西后面有个4 MINGW64 ~
  22. $ pkg-config --cflags --libs opencv4
  23. -ID:/msys64/mingw64/include/opencv4/opencv -ID:/msys64/mingw64/include/opencv4 -LD:/msys64/mingw64/lib -lopencv_gapi -lopencv_stitching -lopencv_aruco -lopencv_bgsegm -lopencv_ccalib -lopencv_dnn_objdetect -lopencv_dnn_superres -lopencv_dpm -lopencv_highgui -lopencv_face -lopencv_fuzzy -lopencv_hdf -lopencv_hfs -lopencv_img_hash -lopencv_line_descriptor -lopencv_ovis -lopencv_quality -lopencv_reg -lopencv_rgbd -lopencv_saliency -lopencv_sfm -lopencv_stereo -lopencv_structured_light -lopencv_phase_unwrapping -lopencv_superres -lopencv_optflow -lopencv_surface_matching -lopencv_tracking -lopencv_datasets -lopencv_text -lopencv_dnn -lopencv_plot -lopencv_videostab -lopencv_videoio -lopencv_xfeatures2d -lopencv_shape -lopencv_ml -lopencv_ximgproc -lopencv_video -lopencv_xobjdetect -lopencv_objdetect -lopencv_calib3d -lopencv_imgcodecs -lopencv_features2d -lopencv_flann -lopencv_xphoto -lopencv_photo -lopencv_imgproc -lopencv_core

注意:opencv2/opencv.hpp 实际路径是 opencv4/opencv2/opencv.hpp,需要添加头文件路径,或者复制出来。不然编译会报找不到头文件。

简单粗暴的办法是直接找到opencv4.pc然后copy一下重命名为opencv.pc,该目录应该在msys64\mingw64\lib\pkgconfig

  1. 》新问题 MINGW64 /D/demo/darknetopencv
  2. $ make -j
  3. g++ -Iinclude/ -Isrc/ -DOPENCV `pkg-config --cflags opencv` -Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -fPIC -Ofast -DOPENCV -c ./src/image_opencv.cpp -o obj/image_opencv.o
  4. ./src/image_opencv.cpp:12:1: error: 'IplImage' does not name a type
  5. 12 | IplImage *image_to_ipl(image im)
  6. | ^~~~~~~~
  7. compilation terminated due to -Wfatal-errors. 》编译出现致命错误而终止。
  8. make: *** [Makefile:86:obj/image_opencv.o] 错误 1

我想应该是版本问题 opencv4的原因,好巧不巧github不能访问了,今日歇工。

不能因为github歇了就逃避,看了一下其他人安装成功的例子,说明opencv的最新版本是4,但是darknet仅仅支持到2.

果然github上有人碰到过这个问题,并进行了修复。Fix compilation with latest OpenCV by tiagoshibata · Pull Request #1348 · pjreddie/darknet · GitHub

Fix compilation with latest OpenCV by tiagoshibata · Pull Request #1348 · pjreddie/darknet · GitHub

以下是修复的版本

  1. #ifdef OPENCV
  2. #include "stdio.h"
  3. #include "stdlib.h"
  4. #include "opencv2/opencv.hpp"
  5. #include "opencv2/imgproc/imgproc_c.h"
  6. #include "image.h"
  7. using namespace cv;
  8. extern "C" {
  9. Mat image_to_mat(image im)
  10. {
  11. assert(im.c == 3 || im.c == 1);
  12. int x,y,c;
  13. image copy = copy_image(im);
  14. constrain_image(copy);
  15. if(im.c == 3) rgbgr_image(copy);
  16. unsigned char *data = (unsigned char *)malloc(im.w * im.h * im.c);
  17. for(y = 0; y < im.h; ++y){
  18. for(x = 0; x < im.w; ++x){
  19. for(c= 0; c < im.c; ++c){
  20. float val = copy.data[c*im.h*im.w + y*im.w + x];
  21. data[y*im.w*im.c + x*im.c + c] = (unsigned char)(val*255);
  22. }
  23. }
  24. }
  25. Mat m(im.h, im.w, CV_MAKETYPE(CV_8U, im.c), data);
  26. free_image(copy);
  27. free(data);
  28. return m;
  29. }
  30. image mat_to_image(Mat m)
  31. {
  32. int h = m.rows;
  33. int w = m.cols;
  34. int c = m.channels();
  35. image im = make_image(w, h, c);
  36. unsigned char *data = (unsigned char*)m.data;
  37. int step = m.step;
  38. int i, j, k;
  39. for(i = 0; i < h; ++i){
  40. for(k= 0; k < c; ++k){
  41. for(j = 0; j < w; ++j){
  42. im.data[k*w*h + i*w + j] = data[i*step + j*c + k]/255.;
  43. }
  44. }
  45. }
  46. rgbgr_image(im);
  47. return im;
  48. }
  49. void *open_video_stream(const char *f, int c, int w, int h, int fps)
  50. {
  51. VideoCapture *cap;
  52. if(f) cap = new VideoCapture(f);
  53. else cap = new VideoCapture(c);
  54. if(!cap->isOpened()) return 0;
  55. if(w) cap->set(CAP_PROP_FRAME_WIDTH, w);
  56. if(h) cap->set(CAP_PROP_FRAME_HEIGHT, w);
  57. if(fps) cap->set(CAP_PROP_FPS, w);
  58. return (void *) cap;
  59. }
  60. image get_image_from_stream(void *p)
  61. {
  62. VideoCapture *cap = (VideoCapture *)p;
  63. Mat m;
  64. *cap >> m;
  65. if(m.empty()) return make_empty_image(0,0,0);
  66. return mat_to_image(m);
  67. }
  68. image load_image_cv(char *filename, int channels)
  69. {
  70. int flag = -1;
  71. if (channels == 0) flag = -1;
  72. else if (channels == 1) flag = 0;
  73. else if (channels == 3) flag = 1;
  74. else {
  75. fprintf(stderr, "OpenCV can't force load with %d channels\n", channels);
  76. }
  77. Mat m;
  78. m = imread(filename, flag);
  79. if(!m.data){
  80. fprintf(stderr, "Cannot load image \"%s\"\n", filename);
  81. char buff[256];
  82. sprintf(buff, "echo %s >> bad.list", filename);
  83. system(buff);
  84. return make_image(10,10,3);
  85. //exit(0);
  86. }
  87. image im = mat_to_image(m);
  88. return im;
  89. }
  90. int show_image_cv(image im, const char* name, int ms)
  91. {
  92. Mat m = image_to_mat(im);
  93. imshow(name, m);
  94. int c = waitKey(ms);
  95. if (c != -1) c = c%256;
  96. return c;
  97. }
  98. void make_window(char *name, int w, int h, int fullscreen)
  99. {
  100. namedWindow(name, WINDOW_NORMAL);
  101. if (fullscreen) {
  102. setWindowProperty(name, WND_PROP_FULLSCREEN, WINDOW_FULLSCREEN);
  103. } else {
  104. resizeWindow(name, w, h);
  105. if(strcmp(name, "Demo") == 0) moveWindow(name, 0, 0);
  106. }
  107. }
  108. }
  109. #endif

但是事情并没有结束,新问题出现了

  1. include/darknet.h:780:11: error: unknown type name 'clock_t'; did you mean 'clockid_t'?
  2. 780 | float sec(clock_t clocks);
  3. | ^~~~~~~
  4. | clockid_t

CLOCK_REALTIME not available in OSX, use clock_get_time · pjreddie/darknet@63268da · GitHub

在darknet.h增加#include <time.h>

再次编译:

  1. ./examples/go.c:786:5: error: unknown type name 'fd_set'
  2. 786 | fd_set readfds;
  3. | ^~~~~~
  4. compilation terminated due to -Wfatal-errors.
  5. make: *** [Makefile:89:obj/go.o] 错误 1

Compilation Error : "unknown type name 'fd_set' · Issue #318 · pjreddie/darknet · GitHub

exemples / go.c文件中缺少此导入:
#include <sys/select.h>

  1. ./examples/go.c:6:10: fatal error: sys/select.h: No such file or directory
  2. 6 | #include <sys/select.h>
  3. | ^~~~~~~~~~~~~~
  4. compilation terminated.

尝试Windows等价于sys / select.h
#include < winsock2.h >

  1. more undefined references to `timersub' follow
  2. collect2.exe: error: ld returned 1 exit status

不可行,参考了一下Yolo+Windows 配置(详细版) - 2师兄不会胖 - 博客园的 f 解决方法。但是会有警告。

  1. warning: assignment to 'struct timeval *' from 'long long int' makes pointer from integer without a cast [-Wint-conversion]
  2. 28 | res = a - b;

更为规范的方法可以参考关于 struct timeval - Chinaunix - Powered by Discuz!

根据timeval的结构定义:

struct timeval {
        long    tv_sec;         /* seconds */
        long    tv_usec;        /* and microseconds */
};
应当为

res->tv_sec = a->tv_sec - b->tv_sec;

一开始我是添加在了include下的darknet.h里面,这样在连接时会有错误:multiple definition of `timersub'

  1. D:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: obj/demo.o:demo.c:(.text+0x100): multiple definition of `timersub'; obj/gemm.o:gemm.c:(.text+0x0): first defined here

 实在想不通就翻time相关系统文件,每一个都去查找了一下,发现msys64\mingw64\x86_64-w64-mingw32\include\_timeval.h文件中有对timeval的定义,但并不包括add和sub,于是添加以下定义。

  1. #define timeradd(tvp, uvp, vvp) \
  2. do { \
  3. (vvp)->tv_sec = (tvp)->tv_sec + (uvp)->tv_sec; \
  4. (vvp)->tv_usec = (tvp)->tv_usec + (uvp)->tv_usec; \
  5. if ((vvp)->tv_usec >= 1000000) { \
  6. (vvp)->tv_sec++; \
  7. (vvp)->tv_usec -= 1000000; \
  8. } \
  9. } while (0)
  10. #define timersub(tvp, uvp, vvp) \
  11. do { \
  12. (vvp)->tv_sec = (tvp)->tv_sec - (uvp)->tv_sec; \
  13. (vvp)->tv_usec = (tvp)->tv_usec - (uvp)->tv_usec; \
  14. if ((vvp)->tv_usec < 0) { \
  15. (vvp)->tv_sec--; \
  16. (vvp)->tv_usec += 1000000; \
  17. } \
  18. } while (0)

编译成功了,但是在win命令行中运行会有错误,这是因为编译出来的可执行文件,要依赖 MSYS2 提供的动态链接库。(详见MSYS2 在 windows 上的开发环境_乐吧的博客-CSDN博客_msys2 printf

MSYS2 有三个执行脚本,分别是 msys2_shell.bat、mingw32_shell.bat 和 mingw64_shell.bat

区别就是对环境变量 PATH 的不同设置,mingw32_shell.bat 优先使用 msys64/mingw32 下的工具,mingw64_shell.bat 优先使用 msys64/mingw64 下的工具,而 msys2_shell.bat 两个都不使用,只用自身 msys 的工具(依赖 msys2xxx.dll)。所以要添加路径。

找到了路径后,添加一下环境变量后再次尝试执行

解决办法:DLL中无法定位程序输入点inflateReset2于动态链接库_wb175208的专栏-CSDN博客_无法定位程序输入点inflatereset2

不过运行完程序后还是应该对系统文件复原。

运行!测试一下视频,找到了一个免费的课程,蛮有帮助的:

YOLO、SSD实战:手把手教你做目标检测-2-Darknet安装与测试-马孔伟的在线视频教程-CSDN程序员研修院

根据提供的命令测试一个本地视频:

结果如下:

找的是一个有鸟有人的视频,可能因为鸟在飞就容易检测不到,效果卡成ppt,fps:1(可能是硬件问题,毕竟在折磨cpu)

  1. D:\demo\darknet0205>.\darknet detector demo cfg/coco.data cfg/yolov3-tiny.cfg yolov3-tiny.weights data/demo.flv
  2. Demo
  3. layer filters size input output
  4. 0 conv 16 3 x 3 / 1 416 x 416 x 3 -> 416 x 416 x 16 0.150 BFLOPs
  5. 1 max 2 x 2 / 2 416 x 416 x 16 -> 208 x 208 x 16
  6. 2 conv 32 3 x 3 / 1 208 x 208 x 16 -> 208 x 208 x 32 0.399 BFLOPs
  7. 3 max 2 x 2 / 2 208 x 208 x 32 -> 104 x 104 x 32
  8. 4 conv 64 3 x 3 / 1 104 x 104 x 32 -> 104 x 104 x 64 0.399 BFLOPs
  9. 5 max 2 x 2 / 2 104 x 104 x 64 -> 52 x 52 x 64
  10. 6 conv 128 3 x 3 / 1 52 x 52 x 64 -> 52 x 52 x 128 0.399 BFLOPs
  11. 7 max 2 x 2 / 2 52 x 52 x 128 -> 26 x 26 x 128
  12. 8 conv 256 3 x 3 / 1 26 x 26 x 128 -> 26 x 26 x 256 0.399 BFLOPs
  13. 9 max 2 x 2 / 2 26 x 26 x 256 -> 13 x 13 x 256
  14. 10 conv 512 3 x 3 / 1 13 x 13 x 256 -> 13 x 13 x 512 0.399 BFLOPs
  15. 11 max 2 x 2 / 1 13 x 13 x 512 -> 13 x 13 x 512
  16. 12 conv 1024 3 x 3 / 1 13 x 13 x 512 -> 13 x 13 x1024 1.595 BFLOPs
  17. 13 conv 256 1 x 1 / 1 13 x 13 x1024 -> 13 x 13 x 256 0.089 BFLOPs
  18. 14 conv 512 3 x 3 / 1 13 x 13 x 256 -> 13 x 13 x 512 0.399 BFLOPs
  19. 15 conv 255 1 x 1 / 1 13 x 13 x 512 -> 13 x 13 x 255 0.044 BFLOPs
  20. 16 yolo
  21. 17 route 13
  22. 18 conv 128 1 x 1 / 1 13 x 13 x 256 -> 13 x 13 x 128 0.011 BFLOPs
  23. 19 upsample 2x 13 x 13 x 128 -> 26 x 26 x 128
  24. 20 route 19 8
  25. 21 conv 256 3 x 3 / 1 26 x 26 x 384 -> 26 x 26 x 256 1.196 BFLOPs
  26. 22 conv 255 1 x 1 / 1 26 x 26 x 256 -> 26 x 26 x 255 0.088 BFLOPs
  27. 23 yolo
  28. Loading weights from yolov3-tiny.weights...Done!
  29. video file: data/demo.flv
  30. [2J[1;1H
  31. FPS:162.0
  32. Objects:
  33. [2J[1;1H
  34. FPS:1.1
  35. Objects:
  36. [2J[1;1H
  37. FPS:1.2
  38. Objects:
  39. person: 82%
  40. [2J[1;1H
  41. FPS:1.2
  42. Objects:
  43. person: 83%
  44. [2J[1;1H
  45. FPS:1.2
  46. Objects:
  47. person: 89%
  48. bird: 69%
  49. person: 52%
  50. [2J[1;1H
  51. FPS:1.2
  52. Objects:
  53. person: 92%
  54. bird: 68%
  55. [2J[1;1H
  56. FPS:1.0
  57. Objects:
  58. person: 92%
  59. bird: 59%
  60. [2J[1;1H
  61. FPS:1.1
  62. Objects:
  63. person: 90%
  64. person: 51%
  65. [2J[1;1H
  66. FPS:1.2
  67. Objects:
  68. person: 91%
  69. person: 54%
  70. [2J[1;1H
  71. FPS:1.1
  72. Objects:
  73. person: 90%
  74. person: 56%
  75. [2J[1;1H
  76. FPS:1.2
  77. Objects:
  78. person: 91%
  79. person: 58%
  80. bird: 52%
  81. [2J[1;1H
  82. FPS:1.1
  83. Objects:

测试视频的命令:

.\darknet detector demo cfg/coco.data cfg/yolov3-tiny.cfg yolov3-tiny.weights data/demo.flv

在调试过程中看到的可能会有用的问题解决方案,备忘一下:

文件名这个修改不错

detect: generate output file name based on input file name by andreikop · Pull Request #991 · pjreddie/darknet · GitHub

关于videoio视频 Fixed OpenCV Compilation Errors by eweill · Pull Request #38 · pjreddie/darknet · GitHub

☛ 1 crazy trick to get vanilla YOLO working natively on Windows x86_64. Go users hate it. · Issue #721 · pjreddie/darknet · GitHub

卸载msys2

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Guff_9hys/article/detail/926700
推荐阅读
相关标签
  

闽ICP备14008679号