https://blog.csdn.net/Patrick_Lxc/article/details/80615433 大部分博客参考的都是这篇,下面两篇链接有补充,其中这里的第七步
第七步:修改model_data下的文件,放入你的类别,coco,voc这两个文件都需要修改
注意coco voc两个文件都要改,也就是voc_class.txt和coco_classes.txt 都要改成你自己的类别,我一开始只改了voc这一个,
注意测试报维度不匹配
还有voc_annotation.py文件里的classes类别也要改为自己的类别,要不然生成的yolo格式的文件不对
最后一步测试的时候的时候有多种方式
1,直接运行 python yolo.py
这种是测试单张图片,而且要自己在yolo.py文件最后加个主函数,也可以save保存到文件夹里,这里只显示,不保存,而且发现保存的时候图片质量下降了,类别文字看的不是很清楚
if __name__ == '__main__':
yolo=YOLO()
path = './image/test.jpg' # 在该文件目录创建一个image文件夹
try:
image = Image.open(path)
except:
print('Open Error! Try again!')
else:
r_image, _ = yolo.detect_image(image)
r_image.show()
yolo.close_session()
2,运行
python yolo_vedio.py --image
这里也是测试单张图片,注意必须有个--image参数要写,表示是检测图片而不是视频,不写默认是视频,运行完要输入Input image filename:
就是要你输入测试图片路径,比如我就直接输入:
./image/test.jpg
3, 运行
python yolo_vedio.py --image
跟上面一样的,但是更改一下yolo_video.py文件最开始的detect_img函数,原来的是这样的:
def detect_img(yolo):
while True:
img = input('Input image filename:')
try:
image = Image.open(img)
except:
print('Open Error! Try again!')
continue
else:
r_image = yolo.detect_image(image)
r_image.show()
yolo.close_session()
也就是上面那种方法,要输入Input image filename,现在将这个函数改为:
import glob
import os
def detect_img(yolo):
path = "./image/*.jpg" # 会测试这个文件夹内所有的jpg文件
outdir = "./output/" # 并将检测结果保存在这个文件内
for jpgfile in glob.glob(path):
img = Image.open(jpgfile)
img = yolo.detect_image(img)
img.save(os.path.join(outdir, os.path.basename(jpgfile)))
yolo.close_session()
改为这种后,只要将图片放进当前目录下的image文件夹,就会检测该文件夹的所有的jpg文件,如果是jpeg文件,就写成jpeg
然后将检测结果保存在output文件夹内
4,运行
python yolo_video.py
这种是测试视频,你必须先把视频放好,比如我视频test.mp4放在当前目录下的video文件内,必须在yolo_video.py设置好input的参数,比如./video/test.mp4 ,还有一个output的参数,但这个参数好像设置了没啥用,或者你运行的时候带上参数,比如:
python yolo_video.py --input=./video/test.mp4
这里同样写了 --output=./output/res.mp4 没啥用 不知道是不是程序没保存,特别注意这里写参数不能有空格,否则会报错,比如
python yolo_video.py --input = ./video/test.mp4
这样写会报错,input后面直接接=号,不要加空格,后面也是直接加路径,不要有空格
5,运行
python yolo_video.py
并将yolo.py文件的detect_video函数稍微改动一下
def detect_video(yolo, video_path=0, output_path=""):
import cv2
vid = cv2.VideoCapture(0)
#下边不变,略
.就改成上面两行,这样执行完python.yolo_video.py文件后,自动调用摄像头,进行摄像检测
https://blog.csdn.net/weixin_38264564/article/details/82557678 这个跟第一个差不多 略有补充
https://blog.csdn.net/u012746060/article/details/81183006 这个还讲了用yolo3训好的20类的模型和模型下载,上面两个只讲了训练自己的数据,这个训练这voc2007这20类或者最后来测试,方法跟前面是一样的,特别是测试。不用改参数,模型文件转化好之后直接 python yolo_video.py --image
然后输入图片路径,这是最简单的图片测试,不用改增加任代码
https://blog.csdn.net/mingqi1996/article/details/83343289#%E7%94%A8qtpy%E5%81%9A%E7%9A%84%E7%95%8C%E9%9D%A2%EF%BC%8C%E6%B5%8B%E8%AF%95%E4%B8%80%E4%B8%8B 这个后面写了如何测试图片,看这个还挺好的
https://blog.csdn.net/davidlee8086/article/details/79693079
https://blog.csdn.net/KKKSQJ/article/details/83587138
https://blog.csdn.net/leviopku/article/details/82660381
https://blog.csdn.net/oYouHuo/article/details/82151787
https://blog.csdn.net/c20081052/article/details/83660714
https://www.jianshu.com/p/67163d52946f