• 01. 嵌入式与人工智能是如何结合的?


    在这里插入图片描述
    CPU是Arm A57的
    GPU是128cuda核

    一.小车跟踪的需求和设计方法

    比如有一个小车跟踪的项目。
    需求是:小车识别出罪犯,然后去跟踪他。
    
    • 1
    • 2
    方法:摄像头采集到人之后传入到开发板,内部做一下识别,然后控制小车去跟随。
    
    • 1
    在人工智能算法上:
    先目标检测,找到人脸
    然后目标识别,把人脸与库中人脸比对
    然后目标追踪,运动轨迹预测。防止重新检测和识别。
    
    • 1
    • 2
    • 3
    • 4

    二.嵌入式设备上的运算流程

    模型存在 Flash卡(类似硬盘,永久存储)上面。
    
    运行的时候把数据搬到内存里面,速度比flash快很多。现在的手机都是 Flash + 内存。
    
    AI模型师放到Flash硬盘里的,然后加载到内存,内存再加载到GPU。
    
    • 1
    • 2
    • 3
    • 4
    • 5

    三.算法的部署流程

    3.1 剪枝、蒸馏、量化

    要把模型在板子上快速运行。
    先把模型压缩,减少运算量。
    表现为:剪枝、蒸馏、量化
    
    • 1
    • 2
    • 3
    剪枝:去掉权重很低的神经元。
    蒸馏:找个比较大的模型去训练,蒸馏出比较关键的分布,再用小模型基于这个分布训练。
    量化:对模型运算的时候,很多都是浮点数,有的场合不需要这么这么长的精度。
    
    • 1
    • 2
    • 3

    3.2 TensorRT 推理加速

    英伟达提出的,其它公司可能有自己的工具。
    
    推理加速可以提升到10-100秒。
    
    • 1
    • 2
    • 3

    3.3 cuda并发编程

    基于硬件层的优化
    如果对上面的速度还不满意,可以使用cuda并发编程。
    
    • 1
    • 2
    网上有岗位叫GPU工程师。
    怎么使GPU效率最高,读进来的时候有延迟,类似于调度算法,你看看怎么分配,使他们的时间衔接最好。个性化定制。
    CPU负责任务调度,数据都是存在flash上面的。
    
    • 1
    • 2
    • 3

    CPU构造:
    在这里插入图片描述

    运算的时候CPU将内存中的数据搬到cache中,cache的速度比内存块。
    再通过控制器把cache的数据放到ALU运算单元中去,cpu的运算单元比较少。
    
    • 1
    • 2

    GPU构造

    128 cuda核的GPU就是有128个ALU运算单元
    816=128。
    每一行是一组,每组都有控制单元和Cache。这八组可以并行计算。
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    CPU是牛人,可以处理复杂逻辑。
    GPU是人多力量大,适合逻辑简单,工作内容很多的工作。
    
    • 1
    • 2

    四.补充知识

    4.1 NVIDIA Jetson Nano开发板

    NVIDIA Jetson Nano开发板:
    NVIDIA Jetson Nano是一款基于ARM架构的高性能开发板,
    它具有强大的计算能力、多种外设接口和易于使用的编程环境,
    适用于各种人工智能和嵌入式系统开发。
    
    • 1
    • 2
    • 3
    • 4
    前段时间英伟达发布了一款开发板 Jetson Nano, 价格只需$99,相当于3个树莓派或者一个RK3399, 性能却完爆它们。
    
    相对于树莓派,RK3399, NanoPi, OrangePi等开发板,Jetson Nano 有以下优点:
    
    强大的GPU用于机器学习。这是最重要的功能,其他开发板所不能比的!
    兼容树莓派周边设备。
    支持TensorFlow, Pytorch等众多机器学习框架。
    预装Ubuntu18, 内置Cuda, Opencv等,做机器视觉很方便。也可以作为ROS开发平台。
    便宜。和TX1, TX2相比,Nano便宜太多,学生也能负担得起。
    超小。核心板非常小,加上底板也只比树莓派大一圈而已。嵌入机器人更方便。
    CPU是A57(树莓派A53)
    内存是4G(树莓派1G),并且Nano是外置内存,说不定可以升级为8G, 16G?
    外置无线网卡M2接口,可接千兆无线网卡(树莓派的板载无线,那个PCB天线速度慢的一笔,怎么传4K视频?)
    4*USB3.0(树莓派4*USB2.0)
    总的来说,这款开发板物超所值,性价比非常高,树莓派能干的 Jetson Nano 也能干,树莓派不能干的事情,Jetson Nano 反而更擅长(GPU加速),还有什么理由不入坑。
    
    英伟达为了让更多开发者轻松入门 Jetson Nano, 开发Jetbot机器人,并在发布会上进行了演示。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    4.2 ARM处理器架构

    Advanced RISC Machine,广泛应用于嵌入式机器的处理器设计。
    
    ARM处理器具有高性能MPU和多种并行控制单元和通信接口,
    构成支持多种应用的强大架构,广泛应用于消费性电子产品、电脑外设、
    甚至导弹的弹载计算机等军用设施。
    
    • 1
    • 2
    • 3
    • 4
    • 5

    参考链接

    https://www.bilibili.com/video/BV19m4y1978f/?spm_id_from=333.999.top_right_bar_window_history.content.click&vd_source=ebc47f36e62b223817b8e0edff181613

  • 相关阅读:
    关于 Angular 里 module 和 Component 包含粒度的一个讨论
    【HAL库】STM32CubeMX开发----STM32F407----CAN通信实验
    算法与数据结构 --- 串,数组与广义表 --- 数组
    基于灰狼算法GWO优化BP神经网络实现温度数据预测算法研究附matlab代码
    文件服务器审核
    2021-06-11 51蛋骗鸡用小数点作秒指示,分钟计时.(怎么用二个数码管做分的倒计时,DP亮灭来计秒)
    UseGalaxy.cn生信云|生物信息必备技能-出版级别的circos圈图绘制
    md-editor-v3 markdown编辑器
    0022__STM32F103正点原子学习笔记系列——DMA
    Web前端开发——新年倒计实时刷新
  • 原文地址:https://blog.csdn.net/qq_42864343/article/details/134084363