Caffemnist识别的流程

Posted Taily老段

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Caffemnist识别的流程相关的知识,希望对你有一定的参考价值。

cd $CAFFE_ROOT

训练数据下载  

./data/mnist/get_mnist.sh

#!/usr/bin/env sh
# This scripts downloads the mnist data and unzips it.

DIR="$( cd "$(dirname "$0")" ; pwd -P )"
cd "$DIR"

echo "Downloading..."

for fname in train-images-idx3-ubyte train-labels-idx1-ubyte t10k-images-idx3-ubyte t10k-labels-idx1-ubyte
do
    if [ ! -e $fname ]; then
        wget --no-check-certificate http://yann.lecun.com/exdb/mnist/$fname.gz
        gunzip $fname.gz
    fi
done

制作数据集:

./examples/mnist/create_mnist.sh

#!/usr/bin/env sh
# This script converts the mnist data into lmdb/leveldb format,
# depending on the value assigned to $BACKEND.
set -e

EXAMPLE=examples/mnist
DATA=data/mnist
BUILD=build/examples/mnist

BACKEND="lmdb"

echo "Creating $BACKEND..."

rm -rf $EXAMPLE/mnist_train_$BACKEND
rm -rf $EXAMPLE/mnist_test_$BACKEND

$BUILD/convert_mnist_data.bin $DATA/train-images-idx3-ubyte \\
  $DATA/train-labels-idx1-ubyte $EXAMPLE/mnist_train_$BACKEND --backend=$BACKEND
$BUILD/convert_mnist_data.bin $DATA/t10k-images-idx3-ubyte \\
  $DATA/t10k-labels-idx1-ubyte $EXAMPLE/mnist_test_$BACKEND --backend=$BACKEND

echo "Done."

训练模型:

./examples/mnist/train_lenet.sh

# The train/test net protocol buffer definition
net: "examples/mnist/lenet_train_test.prototxt"
# test_iter specifies how many forward passes the test should carry out.
# In the case of MNIST, we have test batch size 100 and 100 test iterations,
# covering the full 10,000 testing images.
test_iter: 100
# Carry out testing every 500 training iterations.
test_interval: 500
# The base learning rate, momentum and the weight decay of the network.
base_lr: 0.01
momentum: 0.9
weight_decay: 0.0005
# The learning rate policy
lr_policy: "inv"
gamma: 0.0001
power: 0.75
# Display every 100 iterations
display: 100
# The maximum number of iterations
max_iter: 10000
# snapshot intermediate results
snapshot: 5000
snapshot_prefix: "examples/mnist/lenet"
# solver mode: CPU or GPU
solver_mode: CPU

制作测试图片:

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

from PIL import Image

im = Image.open('4.png')
im.thumbnail((28, 28))
tt =  im.convert('1')
tt.save('test4.bmp')

测试图片:test.py

import os
import sys
import numpy as np
import matplotlib.pyplot as plt

caffe_root = '/usr/local/Cellar/caffe/'

sys.path.insert(0, caffe_root + 'python')
import caffe
MODEL_FILE = caffe_root+'examples/mnist/lenet.prototxt'
PRETRAINED = caffe_root+'examples/mnist/lenet_iter_5000.caffemodel'
IMAGE_FILE = caffe_root+'examples/images/test4.bmp'

input_image = caffe.io.load_image(IMAGE_FILE, color=False)
net = caffe.Classifier(MODEL_FILE, PRETRAINED) 
prediction = net.predict([input_image], oversample = False)
caffe.set_mode_cpu()
print 'predicted class:', prediction[0].argmax()

predicted class: 4

 

以上是关于Caffemnist识别的流程的主要内容,如果未能解决你的问题,请参考以下文章

车牌OCR识别的流程,手机车牌识别

企业营业执照识别的具体流程

人脸识别原理及处理流程

移动端车牌识别OCR识别的流程介绍

opencv学习-读特定图像识别的实现流程

基于图像识别的火灾检测系统设计思路流程