• caffe机器学习自带图片分类器classify.py实现输出预测结果的概率及caffe的web_demo例子运行实例


    caffe机器学习环境搭建及python接口编译参见我的上一篇博客:机器学习caffe环境搭建——redhat7.1和caffe的python接口编译

    1.运行caffe图片分类器python接口

     还是假设caffe的源码下载的路径为:/code,那么有这么个文件/code/caffe/python/classify.py,它是caffe团队提供的一个python实现的图片分类器的接口。运行该接口有两个必须参数,一个是你要操作的图片,另一个就是保存运行结果的文件。但是该接口需要简单修改才能运行,你不做任何修改的情况下运行的结果是这样的:

    执行:
    [root@localhost python]# python classify.py /root/Desktop/pic/banma.jpg result.npy #其中第一个参数是传入一张图片,第二个是计算结果的保存文件
    

     运行结果是这样的,
    2.png

    均值有问题,/code/caffe/python/classify.py文件,第95行左右,修改如下,

    [root@localhost python]# vim classify.py
    

     3.png

    修改之后执行是可以了,但是结果不会输出到屏幕上,而且结果的保存文件result.npy的内容也是不可读的,运行结果如下:

    4.png 

    他只告诉说计算结果保存在result.npy(该文件也是在,/code/caffe/python/目录下),但是当你去读的时候发现是一堆乱码。于是,再次编辑/code/caffe/python/classify.py文件,把结果直接打印到屏幕上:

    caffe-接口.png 

    添加的内容就是两行####之间的内容。即:131~138行。修改之后再次运行:

    [root@localhost python]# python classify.py /root/Desktop/pic/banma.jpg result.npy #其中第一个参数是传入一张图片,第二个是计算结果的保存文件
    

     输出如下:

    1231.png 

    我传入的是一张斑马的图片,分类的结果是0.99501的概率是zebra,默认输出是概率最大的前五个,可以自定义。

    2.运行caffe自带的例子web_demo

      在目录/code/caffe/exampes下,有很多caffe给的例子,这里以web_demo下的例子为例,这个例子实现的是一个图片分类器的功能,比如你上传一张猫的图片,程序会给出整张图片是猫的可能性,或者是狗的可能性等等。

     首先,通过阅读/code/caffe/exampes/web_demo/下的readme.me文件(建议都看一下该文件),可以知道需要先下载各种依赖,及需要的数据资源,如下:

    [root@localhost ~]# cd /code/caffe
    [root@localhost caffe]# pip install -r examples/web_demo/requirements.txt
    [root@localhost caffe]# ./data/ilsvrc12/get_ilsvrc_aux.sh
    [root@localhost caffe]# ./scripts/download_model_binary.py models/bvlc_reference_caffenet  #这个下载的最慢,40+分钟
    

    全部下载完成后就可以运行了 

    [root@localhost ~]# python examples/web_demo/app.py
    

     通过readme。md文件我们知道服务监听5000端口,打开浏览器输入:localhost:5000就会看到如下页面

      QQ截图20170103093355.png

    可以看到caffe提供3种方法来验证该分类器,点击“Click for a Quick Example”,这个是caffe源码里自带的几张猫的图片,也可以添加一张图片的URL,甚至可以本地上传一张图片让caffe去识别,我上传一张斑马图片识别结果如下:

    123.png 

    至此,对caffe有个基本的了解了,继续深入学习吧。

  • 相关阅读:
    百练 2712 细菌繁殖 解题报告
    Elasticsearch常用最全最常用工具清单
    并发工具类使用详解及区别(CountDownLatch、CyclicBarrier、Semaphore、Exchanger)
    Elasticsearch 启动过程详解
    Elasticsearch 编译调试总结
    gradle镜像源配置
    Activiti6详细教程
    CSDN-markdown编辑器语法
    Spring Boot Activiti 整合工作流引擎开发
    less使用语法详解
  • 原文地址:https://www.cnblogs.com/dadong616/p/6244254.html
Copyright © 2020-2023  润新知