滴,技术贴~~~基于keras的yolov3的应用(非训练篇)

我觉得最最最重要的是一定不要偷懒!

一定要用python3,一定要用python3,一定要用python3。

一定要基于python3,这是我的亲身体验,泪的教训~~~基于python2.7跑基于keras的yolo3,到input image filename ,一直报错,百度了各种错误,都没解决,到现在也不知道该如何解决。这个问题卡了3小时,然后我就换成python3运行了,根本没出错,奥,我的天,两分钟的事儿,非要用3小时来明白。还偷懒么~~~哭泣

1  基于darknet

这个实现起来比较容易,但是测试图片时速度比较慢,可能我电脑配置不行,然后大概一张图片30s的样子。

这个博主写的特别好,直接甩链接。基于darknet的yolov3安装  这个跑到2.2.2都没出错。

终端命令

./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg
或者
./darknet detector test cfg/coco.data cfg/yolov3.cfg yolov3.weights data/dog.jpg

放一张我实现的图片~

 2.基于keras的yolo3网络

yoloV3主页:https://pjreddie.com/darknet/yolo/

keras-yolo3代码:https://github.com/qqwweee/keras-yolo3

1 安装tensorflow,安装keras。(详细步骤百度吧,不推荐偷懒安装法)

偷懒安装法不可取。

安装我就直接 在终端

sudo pip3 tensorflow

sudo pip3 keras
//有速度比较快的安装命令,在我的另一篇博文中有提到。

这里是用了源的,把命令行的最后 opencv-python 分别换成 tensorflow和keras就行。

2 下载权重参数,官网下载参数

或者直接在终端输入

wget https://pjreddie.com/media/files/yolov3.weights

3 下载keras-yolov3

4 将第二步下载好的权重参数yolov3.weights放入到第三步下载的keras-yolov包中。

5 将.weights转换为.h5文件,输入命令

python convert.py yolov3.cfg yolov3.weights model_data/yolo.h5

在model_data文件夹中得到yolo.h5。

6.这样就可以对自己的图片 或视频进行测试啦。

图片测试,需要将yolo_video里的第50行,把Faulse改成True。

输入命令

python yolo_video.py

ps 带python的命令得再.py文件所在路径中进行,找到文件所在位置,右击,open in the terminal。

因为在终端里默认是用的python2.7,所以,出错了。

然后,在输入时应该加上'   ',也就是'timg.jpeg' 这个问题解决了,但是会一直出另一个错,不知道怎么解决。

ValueError: height and width must be > 0(这个错误没有百度到答案,花费了3小时,请各位道友绕坑而行,如果解决了,麻烦告诉我一下)

正确方式:然后我就在pycharm里,运行yolo_video.py。把编译器换成了python3。成功!

在这里注意的是,输入时只需要输入   timg.jpeg   就行,不用加'  '。

得到图片效果:(测试这张图片运行了4.29s)

这个图片好搞笑,明明是四只狗狗,愣是给识别出来了3只鸟。哈哈哈。

这个图片效果还不错~~~美滋滋~~~

视频:(ps这个视频我只是把方法放上了,还没有试错,因为opencv加视频也容易因为格式问题什么的出错,手边没有.avi格式视频,等我试成功,我会再编辑)

就把第50行,True改成False,默认就是False。

在终端运行命令:(或者直接在yolo_video.py 把视频默认路经改成自己视频路经,用pycharm python3 运行)

python yolo_video.py [video_path] [output_path(optional)]

错误总结:(在python2.7遇到的,也罗列一下,这里是解决了的问题)

1  问题如图:

解决办法:在最上方加入  

from _future_ import print_function

2 问题如图:unicode argument expected ,got 'str'

解决办法:

在光标所在处把StringIo 换成 BytesIo

不要问我为什么,我也不知道~~~

猜你喜欢

转载自blog.csdn.net/qq_40297851/article/details/85016264