keras yolo3训练自己的训练集

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 这个后面写了如何测试图片,看这个还挺好的

为什么修改yolo3.cfg原因

https://blog.csdn.net/davidlee8086/article/details/79693079

基于keras-yolov3,原理及代码细节的理解

https://blog.csdn.net/KKKSQJ/article/details/83587138

yolo系列之yolo v3【深度解析】 有结构图挺好的

https://blog.csdn.net/leviopku/article/details/82660381

tensorflow复现yolov3(参考keras-yolo3)

https://blog.csdn.net/oYouHuo/article/details/82151787

Tensorflow在手机端的部署——yolo模型转tensorflow模型(3)

https://blog.csdn.net/c20081052/article/details/83660714

YOLOv3代码分析(Keras+Tensorflow)

https://www.jianshu.com/p/67163d52946f

 

 

 

 

你可能感兴趣的:(深度学习,yolo,tensorflow)