64位win7 使用tensorflow的classify_image进行物体识别

一、安装

      安装过程就不细说了,我电脑64位win7,安装python3.6,安装TensorFlow


二、应用classify_image.py

      文件classify_image在 http://blog.csdn.net/ren0zhe/article/details/75804578    里面有介绍

      下载好后,使用 Geany 等IDE打开,直接执行就可以使用

def main(_):
  maybe_download_and_extract()
  image = (FLAGS.image_file if FLAGS.image_file else
           os.path.join(FLAGS.model_dir, 'cropped_panda.jpg'))
  run_inference_on_image(image)



程序    maybe_download_and_extract()   是下载并解压缩  inception-2015-12-05.tgz  

然后加载 要识别的 图片 cropped_panda.jpg(这个照片在inception-2015-12-05.tgz  

下载解压缩的默认路径为    default='/tmp/imagenet',



运行程序后,在目录  C:\tmp\imagenet 下面会有如下文件



运行结果,识别出 国宝大熊猫


下面我们识别其它物体,比如  tiger.jpg

将加载的图片的名称修改为 tiger,jpg    并且在目录  C:\tmp\imagenet  里面包含文件 tiger,jpg

image = (FLAGS.image_file if FLAGS.image_file else
           os.path.join(FLAGS.model_dir, 'tiger.jpg'))

执行程序后,可得



也可以识别出来老虎。


**********************************华丽的分割线**********************************************

但是如何根据自己的需求,自己训练模型呢,这是下一步解决的问题,

比如我就想识别饮料瓶,所以我需要找来各种各样的饮料瓶,然后自己去训练模型,应该是可以的

`classify_image`函数通常是由深度学习框架或者图像处理库提供的,使用方法可能会有所不同。以下是一个使用TensorFlow Hub提供的图像分类模型进行图像分类的案例代码: ```python import tensorflow_hub as hub import tensorflow as tf import numpy as np import PIL.Image as Image # 加载图像分类模型 module_handle = "https://tfhub.dev/google/imagenet/mobilenet_v2_140_224/classification/4" model = hub.load(module_handle) # 定义图像预处理函数 def preprocess_image(image_path): image = Image.open(image_path) image = image.resize((224, 224)) image = np.array(image) / 255.0 return image # 定义分类函数 def classify_image(image_path): image = preprocess_image(image_path) image = np.expand_dims(image, axis=0) predictions = model(image) predictions = np.squeeze(predictions) top_k = np.argsort(predictions)[-5:][::-1] labels_path = tf.keras.utils.get_file("ImageNetLabels.txt", "https://storage.googleapis.com/download.tensorflow.org/data/ImageNetLabels.txt") with open(labels_path) as f: labels = f.readlines() labels = [label.strip() for label in labels] results = {} for i in range(5): label = labels[top_k[i]] score = predictions[top_k[i]] results[label] = float(score) return results # 测试分类函数 image_path = "test.jpg" results = classify_image(image_path) print(results) ``` 上面的代码首先加载了一个名为`mobilenet_v2_140_224`的图像分类模型,然后定义了一个图像预处理函数和一个分类函数。预处理函数将输入的图像文件路径转化为符合模型输入要求的图像数组,分类函数将处理后的图像传入模型并得到分类结果,最后返回一个字典类型的结果,键为分类标签,值为该图像被分类为该标签的概率。 运行上面的代码,假设输入的测试图像是一只狗的图片,输出可能长这样: ``` {'golden retriever': 0.9215273265838623, 'Labrador retriever': 0.05019818967580795, 'vizsla': 0.005006699260681152, 'hen-of-the-woods': 0.00218029093769145, 'cocker spaniel': 0.0017814641147258282} ``` 这表示该图像被分类为金毛猎犬的概率最高,为0.92,被分类为拉布拉多猎犬的概率为0.05,以此类推。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值