Advertisement
Guest User

rknn_classify_image.py

a guest
Sep 8th, 2024
43
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.60 KB | Source Code | 0 0
  1. import numpy as np
  2. import time
  3. from PIL import Image
  4. from rknnlite.api import RKNNLite
  5.  
  6. def load_labels(label_file):
  7.     labels = {}
  8.     with open(label_file, 'r') as f:
  9.         for index, line in enumerate(f.readlines()):
  10.             labels[index] = line.strip()
  11.     return labels
  12.  
  13. if __name__ == '__main__':
  14.     labels = load_labels('labels.txt')
  15.  
  16.     rknn_lite = RKNNLite(verbose=False)
  17.  
  18.     print('--> Loading RKNN model')
  19.     ret = rknn_lite.load_rknn('./mobilenet_v2_1.0_224_inat_bird_quant.rknn')
  20.     if ret != 0:
  21.         print('Load RKNN model failed!')
  22.         exit(ret)
  23.     print('done')
  24.  
  25.     print('--> Init runtime environment')
  26.     ret = rknn_lite.init_runtime(core_mask=RKNNLite.NPU_CORE_ALL)
  27.     if ret != 0:
  28.         print('Init runtime environment failed!')
  29.         exit(ret)
  30.     print('done')
  31.  
  32.     image = Image.open('parrot.jpg')
  33.     size = (224, 224)
  34.     image = image.convert('RGB').resize(size, Image.LANCZOS)
  35.  
  36.     image_data = np.asarray(image, dtype=np.uint8)
  37.     image_data = np.expand_dims(image_data, axis=0)
  38.  
  39.     print('-----INFERENCE TIME-----')
  40.     for _ in range(100):
  41.         start = time.perf_counter()
  42.         outputs = rknn_lite.inference(inputs=[image_data])
  43.         inference_time = time.perf_counter() - start
  44.         print('%.1fms' % (inference_time * 1000))
  45.    
  46.     print('-------RESULTS--------')
  47.     predictions = outputs[0].squeeze()
  48.     max_index = np.argmax(predictions)
  49.     max_prob = predictions[max_index]
  50.  
  51.     predicted_label = labels.get(max_index, "Unknown")
  52.     print(f'{predicted_label}: {max_prob:.5f}')
  53.  
  54.     rknn_lite.release()
  55.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement