1import numpy as np 2import cv2 3from rknn.api import RKNN 4from ssd_post_process import ssd_post_process 5 6if __name__ == '__main__': 7 8 # Create RKNN object 9 rknn = RKNN(verbose=True) 10 11 # Build model 12 print('--> hybrid_quantization_step2') 13 ret = rknn.hybrid_quantization_step2(model_input='./ssd_mobilenet_v2.model', 14 data_input='./ssd_mobilenet_v2.data', 15 model_quantization_cfg='./ssd_mobilenet_v2.quantization.cfg') 16 if ret != 0: 17 print('hybrid_quantization_step2 failed!') 18 exit(ret) 19 print('done') 20 21 # Export rknn model 22 print('--> Export rknn model') 23 ret = rknn.export_rknn('./ssd_mobilenet_v2.rknn') 24 if ret != 0: 25 print('Export rknn model failed!') 26 exit(ret) 27 print('done') 28 29 # Accuracy analysis 30 print('--> Accuracy analysis') 31 ret = rknn.accuracy_analysis(inputs=['./dog_bike_car_300x300.jpg'], output_dir=None) 32 if ret != 0: 33 print('Accuracy analysis failed!') 34 exit(ret) 35 print('done') 36 37 # Set inputs 38 img = cv2.imread('./dog_bike_car_300x300.jpg') 39 img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) 40 41 # Init runtime environment 42 print('--> Init runtime environment') 43 ret = rknn.init_runtime() 44 if ret != 0: 45 print('Init runtime environment failed!') 46 exit(ret) 47 print('done') 48 49 # Inference 50 print('--> Running model') 51 outputs = rknn.inference(inputs=[img]) 52 np.save('./functions_hybrid_quant_0.npy', outputs[0]) 53 np.save('./functions_hybrid_quant_1.npy', outputs[1]) 54 ssd_post_process(np.reshape(outputs[0], (-1)), np.reshape(outputs[1], (-1)), './dog_bike_car_300x300.jpg', './') 55 print('done') 56 57 rknn.release() 58