0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

手把手带你玩转—i.MX8MP开发板移植官方NPU TensorFlow例程

飞凌嵌入式 2022-01-10 16:32 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

作者|donatello1996

来源 | 电子发烧友

题图|飞凌嵌入式

飞凌嵌入式OKMX8MP-C开发板基于NXP i.MX 8M Plus处理器开发设计,该系列处理器专注于机器学习与视觉、高级多媒体以及具有高可靠性的工业自动化。旨在满足智慧城市、工业互联网、智能医疗、智慧交通等应用的需求。强大的四核或双核Arm Cortex-A53处理器,主频高达1.6GHz,带有神经处理单元(NPU),最高运行速率可达2.3TOPS。

本文采用的硬件板卡为飞凌嵌入式OKMX8MP-C开发板,系统版本Linux5.4.70+Qt5.15.0,主要介绍移植官方NPU TensorFlow例程。

一、NPU的图像识别例程

在OKMX8MP-C 开发板提供的产品使用手册中,有一章是针对板上NPU的图像识别例程,位于EMMC分区的/usr/bin/tensoRFlow-lite-2.3.1/examples,我将EMMC分区mount为了/media分区,找到对应的例程位置。

4a5dff88-6fd6-11ec-86cf-dac502259ad0.jpg

4a914f64-6fd6-11ec-86cf-dac502259ad0.jpg

切换到EMMC启动,进入/usr/bin/tensorflow-lite-2.3.1/examples/目录下,运行测试example:

4ad0b01e-6fd6-11ec-86cf-dac502259ad0.jpg


再切回TF卡系统运行,提示报错,label_image程序的nnapi需要动态链接库支持:

4af9867e-6fd6-11ec-86cf-dac502259ad0.jpg

libm-2.30.solibneuralnetworks.so.1.1.9libnnrt.so.1.1.9libArchModelSw.solibGAL.solibNNArchPerf.solibOpenVX.so.1.3.0libovxlib.so.1.1.0libVSC.so

其中libm-2.30.so被链接为ld-linux-aarch64.so.1,位于/usr/lib/aarch64-linux-gnu/目录下,若在移植后的目标系统的/usr/lib/aarch64-linux-gnu/下没有该库文件的话,是会在运行时提示报错的。将上述所有动态链接库复制到正确位置(/usr/lib和/usr/lib/aarch64-linux-gnu/),再次运行:


4b47624a-6fd6-11ec-86cf-dac502259ad0.jpg


可以看到没有任何报错,运行库环境移植成功,接下来可以愉快地进行tensorflow例程的玩耍了。

二、TensorFlow例程验证

先用飞凌嵌入式官方DEMO做一下验证,其验证结果如下。

0.780392: 653 military unIForm0.105882: 907 Windsor tie0.0156863: 458 bow tie0.0117647: 466 bulletproof vest0.00784314: 835 suit

78%结果吻合陆军制服,10%结果吻合温莎领带,1%结果吻合领结,1%结果吻合防弹背心,不到1%结果吻合西装,总的来说这个结果还是挺令人满意的,NPU的算力确实还可以,多次运行程序,得出的结果完全相同,说明NPU计算时使用的是固定的/静态的图像识别库。

我这边突发奇想,用这个Demo去测一下我自己的论坛头像,看看结果:

4bbc2422-6fd6-11ec-86cf-dac502259ad0.jpg

0.352941: 274 dingo0.254902: 265 Cardigan0.184314: 264 Pembroke0.0666667: 163 beagle0.0156863: 354 gazelle

35%的野狗,25%的毛衣,18%的Pembroke???,6%的小猎犬(beagle),1%的羚羊,看到羚羊(gazelle)我属实蚌埠住了,哈哈。

再来试试另外几张图片,为了检验这NPU的人工智能算力到底行不行,集齐十张图,豪华尊享。由于源码不开放,所以无法移植源码到自己的例程中:

4be37144-6fd6-11ec-86cf-dac502259ad0.jpg

0.160784: 639 maillot0.137255: 436 bathtub0.117647: 886 velvet0.0705882: 586 hair spray0.0509804: 440 bearskin

4c0de8c0-6fd6-11ec-86cf-dac502259ad0.jpg

0.972549: 644 mask0.00392157: 918 comic book0.00392157: 904 wig0.00392157: 797 ski mask0.00392157: 732 plunger

4c35b6fc-6fd6-11ec-86cf-dac502259ad0.jpg

0.380392: 583 grocery store0.321569: 957 custard apple0.0862745: 955 banana0.0352941: 956 jackfruit0.027451: 954 pineapple

4c616d38-6fd6-11ec-86cf-dac502259ad0.jpg

0.254902: 918 comic book0.0470588: 771 running shoe0.0470588: 474 can opener0.0470588: 412 apron0.0392157: 794 shower cap

4c942cdc-6fd6-11ec-86cf-dac502259ad0.jpg

0.52549: 922 book jacket0.0705882: 788 shield0.0705882: 452 bolo tie0.0588235: 627 lighter0.0352941: 701 paper towel

4cd8d314-6fd6-11ec-86cf-dac502259ad0.jpg

0.121569: 656 miniskirt0.054902: 835 suit0.0470588: 852 television0.0470588: 440 bearskin0.0392157: 679 neck brace

4d08fbfc-6fd6-11ec-86cf-dac502259ad0.jpg

0.65098: 918 comic book0.172549: 747 puck0.0196078: 922 book jacket0.0196078: 723 ping-pong ball0.0117647: 806 soccer ball

4d3f4176-6fd6-11ec-86cf-dac502259ad0.jpg

0.678431: 918 comic book0.0784314: 418 balloon0.0470588: 880 umbrella0.0470588: 722 pillow0.0156863: 644 mask

4d721452-6fd6-11ec-86cf-dac502259ad0.jpg

0.184314: 585 hair slide0.156863: 794 shower cap0.0941176: 797 ski mask0.0431373: 644 mask0.0352941: 571 gasmask

十张图片的识别结果均以编码方式呈现,从识别的概率结果来看,OKMX8MP-C开发板的NPU的算力还是非常强的。

据官方介绍,i.MX 8M Plus处理器内置NPU,可达到2.3 TOPS(Tera Operations Per Second,1TOPS代表处理器每秒钟可进行一万亿次操作)算术处理,并实现先进的AI算法处理。并且NXP为i.MX 8M Plus处理器的NPU提供了一些特定用例,例如能够处理40,000多个英文单词,MobileNet v1模型可以每秒处理超过500张图像的图像分类。

作者简介

donatello1996,某大型企业资深嵌入式工程师,电子发烧友论坛技术大牛,同时也是飞凌嵌入式多年铁粉,曾基于飞凌多款板卡产出过优质测评文章或使用心得。本期三篇文章为donatello1996在使用OKMX8MP-C开发板过程中精心产出的干货,在此对donatello1996表示感谢。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 开发板
    +关注

    关注

    25

    文章

    6122

    浏览量

    113317
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    既要稳定性,还要性价比的工业级开发板 — 米尔i.MX91

    之前我介绍过NXPi.MX8系列的开发板,最近它的下一代产品i.MX9系列产品也有了,我就拿到了这个基于NXPi.MX9系列的米尔MYD-LMX91
    的头像 发表于 11-20 08:05 755次阅读
    既要稳定性,还要性价比的工业级<b class='flag-5'>开发板</b> — 米尔<b class='flag-5'>i.MX</b>91

    迅为Hi3403开发板极速启航 | 手把手带你玩转核心例程,轻松上手AI视觉!

    迅为Hi3403开发板极速启航 | 手把手带你玩转核心例程,轻松上手AI视觉!
    的头像 发表于 11-19 13:56 1270次阅读
    迅为Hi3403<b class='flag-5'>开发板</b>极速启航 | <b class='flag-5'>手把手</b><b class='flag-5'>带你</b><b class='flag-5'>玩转</b>核心<b class='flag-5'>例程</b>,轻松上手AI视觉!

    【迅为RK3568开发板NPU实战】别再闲置你的NPU手把手教你玩转RKNN-Toolkit2 的使用

    【迅为RK3568开发板NPU实战】别再闲置你的NPU手把手教你玩转RKNN-Toolkit2 的使用
    的头像 发表于 11-11 14:21 541次阅读
    【迅为RK3568<b class='flag-5'>开发板</b><b class='flag-5'>NPU</b>实战】别再闲置你的<b class='flag-5'>NPU</b>!<b class='flag-5'>手把手</b>教你<b class='flag-5'>玩转</b>RKNN-Toolkit2 的使用

    【RK3568 NPU实战】别再闲置你的NPU手把手带你用迅为资料跑通Android AI检测Demo,附完整流程与效果

    【RK3568 NPU实战】别再闲置你的NPU手把手带你用迅为资料跑通Android AI检测Demo,附完整流程与效果
    的头像 发表于 11-10 15:58 864次阅读
    【RK3568 <b class='flag-5'>NPU</b>实战】别再闲置你的<b class='flag-5'>NPU</b>!<b class='flag-5'>手把手</b><b class='flag-5'>带你</b>用迅为资料跑通Android AI检测Demo,附完整流程与效果

    迅为RK3568开发板 V2.0嵌入式学习开发硬核赋能,开发体验全面进化

    基础到进阶完整覆盖•手把手带你玩转开发板文档全新升级•开发指南重制版发布•内容更详实,讲解更透彻【技术全景覆盖】驱动
    的头像 发表于 10-23 15:57 256次阅读
    迅为RK3568<b class='flag-5'>开发板</b> V2.0嵌入式学习<b class='flag-5'>开发</b>硬核赋能,<b class='flag-5'>开发</b>体验全面进化

    北京迅为itop-3588八核开发板瑞芯微NPU例程测试LPRNet车牌识别

    北京迅为itop-3588八核开发板瑞芯微NPU例程测试LPRNet车牌识别
    的头像 发表于 07-23 14:14 1051次阅读
    北京迅为itop-3588八核<b class='flag-5'>开发板</b>瑞芯微<b class='flag-5'>NPU</b><b class='flag-5'>例程</b>测试LPRNet车牌识别

    北京迅为itop-3588开发板NPU例程测试deeplabv3 语义分割

    北京迅为itop-3588开发板NPU例程测试deeplabv3 语义分割
    的头像 发表于 07-22 15:51 815次阅读
    北京迅为itop-3588<b class='flag-5'>开发板</b><b class='flag-5'>NPU</b><b class='flag-5'>例程</b>测试deeplabv3 语义分割

    RT-Thread Nano硬核移植指南:手把手实现VGLite图形驱动适配 | 技术集结

    VGLite是NXP提供的轻量级2D图形API,本文将手把手带你实现VGLite图形驱动适配RT-Thread。文章分为上、下两篇,将手把手教您移植。上篇对RT-ThreadNano内
    的头像 发表于 07-17 14:40 3041次阅读
    RT-Thread Nano硬核<b class='flag-5'>移植</b>指南:<b class='flag-5'>手把手</b>实现VGLite图形驱动适配 | 技术集结

    迅为高情性6TOPS算力的RK3576开发板NPU rknn-model-zoo例程演示

    迅为RK3576开发板NPU rknn-model-zoo例程演示
    的头像 发表于 07-01 14:54 1427次阅读
    迅为高情性6TOPS算力的RK3576<b class='flag-5'>开发板</b><b class='flag-5'>NPU</b> rknn-model-zoo<b class='flag-5'>例程</b>演示

    迅为RK3576开发板NPU例程测试-rknn-toolkit2环境搭建和使用

    迅为RK3576开发板NPU例程测试-rknn-toolkit2环境搭建和使用
    的头像 发表于 06-17 13:46 1275次阅读
    迅为RK3576<b class='flag-5'>开发板</b><b class='flag-5'>NPU</b><b class='flag-5'>例程</b>测试-rknn-toolkit2环境搭建和使用

    正点原子Linux系列全新视频教程来啦!手把手教你MP257开发板,让您轻松入门!

    正点原子Linux系列全新视频教程来啦!手把手教你MP257开发板,让您轻松入门! 一、视频观看 正点原子手把手教你学STM32MP257
    发表于 05-16 10:42

    将Deepseek移植i.MX 8MP|93 EVK的步骤

    测试了不同模型对不同电路的影响。需要注意的是,限制模型在电路上运行的最大障碍是内存。包括 CPU 和内存使用情况在内的测试结果如下: a. i.MX8mp 深度搜索-r1-蒸馏
    发表于 03-26 06:08

    恩智浦推出FRDM i.MX 93开发板

    备受嵌入式开发者青睐的恩智浦FRDM开发平台,迎来了一位新成员——FRDM i.MX 93开发板,这也是第一块配备i.MX MPU的FRDM
    的头像 发表于 02-21 14:22 2915次阅读

    强悍的I.MX8MP核心

    在当今的嵌入式系统开发领域,一款性能卓越且尺寸小巧的核心能够为众多项目带来极大的便利。今天,我们就来深入探讨一下 MYZR新款I.MX8MP 核心,看看它究竟有哪些独特之处。 一、
    的头像 发表于 02-13 17:05 663次阅读

    2.3T算力,真的强!1分钟学会NPU开发,基于NXP i.MX 8MP平台!

    潜力。     i.MX 8M Plus NPU特性 i.MX 8M Plus的NPU支持INT
    的头像 发表于 01-24 10:21 978次阅读
    2.3T算力,真的强!1分钟学会<b class='flag-5'>NPU</b><b class='flag-5'>开发</b>,基于NXP <b class='flag-5'>i.MX</b> <b class='flag-5'>8MP</b>平台!