xref: /OK3568_Linux_fs/external/rknn-toolkit2/examples/functions/hybrid_quant/step2.py (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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