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,而接收方要能看到图片,还不能单纯的添加一个图片地址链接,查阅了很多资料,基本上都是从头 ...
随机推荐
- Servlet-Cookie源码分析 源码环境:Tomcat8
最近在学习servlet的一些实现细节,阅读了Cookie的源码. Cookie本质上是服务器发送给客户端(主要是浏览器)的一个会话临时数据. 其源码注释文档的说明: Creates a cookie ...
- 文本文件关键字替换(Java)
代码实现如下: import java.io.File; import java.io.PrintWriter; import java.util.Scanner; public class File ...
- my computer
把08年买的电脑换了,自己买的配件装的,狂拽酷炫叼炸天. 配置清单: CPU :英特尔至强E3-1230 V2 主板 :华硕P8Z77-V LX LX2 机箱 :撒哈拉海盗贼王Z6游戏机箱(白色限量版 ...
- 【codeforces 749E】 Inversions After Shuffle
http://codeforces.com/problemset/problem/749/E (题目链接) 题意 给出一个1~n的排列,从中等概率的选取一个连续段,设其长度为l.对连续段重新进行等概率 ...
- Nodejs事件引擎libuv源码剖析之:高效队列(queue)的实现
声明:本文为原创博文,转载请注明出处. 在libuv中,有一个只使用简单的宏封装成的高效队列(queue),现在我们就来看一下它是怎么实现的. 首先,看一下queue中最基本的几个宏: typede ...
- sublime text常用快捷键
个人觉得很好用的我会紫色标出!这里只是windows快捷键 搜索类 Ctrl+P 输入想要找的文件名,可以找出相应的文件: 输入@可以查找相应文件的名字(等同于Ctrl+r),例如在css文件 ...
- IOS开发遇到(null)与<null>轻松处理
在ios开发中不可避免的我们会遇到服务器返回的值有空值,但是如果是nil也就算了还可能得到(null)以及<null>的返回值,该如何处理呢?(当然有的字典转模型中已处理,可以通过遍历等) ...
- JEECG 社区开源项目下载(总览)
反馈问题板块:http://www.jeecg.org/forum.php?mod=forumdisplay&fid=153 资源1: JEECG 微云快速开发平台( JEECG 3.6.5 ...
- Android——SharedPreferences
SharedPreferences是一种轻型的Android数据存储方式,用来保存应用的一些常用配置. 实现SharedPreferences存储的步骤如下: 1.根据Context获取SharedP ...
- SEO之title优化
作者:andyrat,联系方式:andyrat@qq.com