搜索
bottom↓
回复: 5

【人工智能 图像分割 原创首发】第五章 用训练好的网络测试

[复制链接]

出25入84汤圆

发表于 2020-10-13 14:05:58 | 显示全部楼层 |阅读模式
这一节我利用训练出的.pb网络测试下自己的图片

新建一个python文件“6deeplab_predictions.py”,输入代码如下
  1. # 时间:2020.09.14
  2. # 作用:调用pb文件批量生成deeplabv3预测图
  3. # 输入:图像文件夹,pb模型文件
  4. # 输出:文件预测图
  5. # 注意:原始图片里不要有其他文件,包括.DS_Store、文件夹等。

  6. import tensorflow as tf
  7. import numpy as np
  8. import os
  9. from PIL import Image

  10. Image.MAX_IMAGE_PIXELS = 400000000
  11. image_wide = 400
  12. image_high = 320
  13. imagedir = '/Users/zhengyuchun/Desktop/Anaconda/pre_images/'
  14. pbpath = "./exp/mydata_train/export/frozen_inference_graph.pb"

  15. imagelist = os.listdir(imagedir)
  16. rgbim = np.zeros((image_high, image_wide, 3), 'uint8')
  17. R = rgbim[:, :, 0]
  18. G = rgbim[:, :, 1]
  19. B = rgbim[:, :, 2]

  20. img = tf.placeholder(tf.uint8, [1, image_high, image_wide, 3], name="img")
  21. with open(pbpath, "rb") as f:
  22.         graph_def = tf.GraphDef()
  23.         graph_def.ParseFromString(f.read())
  24.         output = tf.import_graph_def(graph_def, input_map={"ImageTensor:0": img}, return_elements=["SemanticPredictions:0"])

  25. sess = tf.Session()

  26. for i in range(0, len(imagelist)):
  27.         path = os.path.join(imagedir, imagelist[i])   # 带文件名的路径
  28.         filename = os.path.splitext(imagelist[i])[0]  # 文件名
  29.         filetype = os.path.splitext(imagelist[i])[1]  # 后缀".jpg"
  30.         print('正在处理 '+path)

  31.         image = Image.open(path)
  32.         image = np.asarray(image)
  33.         image = np.expand_dims(image, axis=0).astype(np.uint8)

  34.         result = sess.run(output, feed_dict={img: image})

  35.         grayim = np.squeeze(result[0])

  36.         # 将灰度图像转换为rgb图像,根据自己的类别数目修改相应的颜色
  37.         for k in range(0, image_high):
  38.                 for j in range(0, image_wide):
  39.                         if grayim[k][j] == 1:
  40.                                 R[k, j] = 128
  41.                                 B[k, j] = 0
  42.                                 G[k, j] = 0
  43.                         elif grayim[k][j] == 0:
  44.                                 R[k, j] = 0
  45.                                 B[k, j] = 0
  46.                                 G[k, j] = 0

  47.         rgbim = Image.fromarray(np.uint8(rgbim))
  48.         savedir = os.path.join(imagedir, filename + '.png')
  49.         rgbim.save(savedir)
  50.         rgbim = np.zeros((image_high,image_wide, 3), 'uint8')
  51.         R = rgbim[:, :, 0]
  52.         G = rgbim[:, :, 1]
  53.         B = rgbim[:, :, 2]
复制代码


运行就可以了,切记源图像不能是8bit的图片,而且源文件夹不能有其他文件和文件夹(文件夹下ls -la查看是否有其他文件,比如:包括.DS_Store、文件夹等)。

运行结果如下


可以看出,预测还是很准确的。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2020-10-13 14:38:11 | 显示全部楼层
这东西好玩!

出0入4汤圆

发表于 2020-10-17 11:20:27 | 显示全部楼层
你好楼主,我按照你的方法训练了一个模型,前四章都正常。第五章使用训练好的结果测试这里,我没有在/exp/mydata_train目录下找到export文件夹,也没有找到frozen_inference_graph.pb文件。这个文件在deeplab\g3doc\deeplabv3_mnv2_pascal_trainval文件夹里倒是有一个,不过看修改日期是2018年的,肯定不是训练生成的。麻烦问一下这是怎么回事啊?是不是因为我训练失败了?

出25入84汤圆

 楼主| 发表于 2020-10-17 15:29:46 | 显示全部楼层
thepresent 发表于 2020-10-17 11:20
你好楼主,我按照你的方法训练了一个模型,前四章都正常。第五章使用训练好的结果测试这里,我没有在/exp/m ...

不好意思,漏掉了一个环节。
第四章训练完毕后,还需要将训练好的网络冻结,生成.pb格式。
新建一个.sh 文件,输入代码如下:
  1. cd ..
  2. export PYTHONPATH=$PYTHONPATH:`pwd`:`pwd`/slim

  3. python deeplab/export_model.py \
  4.   --checkpoint_path='./deeplab/exp/mydata_train/train/model.ckpt-46781' \
  5.   --export_path='./deeplab/exp/mydata_train/export/frozen_inference_graph.pb' \
  6.   --model_variant="mobilenet_v2" \
  7.   --num_classes=2 \
  8.   --decoder_output_stride=16 \
复制代码


model.ckpt-46781'改为你自己训练的最终文件就行。

出0入4汤圆

发表于 2020-10-17 20:08:04 | 显示全部楼层
chun2495 发表于 2020-10-17 15:29
不好意思,漏掉了一个环节。
第四章训练完毕后,还需要将训练好的网络冻结,生成.pb格式。
新建一个.sh  ...

这个是在train文件夹生成的文件,没有你说的类似的格式啊。是不是我生成的有什么问题?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出25入84汤圆

 楼主| 发表于 2020-10-17 21:07:59 | 显示全部楼层
thepresent 发表于 2020-10-17 20:08
这个是在train文件夹生成的文件,没有你说的类似的格式啊。是不是我生成的有什么问题? ...

没问题,你的就是这个 model.ckpt-100
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-26 04:54

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表