基于STM32的AI产品运营必知的软硬件技术分析

本文主要从5个方面,详细阐述AI产品运营必知的软硬件技术。智能软硬件的开发流程介绍四、以智能家居的智能软硬件产品实战为例本节以智能家居整体结构设计、芯片选型、模块设计实战经验为例讲一遍智能软硬件产品的打造流程。

基于STM32的AI产品运营必知的软硬件技术分析

一、AI产品运营基本关系梳理 1、智能软硬件、软硬件

人工智能产品中不存在纯粹分离的软件和硬件。 产品经理尤其应该系统地看待,将软件和硬件视为AI赋能的智能软硬件。

举个例子:单片机一般被认为是硬件,但是如果我们看Arduino这个单片机,Arduino板上的单片机可以通过Arduino编程语言进行编程,编译成二进制文件,烧录到单片机中。 程序本身是软件的一部分。 其他AI产品组件也类似,如STM32、Rockchip 3288等。

单片机只是一个例子。 目前的大量数据无法通过单片机来处理。 AI不仅仅运行在单片机上,还可以运行在X86上,也可以运行在服务器端。

在AI中,软件相当于人脑,硬件相当于人体! 所以没有软件和硬件就没有灵魂,没有硬件和软件就没有身体! 目前,AI硬件主要用于收集数据、提供算力!

2. 算法和数据

有人说算法重要,因为它体现了技术水平和驾驭数学知识的能力; 有人说,没有数据,数据才重要。 算法如何得出结果? 事实上,线联和工程院院士杨善林的学生经过讨论后发现,算法和数据是鱼和鱼。 水的关系。 AI时代的算法与传统算法的区别在于,AI算法是对人脑的模拟,是智能的一种。

人工智能以大量样本数据为基础,利用神经网络算法训练数据,建立输入数据与输出数据之间的映射关系。 它最直接的应用是分类和识别。 例如:训练样本的输入是语音数据,神经网络训练后实现的功能就是语音识别。 如果训练样本的输入是人脸图像数据,则训练后实现的功能就是人脸识别。

AI算法让解决问题的步骤变得智能化,数据让算法得到训练,实现算法构建的商业模型!

3. 服务器端和应用程序端

服务器端和应用程序端是相对的。

开发应用程序来调整操作系统的API。 操作系统的API包括(创建线程、读写文件【读、写、偏移到指定地址】、网络通信、图形渲染)。 那么操作系统就是应用程序的服务器端。

在编写常规的小程序或APP时,前端用户界面上所需的数据是通过WEB程序调用浏览器功能接口,然后OS向后台服务器发送请求来传输数据。

另外,Web程序员和底层嵌入式程序员理解的服务器端和应用程序端之间也存在差异。 这里产品经理只需要了解这个关系就可以了。 最底层的服务器端是功能的实现者,上层的应用程序端是功能的使用者。 这种关系有利于产品开发过程中的需求时序规划。

AI产品经理了解基本关系,可以更好地协调资源,补充团队短板,提高产品生命周期效率!

2、站在硬件的肩膀上,为硬件赋能。

智能软硬件是指通过硬件和软件相结合对设备进行智能化创建或改造。 智能软硬件移动应用是通过应用程序与智能硬件连接的软件。 操作和开发简单。 各种应用层出不穷,也是企业获取用户的重要入口。 例如:新零售店、智能售货机等!

创造和改造的物体可能是电子设备,比如手表、电视等电器; 它们也可能是以前非电子化的设备,比如门锁、茶杯、汽车,甚至房屋。

智能软硬件已从可穿戴设备扩展到智能电视、智能家居、智能汽车、医疗健康、智能玩具、机器人等领域。 典型的智能软硬件有Google Glass、三星Gear、FitBit、麦凯水杯、咕咚手环、特斯拉、无屏电视等。

1、智能软硬件特点

信息采集与交互智能软硬件集成

2、智能硬件的组成

(1) 传感器

传感器是一种能够感知被测量信息,并按照一定规则将感知到的信息转换成电信号或其他所需形式的信息输出的检测装置,以满足信息传输、处理、存储和显示的需要。 、记录和控制要求。

例如:用于检测距离的声波传感器、用于查找轨迹的红外传感器、用于通信的蓝牙、NB-IoT传感器等!

(2) 控制器

控制器是指按预定顺序改变主电路或控制电路的接线,改变电路中的电阻值,以控制电动机的起动、调速、制动和反转的主控装置。

由程序计数器、指令寄存器、指令译码器、时序发生器和运算控制器组成,是发出命令的“决策机构”,即完成整个计算机系统运行的协调和指挥。 例如:具有通用功能的称为MCU,具有复合功能的称为操作系统OS!

首先,控制器在智能硬件中一般被称为芯片。 AI和CPU在架构和功能特性上存在非常大的差异。

所有运行在传统CPU上的软件都是由程序员编写并完成扎实的功能操作。 其计算过程主要体现在指令的执行上。 但与传统计算模型不同的是,人工智能模仿人脑的神经网络,从最基本的单元模拟人脑的运行机制。 它不需要人工提取特征来解决问题,也不需要总结规则来进行编程。

人工智能一般包括机器学习和深度学习,但机器学习和深度学习都需要构建算法和模型来实现对数据样本的重复运算和训练,减少了对人工理解功能原理的要求。

因此,AI芯片需要具备高性能并行计算能力,能够支持当前各种人工神经网络算法。 传统CPU由于计算能力较弱,无法支持深度学习中海量数据的并行运算,且其串行内部结构设计架构旨在通过软件编程实现设定功能,不适合人工神经网络算法的自主迭代。 手术。

传统的CPU架构往往需要数百甚至数千条指令来完成一个神经元的处理,但在AI芯片上可能只需要一条指令。

其次,解读主流人工智能芯片。

AI的高级阶段是深度学习,深度学习过程可以分为训练和推理两个环节。

训练过程通常需要大量的数据输入或强化学习等无监督学习方法来训练复杂的深度神经网络模型。 由于训练过程涉及海量的训练数据和复杂的深度神经网络结构,需要非常大的计算规模。 GPU集群训练通常需要几天甚至几周的时间。 在训练过程中,GPU目前扮演着难以轻易替代的角色。

推理环节是指利用训练好的模型,利用新的数据来“推理”出各种结论。 例如,视频监控设备在后台使用深度神经网络模型来判断捕获的人脸是否属于黑名单。 虽然推理阶段的计算量比训练阶段少,但仍然涉及大量的矩阵运算。

在推理过程中,除了使用CPU或GPU进行计算外,FPGA和ASIC都可以发挥主要作用。 目前主流的人工智能芯片基本都是基于GPU、FPGA、ASIC和类脑芯片。

FPGA:

即专用集成电路,集成了大量基本门电路和存储器的芯片。 这些门电路和存储器之间的连接可以通过烧录到FPGA配置文件中来定义,以实现特定的功能。 而且烧入的内容是可配置的,通过配置特定的文件可以将FPGA转变为不同的处理器,就像可以重写的白板一样。

FPGA具有低延迟的特点,非常适合支持推理过程中海量的用户实时计算请求,比如语音识别,比如2017年LineLian打造的裸眼3D试衣镜所使用的芯片。

由于FPGA适合低延迟的流式计算密集型任务处理,意味着FPGA芯片可以对大量用户进行高并发的云端推理。 与GPU相比,它们具有计算延迟更低的优势,可以提供更好的消费者体验。 。 该领域主流厂商包括英特尔、亚马逊、百度、微软和阿里云。

专用集成电路:

即专用集成电路、不可配置、高度定制的专用芯片。 其特点是需要大量的研发投入。 如果出货量不能保证,单芯片的成本就很难降低。 而且,芯片的功能一旦流片,就没有改动的余地。 如果深度学习的市场方向发生变化,ASIC 的初始投资将无法收回,这意味着 ASIC 具有较大的市场风险。 但ASIC作为专用芯片,其性能比FPGA更高。 如果能够实现高出货量,其单体成本可以远低于FPGA。

谷歌推出的TPU是一款用于深度学习加速的ASIC芯片,TPU被安装到AlphaGo系统中。 不过,谷歌推出的第一代TPU只能用于推理,不能用于训练模型。 不过,随着TPU2.0的发布,新一代TPU不仅可以支持推理,还可以在训练过程中高效支持深度网络加速。

根据Google披露的测试数据,在Google自家深度学习翻译模型的实践中,如果在32个顶级GPU上并行训练,需要一整天的训练时间,而在TPU2.0上,则需要八分之一的时间。一个TPUPod(TPU集群,每64个TPU组成一个Pod)可以在6小时内完成相同的训练任务。

图形处理器:

那就是图形处理器。 它最初是一种微处理器,用于在个人计算机、工作站、游戏机和一些移动设备上运行图形操作。 它可以快速处理图像上的每个像素。 后来科学家发现它对海量数据进行并行运算的能力与深度学习的需求不谋而合,因此最早被引入深度学习。

选择 GPU 作为超级计算硬件的原因是,最苛刻的计算问题非常适合并行执行。 一个典型的例子是深度学习,这是人工智能 (AI) 最先进的领域。

深度学习基于神经网络,神经网络是一种巨大的网络结构,其中节点连接非常复杂。 训练神经网络进行学习很像我们的大脑通过建立和加强神经元之间的连接来学习。

从计算的角度来看,这个学习过程可以并行化,因此可以使用 GPU 硬件来加速。 此类机器学习需要大量示例,也可以使用并行计算来加速。 GPU 上的神经网络训练比 CPU 系统上的训练快很多倍。

目前,全球GPU芯片市场70%的份额被NVIDIA占据。 包括谷歌、微软、亚马逊等巨头也采购了NVIDIA的GPU产品,以扩展其数据中心的AI计算能力。

3、智能硬件生产流程

智能软硬件发展历程介绍

(一)需求调研与分析

任何开发产品的人都需要进行完整的市场调研,智能硬件也是如此。 可以从群体中收集有用的值,以便对产品开发和功能需求有明确的方向。

(2)产品原型设计

开发产品的硬件、原器件、结构,完成后进行联调和测试。 如果过程中出现问题,就需要重新设计。 如果通过,将进行组装和测试。

(三)试生产阶段

进行产品小批量试制并进行产品认证。

(4)产品运营硬件市场化量产阶段

一般情况下,需要等到一些认证完成、收到正式订单后才能开始批量生产。

3、站在软件的肩膀上,为软件赋能

上面第二节我们讲了站在硬件的肩膀上,为硬件赋能。 硬件本身并不是纯粹的硬件。 它有软件部分,是不可缺少的部分。

软件包括系统软件和应用软件。 系统软件是软件的软件,是软件运行的平台。 应用软件是为完成特定产品的业务操作而编写的软件。

常用的系统软件包括操作系统(DOS、WINDOWS、UNIX、OS/2)、数据库管理系统(FoxPro、DB-2、Access、SQL-server)和编译软件(VB、C++、JAVA)。 应用软件包括文字处理软件(WORD、WPS)、信息管理软件、辅助设计软件(CAD)、实时控制软件(CAM)等。 再比如:APP、小程序等属于应用软件,Android/IOS等属于系统软件。

软件流程一般如下图:

基于STM32的AI产品运营必知的软硬件技术分析

AI所需的智能软硬件流程:

基于STM32的AI产品运营必知的软硬件技术分析

4、以智能家居软硬件产品实际落地为例

本节以智能家居整体结构设计、芯片选型、模块设计的实践经验为例,讲解智能软硬件产品的创作过程。

首先看下图,是笔者​​所运营的智能家居的整体结构图:

基于STM32的AI产品运营必知的软硬件技术分析

下面是整体结构图分析:

当Android移动终端连接4G或WIFI时,通过向服务器发送HTTP请求来完成信息查询和任务设置。

云服务器根据用户需求提供必要的数据,并将相应的任务更新到数据库中。 嵌入式智能设备通过WIFI模块AT通过Socket与服务器进行通信。 服务器端使用基于JavaNIO的框架来实现Socket连接。

Android手机终端和智能设备通过不同的服务器进行通信。 Android手机终端使用http协议与服务器进行通信。 服务器提供 RESTful API 进行通信。 嵌入式智能设备基于Socket与服务器连接。 两台服务器部署在同一台机器上,以MYSQL数据库作为中间桥梁,实现数据共享。

具体模块结构图请看下图:

基于STM32的AI产品运营必知的软硬件技术分析

上图中,MCU负责整个模块的控制; WIFI模块实现模块的无线连接,集成TCP/Ip协议,负责与服务器交换数据; 采用继电器实现开关控制,可以控制弱电到强电; 湿度、温度、亮度模块可根据不同模块的功能选择,实现不同量的测量。

限位检测用于检测电机运行的位置状态,从而控制机械进行宠物喂食,实现定量喂食; RTC时钟为系统的运行提供时间基准; FRAM保存配置数据,断电后仍能执行之前设定的任务; 基本用户界面提供现场控制访问,允许用户直接操作模块; 电源采用AC/DC电源,直接采用220V或直流电源供电,可根据外部暴露情况选择。

其次,芯片选型。

选用M451LG6AE作为主控芯片。 M451LG6AE是一款基于M4内核的32位微控制器,拥有足够的RAM和Flash来满足运行程序的要求。 它具有多个串口,支持硬件SPI和I2C,可以方便通信,并且具有AD来测量一些状态量。

使用DTH11测量温湿度,其集成了温湿度检测功能,接口为单线串口。 节省 IO 并使用 DS18B20 进行各种温度测量。 测温范围宽,密封封装,可测量液体温度,可并联。 对于土壤湿度的测量,采用电阻式湿度传感器进行测量。

限位检测主要用于检测物体是否移动到指定位置,或者送料装置中电机的转数(决定送料量)。 它只需要输出开关量,因此使用光电门进行检测和非接触式测量可以有效地在提供足够精度的同时大大延长传感器的使用寿命。

为了实现高精度授时,从而减少离线发生的授时误差,采用外部RTC DS3231作为授时参考。 DS3231内置带温度补偿的晶体振荡器,可以实现更高精度的定时,满足应用的需求。

选择擦写次数多、读取速度快的FRAM FM24V系列来存储设置的数据,以便断电复位后仍然可以执行中断任务。

采用HLK-PM01作为AC/DC芯片,HLK-PM01用于将220VAC转换为5VDC,可以提供3W的功率,足够系统使用。 使用HLK_M30模块作为WIFI模块。 它体积小,功耗低。 支持TCP Server/TCP Client/UDP Server/UDP Client工作模式,可轻松连接互联网。 串行接口可以方便地与主控制器连接。 。

然后是软件设计:

总体软件功能模块如下:

基于STM32的AI产品运营必知的软硬件技术分析

其中1:软件部分与硬件之间的交互通信模块。 APP通过HTTP协议与服务器通信,使用OkHttp进行网络请求。 请求方式主要是Post。

Android系统提供了两种HTTP交互方式,HTTPURL-CONNECTION和APACHE HTTP CLIENT。 虽然都支持HTTPS流的上传和下载,配置超时IPV6和连接池足以满足各种HTTP请求的需求,但原生的HTTP接口存在API过多、扩展困难等缺点。

因此,产生了很多优秀的网络通信库来替代原生的HTTPURLConnection,其中OkHttp就是最优秀的一个。

单片机

负压隔离病房的建筑与设备设计,施工注意事项做扼要分析

2024-2-2 5:01:32

单片机

嵌入式开发绝对是你必学的技术!!

2024-2-2 6:02:22

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索