image-classification.py 1008 B

123456789101112131415161718192021222324252627
  1. import numpy as np
  2. import time
  3. import cv2
  4. caffe_root = '/home/ubuntu/caffe/'
  5. image = cv2.imread('/home/ubuntu/caffe/examples/images/cat.jpg')
  6. labels_file = caffe_root + 'data/ilsvrc12/synset_words.txt'
  7. prototxt = caffe_root + 'models/bvlc_reference_caffenet/deploy.prototxt'
  8. model = caffe_root + 'models/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel'
  9. // load the labels file
  10. rows = open(labels_file).read().strip().split("\n")
  11. classes = [r[r.find(" ") + 1:].split(",")[0] for r in rows]
  12. blob = cv2.dnn.blobFromImage(image,1,(224,224),(104,117,123))
  13. print("[INFO] loading model...")
  14. net = cv2.dnn.readNetFromCaffe(prototxt,model)
  15. net.setPreferableBackend(cv2.dnn.DNN_BACKEND_INFERENCE_ENGINE)
  16. net.setPreferableTarget(cv2.dnn.DNN_TARGET_CPU)
  17. # set the blob as input to the network and perform a forward-pass to
  18. # obtain our output classification
  19. net.setInput(blob)
  20. start = time.time()
  21. preds = net.forward()
  22. end = time.time()
  23. print("[INFO] classification took " + str((end-start)*1000) + " ms")