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