济南微网站建设,上海网站推广多少钱,企业官网网站建设报价,wordpress 错误提示1、环境#xff1a;win10tensorflow-gpu1.14.0
2、下载代码#xff1a;到https://github.com/balancap/SSD-Tensorflow到本地
3、解压代码#xff0c;并将checkpoints下的ssd_300_vgg.ckpt.zip进行解压在checkpoints目录下。否则后果不堪设想
4、如果你的电脑装有jupyter…1、环境win10tensorflow-gpu1.14.0
2、下载代码到https://github.com/balancap/SSD-Tensorflow到本地
3、解压代码并将checkpoints下的ssd_300_vgg.ckpt.zip进行解压在checkpoints目录下。否则后果不堪设想
4、如果你的电脑装有jupyter notebook.则将此SSD-Tensorflow文件复制在jupyter文件目录下然后启动jupyter notebook。 打开notebooks下的ssd_notebook.ipynb文件运行每个cell。 也可以将此ipynb下的所有代码复制在SSD_Tensorflow目录新建的ssd_python.py中运行 也可以直接搜网上教程新建py文件复制代码然后运行。
这个附上我复制的代码切记修改路径ckpt_file
# coding: utf-8
# In[1]:import os
import math
import randomimport numpy as np
import tensorflow as tf
import cv2slim tf.contrib.slim# In[2]:
import matplotlib.pyplot as plt
import matplotlib.image as mpimg# In[3]:import syssys.path.append(./)# In[4]:from nets import ssd_vgg_300, ssd_common, np_methods
from preprocessing import ssd_vgg_preprocessing
from notebooks import visualization# In[5]:# TensorFlow session: grow memory when needed. TF, DO NOT USE ALL MY GPU MEMORY!!!
gpu_options tf.GPUOptions(allow_growthTrue)
config tf.ConfigProto(log_device_placementFalse, gpu_optionsgpu_options)
isess tf.InteractiveSession(configconfig)# ## SSD 300 Model
#
# The SSD 300 network takes 300x300 image inputs. In order to feed any image, the latter is resize to this input shape (i.e.Resize.WARP_RESIZE). Note that even though it may change the ratio width / height, the SSD model performs well on resized images (and it is the default behaviour in the original Caffe implementation).
#
# SSD anchors correspond to the default bounding boxes encoded in the network. The SSD net output provides offset on the coordinates and dimensions of these anchors.# In[6]:# Input placeholder.
net_shape (300, 300)
data_format NHWC
img_input tf.placeholder(tf.uint8, shape(None, None, 3))
# Evaluation pre-processing: resize to SSD net shape.
image_pre, labels_pre, bboxes_pre, bbox_img ssd_vgg_preprocessing.preprocess_for_eval(img_input, None, None, net_shape, data_format, resizessd_vgg_preprocessing.Resize.WARP_RESIZE)
image_4d tf.expand_dims(image_pre, 0)# Define the SSD model.
reuse True if ssd_net in locals() else None
ssd_net ssd_vgg_300.SSDNet()
with slim.arg_scope(ssd_net.arg_scope(data_formatdata_format)):predictions, localisations, _, _ ssd_net.net(image_4d, is_trainingFalse, reusereuse)# Restore SSD model.
ckpt_filename E:\gitcode\ssd\chde222-SSD-Tensorflow-master\SSD-Tensorflow\checkpoints/ssd_300_vgg.ckpt
# ckpt_filename ../checkpoints/VGG_VOC0712_SSD_300x300_ft_iter_120000.ckpt
isess.run(tf.global_variables_initializer())
saver tf.train.Saver()
saver.restore(isess, ckpt_filename)# SSD default anchor boxes.
ssd_anchors ssd_net.anchors(net_shape)# ## Post-processing pipeline
#
# The SSD outputs need to be post-processed to provide proper detections. Namely, we follow these common steps:
#
# * Select boxes above a classification threshold;
# * Clip boxes to the image shape;
# * Apply the Non-Maximum-Selection algorithm: fuse together boxes whose Jaccard score threshold;
# * If necessary, resize bounding boxes to original image shape.# In[7]:# Main image processing routine.
def process_image(img, select_threshold0.5, nms_threshold.45, net_shape(300, 300)):# Run SSD network.rimg, rpredictions, rlocalisations, rbbox_img isess.run([image_4d, predictions, localisations, bbox_img],feed_dict{img_input: img})# Get classes and bboxes from the net outputs.rclasses, rscores, rbboxes np_methods.ssd_bboxes_select(rpredictions, rlocalisations, ssd_anchors,select_thresholdselect_threshold, img_shapenet_shape, num_classes21, decodeTrue)rbboxes np_methods.bboxes_clip(rbbox_img, rbboxes)rclasses, rscores, rbboxes np_methods.bboxes_sort(rclasses, rscores, rbboxes, top_k400)rclasses, rscores, rbboxes np_methods.bboxes_nms(rclasses, rscores, rbboxes, nms_thresholdnms_threshold)# Resize bboxes to original image shape. Note: useless for Resize.WARP!rbboxes np_methods.bboxes_resize(rbbox_img, rbboxes)return rclasses, rscores, rbboxes# In[21]:# Test on some demo image and visualize output.
path E:/gitcode/ssd/chde222-SSD-Tensorflow-master/SSD-Tensorflow/demo/
image_names sorted(os.listdir(path))img mpimg.imread(path image_names[-1])
rclasses, rscores, rbboxes process_image(img)# visualization.bboxes_draw_on_img(img, rclasses, rscores, rbboxes, visualization.colors_plasma)
visualization.plt_bboxes(img, rclasses, rscores, rbboxes)
运行结果 参考自https://blog.csdn.net/hezuo1181/article/details/91380182