darknet-yolov3训练自己的数据集,并测试训练结果

来源:https://blog.csdn.net/qq_42145185/article/details/105816128


 参考链接:https://www.cnblogs.com/answerThe/p/11481564.html  (参考链接已经讲的很清楚了,这里就不再赘述,下面是完成之后,记录在走参考链接时一部分自己看的笔记)

 

自己的数据集下载链接:https://download.csdn.net/download/qq_42145185/12373126

1.先使用python脚本获取自己脸的图片

结果:

脚本如下:


 
 
  1. # -*- coding: cp936 -*-
  2. """
  3. Author:xxxxxx
  4. Date:2019-09-23
  5. Discription:Read Camaro picture and save
  6. """
  7. import cv2,os,time
  8. import numpy as np
  9. from multiprocessing import Process
  10. import _thread
  11. class CamaroCap(object):
  12. #打开摄像头
  13. def __init__(self):
  14. self.cap = cv2.VideoCapture( 0)
  15. """
  16. self.cap.set(cv2.CAP_PROP_FOURCC, cv2.VideoWriter_fourcc('M', 'J', 'P', 'G'))
  17. self.cap.set(cv2.CAP_PROP_FRAME_WIDTH, 640)
  18. self.cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 480);
  19. """
  20. #图片信息打印
  21. def get_image_info(self,image):
  22. print(type(image))
  23. print(image.shape)
  24. print(image.size)
  25. print(image.dtype)
  26. pixel_data = np.array(image)
  27. print(pixel_data)
  28. #逐帧读取数据并保存图片到本地制定位置
  29. def Camaro_image(self):
  30. i = 0
  31. while( 1):
  32. """
  33. ret:True或者False,代表有没有读取到图片
  34. frame:表示截取到一帧的图片
  35. """
  36. #ret,frame = self.cap.read()
  37. ret,frame = self.cap.read()
  38. #print("打印图片信息")
  39. #self.get_image_info(frame)
  40. # 展示图片
  41. cv2.imshow( 'capture',frame)
  42. #保存图片
  43. cv2.imwrite( r"D:\python_project\\"+ str(i) + ".jpg",frame)
  44. i = i + 1
  45. if cv2.waitKey( 1) & 0xFF == ord( 'q'):
  46. break
  47. if __name__ == '__main__':
  48. outmasages = CamaroCap()
  49. #调用摄像头
  50. outmasages.Camaro_image()
  51. #释放对象和销毁窗口
  52. outmasages.cap.release()
  53. cv2.destroyAllWindows()

 2.标注图片

具体步骤已经在推荐链接中展示了,下面主要记录几个自己在做的时候遇到的坑的记录。

1.cfg文件记录

2模型文件和标签文件

 

mydata文件下的目录:


 
 
  1. dobot@dobot:~/YOLO_V3/darknet/mydata$ tree
  2. .
  3. ├── Annotations
  4. │   ├── 000000.xml
  5. │   ├── 000001.xml
  6. │   ├── 000002.xml
  7. │   ├── 000003.xml
  8. │   ├── 000004.xml
  9. │   ├── 000005.xml
  10. │   ├── 000006.xml
  11. │   ├── 000007.xml
  12. │   ├── 000008.xml
  13. │   ├── 000009.xml
  14. │   ├── 000010.xml
  15. │   ├── 000011.xml
  16. │   ├── 000012.xml
  17. │   ├── 000013.xml
  18. │   ├── 000014.xml
  19. │   ├── 000015.xml
  20. │   ├── 000016.xml
  21. │   ├── 000017.xml
  22. │   ├── 000018.xml
  23. │   └── 000019.xml
  24. ├── ImageSets
  25. │   └── Main
  26. │   ├── test.txt
  27. │   ├── train.txt
  28. │   ├── trainval.txt
  29. │   └── val.txt
  30. ├── JPEGImages
  31. │   ├── 000000.jpg
  32. │   ├── 000001.jpg
  33. │   ├── 000002.jpg
  34. │   ├── 000003.jpg
  35. │   ├── 000004.jpg
  36. │   ├── 000005.jpg
  37. │   ├── 000006.jpg
  38. │   ├── 000007.jpg
  39. │   ├── 000008.jpg
  40. │   ├── 000009.jpg
  41. │   ├── 000010.jpg
  42. │   ├── 000011.jpg
  43. │   ├── 000012.jpg
  44. │   ├── 000013.jpg
  45. │   ├── 000014.jpg
  46. │   ├── 000015.jpg
  47. │   ├── 000016.jpg
  48. │   ├── 000017.jpg
  49. │   ├── 000018.jpg
  50. │   └── 000019.jpg
  51. ├── labels
  52. │   ├── 000000.txt
  53. │   ├── 000002.txt
  54. │   ├── 000003.txt
  55. │   ├── 000004.txt
  56. │   ├── 000005.txt
  57. │   ├── 000006.txt
  58. │   ├── 000007.txt
  59. │   ├── 000008.txt
  60. │   ├── 000009.txt
  61. │   ├── 000010.txt
  62. │   ├── 000011.txt
  63. │   ├── 000012.txt
  64. │   ├── 000014.txt
  65. │   ├── 000015.txt
  66. │   ├── 000016.txt
  67. │   ├── 000017.txt
  68. │   ├── 000018.txt
  69. │   └── 000019.txt
  70. ├── mydata_test.txt
  71. ├── mydata_train.txt
  72. ├── test.py
  73. ├── voc.names
  74. └── weights
  75. ├── yolov3-voc_100.weights
  76. ├── yolov3-voc_200.weights
  77. ├── yolov3-voc_300.weights
  78. ├── yolov3-voc_400.weights
  79. ├── yolov3-voc_500.weights
  80. └── yolov3-voc.backup
  81. 6 directories, 72 files
  82. dobot@dobot:~/YOLO_V3/darknet/mydata$

 

另外的两个cfg文件在 如下:(my_data.data   ,    yolov3-voc.cfg)

yolov3-voc.cfg文件修改如下:


 
 
  1. [net]
  2. # Testing
  3. #batch=1
  4. #subdivisions=1
  5. # Training
  6. batch=1 #修改这地方
  7. subdivisions=1 #修改这地方
  8. width=416
  9. height=416
  10. channels=3
  11. momentum=0.9
  12. decay=0.0005
  13. angle=0
  14. saturation = 1.5
  15. exposure = 1.5
  16. hue=.1
  17. ..................
  18. ..................
  19. ..................
  20. [yolo]
  21. mask = 0,1,2
  22. anchors = 10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326
  23. classes=1
  24. num=9
  25. jitter=.3
  26. ignore_thresh = .5
  27. truth_thresh = 1
  28. random=0 #修改这地方

完成准备之后训练数据:

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

 

训练生成的数据集如下:

 

 完成训练之后,测试结果:

命令:$ ./darknet detector demo  cfg/my_data.data cfg/yolov3-voc.cfg mydata/weights/yolov3-voc_500.weights

 

测试结果,本人只是用了18图片迭代训练了500次,测试识别结果并不是很好,框容易框的很大!!!

 

 

 测试图片的命令行:

$ ./darknet detector test cfg/my_data.data  cfg/yolov3-voc.cfg mydata/weights/yolov3-voc_500.weights mydata/JPEGImages/000013.jpg

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: 要训练自己的数据集,你需要按照以下步骤进行操作。首先,你需要下载并配置darknet yolov3。你可以在\[1\]中找到关于darknet yolov3的下载、配置和测试的详细说明。接下来,你需要准备自己的训练集标签,使用VOC数据集格式。然后,在yolov3下训练你的数据集,并验证训练结果。最后,你可以使用测试集对训练结果进行测试。这些步骤与使用COCO数据集进行训练的步骤类似,你可以参考\[2\]中提供的链接了解更多细节。如果你想先测试一下darknet的框架,你可以使用作者提供的权重进行测试。你可以在\[3\]中找到如何使用yolo测试图片的具体步骤。希望这些信息对你有帮助! #### 引用[.reference_title] - *1* *3* [YOLOV3训练自己的数据集(VOC数据集格式)](https://blog.csdn.net/weixin_43818251/article/details/89548583)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [darknet-yolov3训练自己的数据集(超详细)](https://blog.csdn.net/yishuihanq/article/details/122778265)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值