• 迅为RK3588开发板使用 tflite 框架


    1 TensorFlow Lite 是 TensorFlow 移动和嵌入式设备轻量级解决方案。它使设备机器学习具有低延迟和更小的二进制体积。TensorFlow Lite 同时支持 Android 神经网络 API 的硬件加速。

    TensorFlow Lite 使用多项技术降低延迟,例如移动 app 内核优化、pre-fused 激活、允许更快更小(定点)模型的量化内核。

    2 现在选择 tflite 作为我们的人工智能框架。输入以下命令:

    cd examples/tflite

    3 MobileNet 是基于深度级可分离卷积构建的网络,其实这种结构最早是出现在 GoogleNet v3的 inception 中,它是将标准卷积拆分为了两个操作:深度卷积(depthwise convolution) 和逐点

    卷积(pointwise convolution),Depthwise convolution 和标准卷积不同,对于标准卷积其卷积核是用在所有的输入通道上(input channels),而 depthwise convolution 针对每个输入通道采用不同的卷积核,就是说一个卷积核对应一个输入通道,所以说 depthwise convolution 是 depth级别的操作。我们选择 mobilenet_v1 做进一步的测试,输入以下命令:

    cd mobilenet_v1

    4 打开 test.py,确认使用板载 npu 推理识别图片

    vi test.py

    修改 test.py 文件,我们修改对应的平台为 rk3588,修改如下所示,“-”代表需要删除的内容,“+” 代表需要新增的内容。

    if __name__ == '__main__':

    # Create RKNN object - rknn = RKNN(verbose=True)

    + rknn = RKNN()

    # Pre-process config

    print('--> Config model')

    - rknn.config(mean_values=[128, 128, 128], std_values=[128, 128, 128])

    + rknn.config(mean_values=[128, 128, 128], std_values=[128, 128, 128], target_platform='rk3588')

    print('done')

    # Load model

    @@ -62,7 +62,7 @@ if __name__ == '__main__':

    # Init runtime environment

    print('--> Init runtime environment')

    - ret = rknn.init_runtime()

    + ret = rknn.init_runtime(target='rk3588')

    if ret != 0:

    print('Init runtime environment failed!')

    exit(ret)

    修改完,保存文件并退出。

    5 进入到 examples/tflite/mobilenet_v1 文件夹,输入以下命令,执行模型转换和推理模型的test.py 脚本。

    python3 test.py

    6 运行结果如下图所示。TOP5 记录了推理结果,其中概率最高也就是 0.935,对应第 156 个标签的物体

    更多文档可以查看

    B站搜索-北京迅为RK3568开发板,

    公众Hao关注:北京迅为,

  • 相关阅读:
    别看了,这就是你的题呀(四)
    云计算项目九:K8S安装
    【MicroPython RP2040】通过ADC调节PWM输出示例
    Liunx 下Jenkins工作目录迁移
    css旋转小球
    C语言——运算符
    分享一个项目:go `file_line`,在编译期得到源码行号,减少运行期runtime消耗
    微信小程序+Springboot实现宠物医院管理系统
    MVCC-数据库
    C/C++中的静态变量注意事项(很多人都会踩坑,甚至现在还不明白)
  • 原文地址:https://blog.csdn.net/mucheni/article/details/133746316