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 #其中第一个参数是传入一张图片,第二个是计算结果的保存文件
运行结果是这样的,
均值有问题,/code/caffe/python/classify.py文件,第95行左右,修改如下,
[root@localhost python]# vim classify.py

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

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

添加的内容就是两行####之间的内容。即:131~138行。修改之后再次运行:
[root@localhost python]# python classify.py /root/Desktop/pic/banma.jpg result.npy #其中第一个参数是传入一张图片,第二个是计算结果的保存文件
输出如下:

我传入的是一张斑马的图片,分类的结果是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就会看到如下页面

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

至此,对caffe有个基本的了解了,继续深入学习吧。
caffe机器学习自带图片分类器classify.py实现输出预测结果的概率及caffe的web_demo例子运行实例的更多相关文章
- Caffe python利用classify.py实现对单通道(灰度图)的数据进行分类
比如你在mnist的prototxt中定义图输入是单通道的,也就是channel=1,然后如果直接调用classify.py脚本来测试的话,是会报错,错误跟一下类似. Source param sha ...
- Ubuntu16.04下caffe CPU版的图片训练和测试
一 数据准备 二.转换为lmdb格式 1.首先,在examples下面创建一个myfile的文件夹,来用存放配置文件和脚本文件.然后编写一个脚本create_filelist.sh,用来生成train ...
- 基于Caffe ResNet-50网络实现图片分类(仅推理)的实验复现
摘要:本实验主要是以基于Caffe ResNet-50网络实现图片分类(仅推理)为例,学习如何在已经具备预训练模型的情况下,将该模型部署到昇腾AI处理器上进行推理. 本文分享自华为云社区<[CA ...
- JAVA实现带图片的列表——JList
JList:显示对象列表并且允许用户选择一个或多个项的组件. JList的构造方法: 1.根据数组创建列表: JList(Object[] listData) 构造一个 JList,使其显示指定数组中 ...
- C# Qrcode生成二维码支持中文,带图片,带文字 2015-01-22 15:11 616人阅读 评论(1) 收藏
1.下载Qrcode库源码,下载地址:http://www.codeproject.com/Articles/20574/Open-Source-QRCode-Library 2.打开源码时,部分类库 ...
- 实现打印级别且带图片的Excel 方案
导出二维数据excel,其实很简单,使用cvs就可以了.但是如果导出格式复杂带样式还带图片的怎么办?客户的要求有时就是这么变态.呵呵.如果使用.net,微软提供的有库,使用php好像也有现成的有库.我 ...
- 自定义带图片和文字的ImageTextButton
今天我们来讲一下有关自定义控件的问题,今天讲的这篇是从布局自定义开始的,难度不大,一看就明白,估计有的同学或者开发者看了说,这种方式多此一举,但是小编我不这么认为,多一种解决方式,就多一种举一反三的学 ...
- 【Android代码片段之六】Toast工具类(实现带图片的Toast消息提示)
转载请注明出处,原文网址:http://blog.csdn.net/m_changgong/article/details/6841266 作者:张燕广 实现的Toast工具类ToastUtil封装 ...
- 使用C#发送正文带图片邮件
最近有个地方用到正文带图片的邮件发送功能,由于发送邮件调用的是web service,要求正文必须是string,而接收方要能看到图片,还不能单纯的添加一个图片地址链接,查阅了很多资料,基本上都是从头 ...
随机推荐
- java为什么非静态内部类中不能有static修饰的属性,但却可以有常量?
如:public class InnerClassDemo{int x;class A{static int a = 0;//这样写是不合法的.static final int b=0;//这样写是合 ...
- 去掉Win7快捷方式小箭头(win10通用)
我是一个有强迫症的优化控 , 因为近视的缘故 , 喜欢将桌面图标放大 , 但是win7快捷方式的小箭头 , 确实不好看 . 用win7魔方之类的软件 , 可以解决这个问题 , 但是有时候重启 , ...
- Automated Memory Analysis
catalogue . 静态分析.动态分析.内存镜像分析对比 . Memory Analysis Approach . volatility: An advanced memory forensics ...
- SVN 提交报错:×××文件is not under version control
解决方法:1.删除出错的文件,然后在出错文件所在文件夹执行还原操作 2.VS中可将文件先排除在项目外,再包含在项目内,即可正常提交
- 安装PHP sphinx扩展 sphinx-1.1.0/sphinx.c:105:2: error: too few arguments 错误
表现: /home/sphinx-1.1.0/sphinx.c: In function 'php_sphinx_client_read_property':/home/sphinx-1.1.0/sp ...
- Linux学习之让进程在后台可靠运行的方法详解
我们经常会碰到这样的问题,用 telnet/ ssh 登录了远程的 Linux 服务器http://www.maiziedu.com/course/592/,运行了一些耗时较长的任务, 结果却由于网络 ...
- TeXstudio 编写Latex论文的若干问题
TeXstudio 编写Latex论文的若干问题解决方案总结 问题1: 如何安装TeXstudio 以及 Texstudio当中的中文字体使用问题. 一.如何安装TeXstudio 很 ...
- 【转载】跟随 Web 标准探究DOM -- Node 与 Element 的遍历
跟随 Web 标准探究DOM -- Node 与 Element 的遍历 这个是 Joyee 2014年更新的,可能是转战github缘故,一年多没有跟新了.这篇感觉还挺全面,就转载过来,如以前文章一 ...
- 模板化的七种排序算法,适用于T* vector<T>以及list<T>
最近在写一些数据结构以及算法相关的代码,比如常用排序算法以及具有启发能力的智能算法.为了能够让写下的代码下次还能够被复用,直接将代码编写成类模板成员函数的方式,之所以没有将这种方式改成更方便的函数模板 ...
- SubMenu的setHeaderView使用时发现的问题
SubMenu android.view.SubMenu.setHeaderView(View view) 上面是这个方法的完整签名,作用就是自定义子菜单的菜单头,但是在OptionsMenu里面设置 ...