caffe做的分类识别

Caffe简明教程5:训练你的第一个Caffe模型-MNIST分类器 您可以查看所有文章的索引:Caffe简明教程0:文章列表 如果你已经根据前面几篇文章成功地编译了Caffe,那么现在是时候训练你的第一个模型了。我准备借用Caffe官网的LeNet例子来写这篇文章,您也可以访问原始的文档:Training LeNet on MNIST with Caffe Caffe在编译完成之后,在caffe根目录下有个examples文件夹,里面包含了很多Caf 阅读详情

2017年春节入坑DP,学着caffe做了一个杂草小苗的APP,模型和功能均在云端。

pypic.py

#!/usr/bin/env python
#-*-coding:utf-8-*-

import numpy as np  
import sys,os 
import re  

# 设置当前的工作环境在caffe下  
caffe_root = 'caffe/caffe-master/'   
# 我们也把caffe/python也添加到当前环境  
sys.path.insert(0, caffe_root + 'python') 
sys.path.insert(0, caffe_root + 'python/caffe') 
# os.environ['GLOG_minloglevel'] = '2'

import caffe  
os.chdir(caffe_root)#更换工作目录  

#GPU模式
#caffe.set_device(0)  # 如果你有多个GPU,那么选择第一个
caffe.set_mode_cpu()

# 设置网络结构  
net_file=caffe_root + 'examples/flower/deploy.prototxt'  #现成的
# 添加训练之后的参数  
caffe_model=caffe_root + 'examples/flower/snapshot_iter_40000.caffemodel'  
# 均值文件  
mean_file=caffe_root + 'examples/flower/ilsvrc_2012_mean.npy'   

# 这里对任何一个程序都是通用的,就是处理图片  
# 把上面添加的两个变量都作为参数构造一个Net  
net = caffe.Net(net_file,caffe_model,caffe.TEST)  

# 得到data的形状,这里的图片是默认matplotlib底层加载的  
transformer = caffe.io.Transformer({'data': net.blobs['data'].data.shape})  
# matplotlib加载的image是像素[0-1],图片的数据格式[weight,high,channels],RGB  
# caffe加载的图片需要的是[0-255]像素,数据格式[channels,weight,high],BGR,那么就需要转换  

# channel 放到前面  
transformer.set_transpose('data', (2,0,1))  
transformer.set_mean('data', np.load(mean_file).mean(1).mean(1))  
# 图片像素放大到[0-255]  
transformer.set_raw_scale('data', 255)   
# RGB-->BGR 转换  
transformer.set_channel_swap('data', (2,1,0))  

# print "input image" + sys.argv[1]
# 这里才是加载图片  
#im=caffe.io.load_image(caffe_root+'examples/flower/jpg/zshuhe055.jpg') 
im=caffe.io.load_image(sys.argv[1]) 

# 用上面的transformer.preprocess来处理刚刚加载图片  
net.blobs['data'].data[...] = transformer.preprocess('data',im)  

#注意,网络开始向前传播啦  
output = net.forward()  
# 最终的结果: 当前这个图片的属于哪个物体的概率(列表表示)  
output_prob = output['prob'][0] 
 
# 找出最大的那个概率  
# print 'predicted class is:', output_prob.argmax()  

# 也可以找出前五名的概率  
top_inds = output_prob.argsort()[::-1][:5]    

# 最后加载数据集进行验证  
imagenet_labels_filename = caffe_root + 'examples/flower/synset_words.txt'    
labels = np.loadtxt(imagenet_labels_filename, str, delimiter='\t')  


# print 'probabilities and labels:'  
# zip(output_prob[top_inds], labels[top_inds])  

top_k = net.blobs['prob'].data[0].flatten().argsort()[-1:-6:-1]  
#for i in np.arange(top_k.size):  
#    print labels[top_k[i]]  


with open("pestTemp.txt", "w") as f:
#    f.write(''.join(labels[top_k[0]])+';'.join(labels[top_k[1]])+';'.join(labels[top_k[2]])+';'.join(labels[top_k[3]])+';'.join(labels[top_k[4]])) 
    f.write(labels[top_k[0]]+';'+labels[top_k[1]]+';'+labels[top_k[2]]+';'+labels[top_k[3]]+';'+labels[top_k[4]])

upImgAi.php

date_default_timezone_set('Asia/Shanghai');
require_once('../include/DbMysqli.php');//BbsDbclass
require_once("PYClass.php");

//post 传值
$tblId = $_POST['tblId']; 
$act = $_POST['act'];  
$imgtxt = $_POST['imgtxt']; 
$UpPest = $_POST['UpPest']; 
$recId = $_POST['recId'];  
$UpLoc = $_POST['UpLoc']; 

$UpImgName = $_FILES["image"]["name"];
$UpAiDir = 'caffe/caffe-master/examples/flower/AiImg/';
if(!file_exists($UpAiDir)) {
    mkdir($UpAiDir); //新建文件夹
}

UpImgFile($UpImgName,$UpAiDir);//上传图片到指定目录 

$pestImg = $UpAiDir.$UpImgName;
system("python pypic.py ".$pestImg, $ret);

$pyDlFile = "caffe/caffe-master/pestTemp.txt"; //结果

if(file_exists($pyDlFile)){ //文件内容读入到字符串 
  $dlStr = file_get_contents($pyDlFile);
  $dlStr = preg_replace('|[0-9]+|','',$dlStr);
  $dlPestArr = explode(";",$dlStr);  //诊断结果数组
  AiJson($dlPestArr);
}

function UpImgFile($TempName,$UpAiDir){//上传图片移到指定目录
    if(move_uploaded_file($_FILES['image']['tmp_name'], $UpAiDir.$TempName)){
        //echo "The file ".basename($TempName)." has been uploaded successful.";
    }else{
        echo "Sorry, there was a problem uploading your file.failed";
    }
}

function AiJson($dlPestArr){
    $response = array();//zsh;yc;znB;zyy;ehm
    $pestArrEn = array('jc','zyy','dzZ','znA','zsh','dzB','pop','yc','znB','fl','ehm','zjym','mg','dzC','cec','dm','fs','dqb','ze','zheqi','znC','znZ','dzA','bph','sbph');
    $pestArr = array('荠菜','猪殃殃','0级稻桩','1级子囊','早熟禾','2级稻桩','婆婆纳','硬草','2级子囊','繁缕','二化螟','纵卷叶螟','毛茛','3级稻桩','刺儿菜','大螟','褐稻虱','稻曲病','卷耳','泽漆','3级子囊','0级子囊','1级稻桩','褐飞虱','灰飞虱');
    for($i=0;$i<count($dlPestArr);$i++){
          $RecArr["Id"] = "1";//表ID序号
          $RecArr["demoImg"] = "http://localhost/jsipm/admin/".$dlPestArr[$i].".jpg";  //图标
          if(in_array($dlPestArr[$i],$pestArrEn)){
              $pId = array_search($dlPestArr[$i],$pestArrEn);
              $RecArr["ShowTbl"] = $pestArr[$pId];  //诊断结果
          }else{
              $RecArr["ShowTbl"] = "未知";  //诊断结果
          }
          
          $RecArr["RealTbl"] = "http://localhost/jsipm/pestimg/csvpro.mp4";  //表格名
          array_push($response, $RecArr);
    }
    $JsonStr = json_encode($response);
    echo $JsonStr;
}

致敬贾神!

基于深度学习的人脸识别系统系列(Caffe+OpenCV+Dlib)——【六】设计人脸识别的识别类 现在我们希望能够有一个识别的接口来实现输入一张图片,便可以分辨出他是哪个人。我们需要提前: 1、定义一个人脸空间; 2、将一些人脸的图片放到这个人脸空间中; 3、将n个人脸图片提取特征为n个向量,并且合并为一个矩阵; 4、将n个人脸图片的标注(label)合并为一个向量,与矩阵形成对应; 5、将其序列化并保存起来,等待识别时进行读取。 **在前五篇博客中,我们已经可以很方便的来完成这些事情了。代码如下:** ``` 阅读详情

相关推荐

C++实现动物分类识别(caffe)

1.学习一下cmake工程的建立方法 发现VS Code不会用,先学习一下。

小膜仙的博客 1601

caffe-windows 配置和cifar10数据集训练

之前的文章中已经使得OpenCV能利用训练好的分类器进行图像的分类了,但最为关键的一步还没做,那便是分类器的获得。毕竟我们不可能用别人训练好的分类器很好的解决自己工程上的问题。 本篇,将开始对分类器的探索! 本人选用的是开源世界现在最流行的深度学习架构,至于为何怎么选,因为看到别人都这么选。。至于别的会不会更好,以后再说吧,有更深入的研究会跟大家分享。 第一步是下载,这个没什么说的。值得说的是

weixinhum 2913

Caffe 实现多标签分类

最近在用Caffe做验证码识别时,发现没有用Tensorflow简单(tensorflow中可以用one-hot, 参考我的另一篇blog:  http://blog.youkuaiyun.com/sushiqian/article/details/78305340 ),需要修改Caffe的源码,做完后,觉得也不复杂。 1. 首先,就是修改源码了,本文介绍的方法是修改ImageDataLayer,修改下面的

frontworld的博客 3788

Caffe实现多标签图像分类(1)——基于Python接口实现多标签图像分类(VOC2012)

1.前言         Caffe可以通过LMDB或LevelDB数据格式实现图像数据及标签的输入,不过这只限于单标签图像数据的输入。由于研究生期间所从事的研究是图像标注领域,在进行图像标注时,每幅图像都是多标签的,因此在使用Caffe进行迁移学习时需要实现多标签图像数据的输入。走过许多弯路,要毕业了,现在将这种比较实用的方法做一下总结方便后面学弟学妹的学习。         经过百度查找,...

澎湃de家夥的博客 1752

基于深度学习的瓜果蔬菜识别

基于深度学习的瓜果蔬菜识别

基于caffe框架深度学习的物体识别源码

基于caffe框架的物体识别代码,用于超市水果和蔬菜的自动识别,可接电子秤,用于自助秤重.

caffe练习

安装anaconda2开始是用的anaconda3 + python3结果需要改的地方太多,并且一直出现各种坑….所以换了anaconda2安装起来还算顺利下载anacondahttps://www.anaconda.com/download/#linux根据自己电脑的版本下载打开终端,执行命令cd Downloads bash Anaconda2-2.5.0-Linux-x86_64.sh 按提示

Cristal_yin的博客 1098

caffe分类器动态库编译

动态库编译好了,提供dll,lib,.h.以及测试代码、只需要自己的训练的分类器,网络结构均值,类别就可以试用了

Caffe 一些使用的命令操作与常识

1. 编译好的Caffe 可以通过运行caffe time 命令,对当前平台上网络层前向/后向计算进行计时: ./build/tools/caffe.bin time -model examples/mnist/lenet_train_test.prototxt2. lenet网络操作:    ./data/mnist/get_mnist.sh   //获取mnist数据集    ./exampl...

Rasin_Wu的博客 584

Caffe 改造后的分类预测程序classify.py,可将预测数据输出到文本文件

改造Caffe原始的分类预测程序classify.py,实现将预测标签输出到文本文件,同时输出的还有图片路径、图片原始标签,以及 Softmax 层输出的原始数据。 支持图片批处理。 具体的数据格式等更详细的介绍请参见我的这篇博客 http://blog.youkuaiyun.com/u010391437/article/details/71076576

TensorFlow实战:5步搞定因果推断模型TARNet(附完整代码)

本文提供了一份基于TensorFlow的TARNet因果推断模型实战指南。通过五个清晰步骤,从数据预处理、模型构建到训练评估,详细讲解了如何利用深度模型解决营销评估、疗效分析等场景中的因果效应估计问题,并附有完整代码解决样本不平衡等工程挑战。

python9snake的博客 416

[超详细]在caffe上用alexnet做汉字分类识别

前情提要:在网上找了一类验证码图片,对验证码进行处理后分割得到其上的汉字。在此基础上用alexnet对分割得到的汉字训练识别,测试识别的准确率。由于找的验证码数量不够,所以仿照原验证码类型生成了一波验证码数据。 (先把整个流程纲要和代码部分贴出来,后续的所有截图等我这两天整理好再补充上来。) ----2018.3.19 本文结构: 1.数据准备、制作lmdb数据集 ...

luolan9611的博客 2725

机器学习预测土壤养分:从电导率、pH到随机森林与神经网络的农业实践

在智慧农业与精准农业领域,机器学习已成为处理复杂农业数据、挖掘潜在规律的关键技术。其核心原理在于通过算法从多维数据中自动学习特征与目标变量之间的映射关系,尤其擅长捕捉非线性关联。这项技术的核心价值在于能够将传统上依赖昂贵、耗时实验室分析的问题(如土壤养分检测),转化为基于易获取传感器数据(如电导率、pH值)的快速、低成本预测任务,为农业生产的实时决策与资源优化提供了全新可能。其典型应用场景包括作物生长监测、产量预测以及精准施肥管理等。本文聚焦于利用随机森林和神经网络等回归算法,构建通过土壤物理参数预测氮磷钾

weixin_33693070的博客 665

AI读脸术真实落地案例:社区门禁性别年龄识别系统搭建

本文介绍了如何在星图GPU平台上自动化部署AI 读脸术 - 年龄与性别识别镜像,实现社区门禁系统中的人脸属性实时分析。该镜像基于OpenCV DNN轻量框架,可在普通CPU服务器上秒级响应,典型应用于访客性别与年龄段判断,辅助物业进行未成年人出入提醒、高龄老人关怀等人性化管理。

weixin_31869917的博客 195

Penpot自托管全攻略:5分钟搞定私有化部署(附Docker配置详解)

本文详细介绍了Penpot开源原型设计工具的私有化部署全流程,从Docker基础配置到企业级优化方案。通过分步指南和实战技巧,帮助设计团队快速搭建安全高效的自托管环境,实现数据自主可控。内容涵盖LDAP集成、性能监控、备份策略等关键企业需求,是Penpot私有化部署的完整参考手册。

sugar的博客 1134

STM32F407 UART4串口DMA收发实战:告别频繁中断,用空闲中断+DMA搞定不定长数据

本文详细介绍了STM32F407 UART4串口结合DMA和空闲中断实现高效不定长数据收发的实战方案。通过DMA硬件级数据搬运和空闲中断智能帧检测,显著降低CPU占用率,提升通信效率,适用于工业传感器数据采集和智能设备通信场景。

weixin_42631411的博客 155

使用训练好的caffemodel,对测试图像做自动分类预测

      笔者硕士阶段论文研究方向为:基于卷积神经网络的绘画图像分类研究, 需要使用训练好的caffemodel,对测试绘画图像进行分类和预测其类别。      本测试程序依赖python版本的caffe,需要将binaryproto格式均值文件转化为npy格式均值文件,代码如下:#coding=utf-8 import sys sys.path.append("D:\\Anaconda2\\...

XZZPPP的博客 1866

Sciter教程_00_创建HelloWorld工程

本教程记录Sciter工程的创建和编译运行的过程。

qq_36707072的博客 2277

Caffe笔记:python图像识别与分类

Caffe笔记:python图像识别与分类 本文来自网络,作为总结学习笔记。 准备 图像目标分类识别 1加载numpy以及matplotlib等模块 2 加载Load caffe 3加载网络并设置输入预处理 4设置图像输入参数配置 5图片加载与识别准备 工欲善其事,必先利其器。 —— 《论语·卫灵公》

Alex_StarSky的博客 1万+

Stata森林图进阶:个性化定制与高级技巧

本文详细介绍了Stata森林图的进阶技巧,包括个性化定制与高级应用。通过meta分析工具如metan命令,用户可以优化字体、颜色、坐标轴等视觉元素,提升森林图的专业性和可读性。文章还提供了黑白印刷设置、高分辨率导出等实用技巧,帮助科研人员制作符合学术出版要求的森林图。

ios99的博客 254

《Ventoy 制作系统安装 U 盘的具体步骤》

然后您可以在电脑的磁盘管理中对 U 盘进行快速格式化,选择 FAT32 或 NTFS 文件系统。至此,Ventoy 系统安装 U 盘就制作完成了。您可以在需要安装系统的电脑上,从 U 盘启动,然后选择相应的系统镜像进行安装。安装完成后,将您需要的操作系统镜像文件(如 Windows、Linux 等的 ISO 格式镜像)复制到 U 盘的根目录。在安装程序中,选择您插入的 U 盘设备,确保选择正确,以免误操作。2. 确认选择的 U 盘盘符正确,防止误操作导致其他磁盘数据丢失。点击“安装”按钮,等待安装完成。

jiyiwangluokeji的博客 2668

【caffe】基于caffe的分类模型训练及人脸识别应用

0、概述主要介绍用caffe训练分类模型的方法,你要做的事情有:1)配置好caffe2)根据博客https://www.2cto.com/kf/201704/623027.html跟着做一遍你就能上手用caffe训练模型了3)这篇文章和2)不同的两个地方,一是我用自己的方式总结一下要用到哪些文件,每个文件的作用是什么,二是介绍如何基于现有的模型去做finetune。1、各个文件的作用(配合文件my...

weixin_42437606的博客 5121

打通ZYNQ的任督二脉:AXI_FIFO数据交互全解析

FIFO(First In First Out,先进先出)是一种经典的数据缓冲结构,就像排队买票一样,先来的人先得到服务。时钟域交叉(CDC):连接不同时钟频率的模块数据缓冲:平衡生产者和消费者的速度差异流量控制:防止数据丢失或溢出input clk,// 输入AXI4-Stream接口(从PS到PL)// 输出AXI4-Stream接口(从PL到PS)// 状态指示信号// 定义状态机状态// 数据缓存// 8个深度的缓存// 流水线处理寄存器。

QQ_778132974的博客 306

Caffe框架编译classification工程

Caffe框架编译classification工程 使用Caffe框架识别自己手写的图片需要使用到classification.exe文件,但是在编译完caffe的MainBuilder后,查阅bin目录下会发现没有classification.exe文件。 为了获得classification.exe,需要单独编译Classification工程以产生。

小陈君的博客 2767

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Caffe学习系列(20):用训练好的caffemodel来进行分类

caffe程序自带有一张小猫图片,存放路径为caffe根目录下的 examples/images/cat.jpg, 如果我们想用一个训练好的caffemodel来对这张图片进行分类,那该怎么办呢? 如果不用这张小猫图片,换一张别的图片,又该怎么办呢?如果学会了小猫图片的分类,那么换成其它图片,程序实际上是一样的。 开发caffe的贾大牛团队,利用imagenet图片和caffenet模型训练好了

haoji007的博客 484

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

使用MATLAB加载训练好的caffe模型进行识别分类

在进行下面的实验前,需要先对数据进行训练得到caffemodel,然后再进行分类识别   c_demo.m function [scores, maxlabel] = c_demo(im, use_gpu) % Add caffe/matlab to you Matlab search PATH to use matcaffe if exist('/home/k40/caffe-maste

请叫我小皇帝 的博客 6670

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

上一篇: wx上传下载文件
下一篇: vmware网络连接出错Unit network.service not found
model2005
博客等级 码龄18年 97粉丝 112原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值