当前位置:   article > 正文

yolov3 + CCTSDB (交通标志识别)——使用yolov3原始网络结构训练数据集_实验中使用的数据集是cctsdb流量数据集,包含3766个训练数据集工作者和1507个验证

实验中使用的数据集是cctsdb流量数据集,包含3766个训练数据集工作者和1507个验证

darknet框架的下载及配置本文不再叙述。

CCTSDB:CSUST Chinese Traffic Sign Detection Benchmark 中国交通数据集由长沙理工大学综合交通运输大数据智能处理湖南省重点实验室张建明老师团队制作完成。来源于 A Real-Time Chinese Traffic Sign Detection Algorithm Based on Modified YOLOv2一文提出的训练数据集。

论文地址:https://doi.org/10.3390/a10040127

Github:https://github.com/csust7zhangjm/CCTSDB,说明文档中有百度网盘的链接

数据集已经进行了标注,标注文件以txt文件形式保存,如下:

  1. 00000.png;527;377;555;404;warning
  2. 00001.png;738;279;815;414;prohibitory
  3. 00002.png;532;426;640;523;warning
  4. 00002.png;535;335;636;427;warning
  5. 00003.png;1175;134;1210;166;warning
  6. 00004.png;997;212;1030;244;mandatory
  7. 00005.png;276;236;311;268;mandatory
  8. 00005.png;915;217;947;248;prohibitory
  9. 00006.png;129;373;185;425;mandatory
  10. 00007.png;402;138;437;173;mandatory
  11. 00008.png;415;297;471;370;prohibitory
  12. 00009.png;343;240;375;271;mandatory
  13. 00009.png;936;220;965;249;prohibitory

数据集数据分为三类:warning,prohibitory,mandatory

标注文件中的四个整数数值表示标注框的长宽和中心点的坐标

数据图像如下:

 训练的准备过程:

为了方便,在darknet目录下创建CCTSDB目录,在CCTSDB目录下创建CCTSDB.data文件,文件内容如下:

  1. classes=3
  2. train=/home/btboay/桌面/yolov3-CCTSDB/darknet/CCTSDB/train.txt
  3. names=/home/btboay/桌面/yolov3-CCTSDB/darknet/CCTSDB/CCTSDB.names
  4. backup=/home/btboay/桌面/yolov3-CCTSDB/darknet/CCTSDB

classes代表类别数量

train后面跟一个文本文档的路径,该文档内容为训练数据的地址:

  1. /home/btboay/桌面/yolov3-CCTSDB/CCTSDB/Images/00000~00999/00000.png
  2. /home/btboay/桌面/yolov3-CCTSDB/CCTSDB/Images/00000~00999/00001.png
  3. /home/btboay/桌面/yolov3-CCTSDB/CCTSDB/Images/00000~00999/00002.png
  4. /home/btboay/桌面/yolov3-CCTSDB/CCTSDB/Images/00000~00999/00003.png
  5. /home/btboay/桌面/yolov3-CCTSDB/CCTSDB/Images/00000~00999/00004.png
  6. /home/btboay/桌面/yolov3-CCTSDB/CCTSDB/Images/00000~00999/00005.png
  7. /home/btboay/桌面/yolov3-CCTSDB/CCTSDB/Images/00000~00999/00006.png
  8. /home/btboay/桌面/yolov3-CCTSDB/CCTSDB/Images/00000~00999/00007.png
  9. /home/btboay/桌面/yolov3-CCTSDB/CCTSDB/Images/00000~00999/00008.png
  10. /home/btboay/桌面/yolov3-CCTSDB/CCTSDB/Images/00000~00999/00009.png

names后面跟一个文本文档的路径,该文档存放类别标签:

  1. warning
  2. prohibitory
  3. mandatory

backup后跟一个目录地址,训练后的权重文件会保存到该目录下

每一个图像数据对应一个标注数据文件,这个文件是纯文本文档,内容如下:

0 527 377 555 404

第一个数字是类别编号,与上面的names文件中的类别标签顺序是相对应的,后面及标注框的大小和中心坐标,该数据最好归一化到0~1之间,收敛过程更快速,且不易引入误差。归一化可以使用原图像的大小进行缩放。

该文件与图像数据文件放在同一目录下

更改网络配置文件(yolov3.cfg):yolov3有三个yolo层,每个yolo层更改classes的值(类别数量),以及每个yolo层上面的一个卷积层的filters参数的值为(类别数量+5)*3,3种标签,filters改为24

下载预训练权重darknet53.conv.74,我们在该权重下进行训练

 

训练过程:

在darknet目录下打开终端输入:./darknet  detector  train  ./CCTSDB/CCTSDB.data  ./CCTSDB/yolov3.cfg  ./CCTSDB/darknet53.conv.74

后三个参数分别是你的data文件目录,网络配置文件目录,预训练权重目录

敲下回车开始训练,每100轮自动保存一次权重文件到backup目录下,最新的训练结果是.backup文件

当看到平均误差不再变化时,就可以停止训练了,我训练到平均误差在0.3左右停止的训练,这并不是最优的训练结果,但是因为我的显卡显存太小不支持,所以使用的云GPU主机进行的训练,5块钱一个小时,太贵了,训练了5个小时就停止了。

 

测试过程:

修改darknet/examples/darknet.c其中主函数,

  1. else if (0 == strcmp(argv[1], "detect")){
  2. float thresh = find_float_arg(argc, argv, "-thresh", .5);
  3. char *filename = (argc > 4) ? argv[4]: 0;
  4. char *outfile = find_char_arg(argc, argv, "-out", 0);
  5. int fullscreen = find_arg(argc, argv, "-fullscreen");
  6. test_detector("/home/btboay/桌面/yolov3-CCTSDB/darknet/CCTSDB/CCTSDB.data", argv[2], argv[3], filename, thresh, .5, outfile, fullscreen);

将test_detector函数中前面的字符串改为你的.data文件目录

在darknet目录下,打开终端输入./darknet  detect  ./CCTSDB/yolov3.cfg  ./CCTSDB/yolov3.backup

后两个参数分别是网络配置文件地址和权重文件地址,点击回车,如下:

  1. layer filters size input output
  2. 0 conv 32 3 x 3 / 1 608 x 608 x 3 -> 608 x 608 x 32 0.639 BFLOPs
  3. 1 conv 64 3 x 3 / 2 608 x 608 x 32 -> 304 x 304 x 64 3.407 BFLOPs
  4. 2 conv 32 1 x 1 / 1 304 x 304 x 64 -> 304 x 304 x 32 0.379 BFLOPs
  5. 3 conv 64 3 x 3 / 1 304 x 304 x 32 -> 304 x 304 x 64 3.407 BFLOPs
  6. 4 res 1 304 x 304 x 64 -> 304 x 304 x 64
  7. 5 conv 128 3 x 3 / 2 304 x 304 x 64 -> 152 x 152 x 128 3.407 BFLOPs
  8. 6 conv 64 1 x 1 / 1 152 x 152 x 128 -> 152 x 152 x 64 0.379 BFLOPs
  9. 7 conv 128 3 x 3 / 1 152 x 152 x 64 -> 152 x 152 x 128 3.407 BFLOPs
  10. 8 res 5 152 x 152 x 128 -> 152 x 152 x 128
  11. 9 conv 64 1 x 1 / 1 152 x 152 x 128 -> 152 x 152 x 64 0.379 BFLOPs
  12. 10 conv 128 3 x 3 / 1 152 x 152 x 64 -> 152 x 152 x 128 3.407 BFLOPs
  13. 11 res 8 152 x 152 x 128 -> 152 x 152 x 128
  14. 12 conv 256 3 x 3 / 2 152 x 152 x 128 -> 76 x 76 x 256 3.407 BFLOPs
  15. 13 conv 128 1 x 1 / 1 76 x 76 x 256 -> 76 x 76 x 128 0.379 BFLOPs
  16. 14 conv 256 3 x 3 / 1 76 x 76 x 128 -> 76 x 76 x 256 3.407 BFLOPs
  17. 15 res 12 76 x 76 x 256 -> 76 x 76 x 256
  18. 16 conv 128 1 x 1 / 1 76 x 76 x 256 -> 76 x 76 x 128 0.379 BFLOPs
  19. 17 conv 256 3 x 3 / 1 76 x 76 x 128 -> 76 x 76 x 256 3.407 BFLOPs
  20. 18 res 15 76 x 76 x 256 -> 76 x 76 x 256
  21. 19 conv 128 1 x 1 / 1 76 x 76 x 256 -> 76 x 76 x 128 0.379 BFLOPs
  22. 20 conv 256 3 x 3 / 1 76 x 76 x 128 -> 76 x 76 x 256 3.407 BFLOPs
  23. 21 res 18 76 x 76 x 256 -> 76 x 76 x 256
  24. 22 conv 128 1 x 1 / 1 76 x 76 x 256 -> 76 x 76 x 128 0.379 BFLOPs
  25. 23 conv 256 3 x 3 / 1 76 x 76 x 128 -> 76 x 76 x 256 3.407 BFLOPs
  26. 24 res 21 76 x 76 x 256 -> 76 x 76 x 256
  27. 25 conv 128 1 x 1 / 1 76 x 76 x 256 -> 76 x 76 x 128 0.379 BFLOPs
  28. 26 conv 256 3 x 3 / 1 76 x 76 x 128 -> 76 x 76 x 256 3.407 BFLOPs
  29. 27 res 24 76 x 76 x 256 -> 76 x 76 x 256
  30. 28 conv 128 1 x 1 / 1 76 x 76 x 256 -> 76 x 76 x 128 0.379 BFLOPs
  31. 29 conv 256 3 x 3 / 1 76 x 76 x 128 -> 76 x 76 x 256 3.407 BFLOPs
  32. 30 res 27 76 x 76 x 256 -> 76 x 76 x 256
  33. 31 conv 128 1 x 1 / 1 76 x 76 x 256 -> 76 x 76 x 128 0.379 BFLOPs
  34. 32 conv 256 3 x 3 / 1 76 x 76 x 128 -> 76 x 76 x 256 3.407 BFLOPs
  35. 33 res 30 76 x 76 x 256 -> 76 x 76 x 256
  36. 34 conv 128 1 x 1 / 1 76 x 76 x 256 -> 76 x 76 x 128 0.379 BFLOPs
  37. 35 conv 256 3 x 3 / 1 76 x 76 x 128 -> 76 x 76 x 256 3.407 BFLOPs
  38. 36 res 33 76 x 76 x 256 -> 76 x 76 x 256
  39. 37 conv 512 3 x 3 / 2 76 x 76 x 256 -> 38 x 38 x 512 3.407 BFLOPs
  40. 38 conv 256 1 x 1 / 1 38 x 38 x 512 -> 38 x 38 x 256 0.379 BFLOPs
  41. 39 conv 512 3 x 3 / 1 38 x 38 x 256 -> 38 x 38 x 512 3.407 BFLOPs
  42. 40 res 37 38 x 38 x 512 -> 38 x 38 x 512
  43. 41 conv 256 1 x 1 / 1 38 x 38 x 512 -> 38 x 38 x 256 0.379 BFLOPs
  44. 42 conv 512 3 x 3 / 1 38 x 38 x 256 -> 38 x 38 x 512 3.407 BFLOPs
  45. 43 res 40 38 x 38 x 512 -> 38 x 38 x 512
  46. 44 conv 256 1 x 1 / 1 38 x 38 x 512 -> 38 x 38 x 256 0.379 BFLOPs
  47. 45 conv 512 3 x 3 / 1 38 x 38 x 256 -> 38 x 38 x 512 3.407 BFLOPs
  48. 46 res 43 38 x 38 x 512 -> 38 x 38 x 512
  49. 47 conv 256 1 x 1 / 1 38 x 38 x 512 -> 38 x 38 x 256 0.379 BFLOPs
  50. 48 conv 512 3 x 3 / 1 38 x 38 x 256 -> 38 x 38 x 512 3.407 BFLOPs
  51. 49 res 46 38 x 38 x 512 -> 38 x 38 x 512
  52. 50 conv 256 1 x 1 / 1 38 x 38 x 512 -> 38 x 38 x 256 0.379 BFLOPs
  53. 51 conv 512 3 x 3 / 1 38 x 38 x 256 -> 38 x 38 x 512 3.407 BFLOPs
  54. 52 res 49 38 x 38 x 512 -> 38 x 38 x 512
  55. 53 conv 256 1 x 1 / 1 38 x 38 x 512 -> 38 x 38 x 256 0.379 BFLOPs
  56. 54 conv 512 3 x 3 / 1 38 x 38 x 256 -> 38 x 38 x 512 3.407 BFLOPs
  57. 55 res 52 38 x 38 x 512 -> 38 x 38 x 512
  58. 56 conv 256 1 x 1 / 1 38 x 38 x 512 -> 38 x 38 x 256 0.379 BFLOPs
  59. 57 conv 512 3 x 3 / 1 38 x 38 x 256 -> 38 x 38 x 512 3.407 BFLOPs
  60. 58 res 55 38 x 38 x 512 -> 38 x 38 x 512
  61. 59 conv 256 1 x 1 / 1 38 x 38 x 512 -> 38 x 38 x 256 0.379 BFLOPs
  62. 60 conv 512 3 x 3 / 1 38 x 38 x 256 -> 38 x 38 x 512 3.407 BFLOPs
  63. 61 res 58 38 x 38 x 512 -> 38 x 38 x 512
  64. 62 conv 1024 3 x 3 / 2 38 x 38 x 512 -> 19 x 19 x1024 3.407 BFLOPs
  65. 63 conv 512 1 x 1 / 1 19 x 19 x1024 -> 19 x 19 x 512 0.379 BFLOPs
  66. 64 conv 1024 3 x 3 / 1 19 x 19 x 512 -> 19 x 19 x1024 3.407 BFLOPs
  67. 65 res 62 19 x 19 x1024 -> 19 x 19 x1024
  68. 66 conv 512 1 x 1 / 1 19 x 19 x1024 -> 19 x 19 x 512 0.379 BFLOPs
  69. 67 conv 1024 3 x 3 / 1 19 x 19 x 512 -> 19 x 19 x1024 3.407 BFLOPs
  70. 68 res 65 19 x 19 x1024 -> 19 x 19 x1024
  71. 69 conv 512 1 x 1 / 1 19 x 19 x1024 -> 19 x 19 x 512 0.379 BFLOPs
  72. 70 conv 1024 3 x 3 / 1 19 x 19 x 512 -> 19 x 19 x1024 3.407 BFLOPs
  73. 71 res 68 19 x 19 x1024 -> 19 x 19 x1024
  74. 72 conv 512 1 x 1 / 1 19 x 19 x1024 -> 19 x 19 x 512 0.379 BFLOPs
  75. 73 conv 1024 3 x 3 / 1 19 x 19 x 512 -> 19 x 19 x1024 3.407 BFLOPs
  76. 74 res 71 19 x 19 x1024 -> 19 x 19 x1024
  77. 75 conv 512 1 x 1 / 1 19 x 19 x1024 -> 19 x 19 x 512 0.379 BFLOPs
  78. 76 conv 1024 3 x 3 / 1 19 x 19 x 512 -> 19 x 19 x1024 3.407 BFLOPs
  79. 77 conv 512 1 x 1 / 1 19 x 19 x1024 -> 19 x 19 x 512 0.379 BFLOPs
  80. 78 conv 1024 3 x 3 / 1 19 x 19 x 512 -> 19 x 19 x1024 3.407 BFLOPs
  81. 79 conv 512 1 x 1 / 1 19 x 19 x1024 -> 19 x 19 x 512 0.379 BFLOPs
  82. 80 conv 1024 3 x 3 / 1 19 x 19 x 512 -> 19 x 19 x1024 3.407 BFLOPs
  83. 81 conv 24 1 x 1 / 1 19 x 19 x1024 -> 19 x 19 x 24 0.018 BFLOPs
  84. 82 yolo
  85. 83 route 79
  86. 84 conv 256 1 x 1 / 1 19 x 19 x 512 -> 19 x 19 x 256 0.095 BFLOPs
  87. 85 upsample 2x 19 x 19 x 256 -> 38 x 38 x 256
  88. 86 route 85 61
  89. 87 conv 256 1 x 1 / 1 38 x 38 x 768 -> 38 x 38 x 256 0.568 BFLOPs
  90. 88 conv 512 3 x 3 / 1 38 x 38 x 256 -> 38 x 38 x 512 3.407 BFLOPs
  91. 89 conv 256 1 x 1 / 1 38 x 38 x 512 -> 38 x 38 x 256 0.379 BFLOPs
  92. 90 conv 512 3 x 3 / 1 38 x 38 x 256 -> 38 x 38 x 512 3.407 BFLOPs
  93. 91 conv 256 1 x 1 / 1 38 x 38 x 512 -> 38 x 38 x 256 0.379 BFLOPs
  94. 92 conv 512 3 x 3 / 1 38 x 38 x 256 -> 38 x 38 x 512 3.407 BFLOPs
  95. 93 conv 24 1 x 1 / 1 38 x 38 x 512 -> 38 x 38 x 24 0.035 BFLOPs
  96. 94 yolo
  97. 95 route 91
  98. 96 conv 128 1 x 1 / 1 38 x 38 x 256 -> 38 x 38 x 128 0.095 BFLOPs
  99. 97 upsample 2x 38 x 38 x 128 -> 76 x 76 x 128
  100. 98 route 97 36
  101. 99 conv 128 1 x 1 / 1 76 x 76 x 384 -> 76 x 76 x 128 0.568 BFLOPs
  102. 100 conv 256 3 x 3 / 1 76 x 76 x 128 -> 76 x 76 x 256 3.407 BFLOPs
  103. 101 conv 128 1 x 1 / 1 76 x 76 x 256 -> 76 x 76 x 128 0.379 BFLOPs
  104. 102 conv 256 3 x 3 / 1 76 x 76 x 128 -> 76 x 76 x 256 3.407 BFLOPs
  105. 103 conv 128 1 x 1 / 1 76 x 76 x 256 -> 76 x 76 x 128 0.379 BFLOPs
  106. 104 conv 256 3 x 3 / 1 76 x 76 x 128 -> 76 x 76 x 256 3.407 BFLOPs
  107. 105 conv 24 1 x 1 / 1 76 x 76 x 256 -> 76 x 76 x 24 0.071 BFLOPs
  108. 106 yolo
  109. Loading weights from ./CCTSDB/yolov3.backup...Done!
  110. Enter Image Path:

输入预测图像地址,进行预测。

我的结果如下:

 我的训练权重文件:链接: https://pan.baidu.com/s/1Yt_NhzaNq5X3a3Ho3bqftA  密码: 6ocu

 

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

闽ICP备14008679号