用TensorFlow和TFSlim实现图像分类与分割

本文介绍了使用TensorFlow和TF-Slim库进行图像分类和分割的方法,包括环境准备、预训练模型的应用、图像标注和分割的实践。通过预训练模型进行图像分类,然后利用卷积神经网络进行图像分割,展示了如何获取像素级别的分类信息。尽管模型在某些情况下可能产生误判,但其在图像标注和分割方面展现出了潜力。
摘要由CSDN通过智能技术生成

用TensorFlow和TF-Slim实现图像分类与分割

Tensorflow and TF-Slim | Jun 5, 2017
author : Xie Zhongzhao

原文地址: Image Classification and Segmentation with Tensorflow and TF-Slim

  • Google的Tensorflow是一个偏底层的库,实际使用时开发人员需要编写大量的代码,阅读他人的代码也很费劲,因此大家早就需要这样一个简洁的库。而slim非常干净,用预训练的模型对Tensorflow做了轻量级的封装。
  • Tensorflow的网站上有卷积神经网络的教程

1. 环境准备

import sys
import os

'''
(1)指定tensorflow使用第一块GPU,否则tensorflow默认会占用所有可用的内存资源
(2)添加克隆下来的代码路径,这样Python执行的时候就能找到需要的代码
'''
os.environ["CUDA_VISIBLE_DEVICES"] = '0'
sys.path.append("/home/xzz/code/python_tensorflow/models-master/slim")
'''
下载VGG-16模型,我们采用它来对图像做分类和分割,也可以选用其他占用内存较少的网络模型
(例如,AlexNet)
'''
from datasets import dataset_utils
import tensorflow as tf

url = "http://download.tensorflow.org/models/vgg_16_2016_08_28.tar.gz"

# 指定保存路径
checkpoints_dir = '/home/xzz/code/python_tensorflow/VGG-16'

if not tf.gfile.Exists(checkpoints_dir):
    tf.gfile.MakeDirs(checkpoints_dir)

dataset_utils.download_and_uncompress_tarball(url, checkpoints_dir)
>> Downloading vgg_16_2016_08_28.tar.gz 100.0%
Successfully downloaded vgg_16_2016_08_28.tar.gz 513324920 bytes.

2. 图像分类

(1)我们刚刚下载的模型可以将图像分成1000类。类别的覆盖度非常广。在本文中,我们就用这个预训练的模型来给图片分类、标注和分割,映射到这1000个类别。
(2)下面是一个图像分类的例子。图像首先要做预处理,经过缩放和裁剪,输入的图像尺寸与训练集的图片尺寸相同。


%matplotlib inline

from matplotlib import pyplot as plt

import numpy as np
import os
import tensorflow as tf
import urllib2

from datasets import imagenet
from nets import vgg
from preprocessing import vgg_preprocessing

checkpoints_dir = '/home/xzz/code/python_tensorflow/VGG-16'

slim = tf.contrib.slim

# 网络模型的输入图像有默认的尺寸
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值