明日直播:如何在RT-Thread上使用TFLite Micro实现AI相机?

基于TensorFlow Lite Micro在物联网设备上玩转TinyML之离线语音唤醒 本文介绍如何基于HaaS EDU K1进行TFLite-Micro离线语音模型的部署。通过本文将学习到离线语音识别全链路开发流程。从语音数据集采集到模型训练,再到模型部署的TinyML(微型机器学习)整个生命周期。 阅读详情

hi~小伙伴们大家好,又到了双周一次的技术分享时间,在上周末刚刚结束的开发者大会上,我们首次披露了AI相关的内容,会后,许多开发者表示了对相关内容抱有极大兴趣!所以本周四我们有幸邀请到社区开发者——邓可笈,为我们带来相关技术的分享!下面就来看看都有哪些内容吧~

直播分享

主播简介:

邓可笈 RT-Thread社区开发者

西安电子科技大学研究生,电子与通信工程专业,研究方向为IoT场景下的边缘计算

直播时间:

2020年12月24日 (周四)晚8点

直播亮点:

深入浅出带你实现AI相机

直播提纲:

Part 1.卷积神经网络及TFLite Micro简介

- CNN基本概念

- TFLite Micro介绍

- 优化方法

Part 2.在ART-Pi上部署TFLite Micro软件包

- 开发环境准备

- 图像预处理

- 软件包下载测试

Part 3.使用软件包API实现AI相机

- 软件包API介绍

- 实现AI相机功能

哔哩哔哩直播间地址:

http://live.bilibili.com/21644795 (记得复制至外部浏览器打开哦)

直播间ID:21644795 (记得点关注哦,观看更流畅)

扫码关注主播,开播不错过


你可以添加微信17775982065为好友,注明:公司+姓名,拉进 RT-Thread 官方微信交流群!

RT-Thread


让物联网终端的开发变得简单、快速,芯片的价值得到最大化发挥。Apache2.0协议,可免费在商业产品中使用,不需要公布源码,无潜在商业风险。

长按二维码,关注我们

 点击阅读原文进入RT-Thread官网

你点的每个“在看”,我都认真当成了喜欢

社区分享|Arm 中国生态技术市场经理教你玩转 TFLite Micro 端云一体解决方案 |本文来自社区投稿与征集,作者 郑亚斌,Arm 中国生态技术市场经理。 概述: TensorFlow Lite Micro 是 TensorFlow Lite 针对 AIOT 的轻量级 AI 引擎,用于在微控制器和其他资源受限的设备上运行机器学习模型。端云链接从 TencentOS Tiny 开始。 1. 建立与转换模型 由于嵌入式设备存储空间有限,因此限制了深度学习的应用,同时考虑到平台算力以及算子支持等因素,因此在模型设计以及部署阶段需充分了解硬件平台资源以及预期性能。 本部... 阅读详情

相关推荐

V4L2 Camera 驱动的数据流模型:Buffer Queue 与 Streaming 流程详解

在 Linux V4L2 摄像头驱动架构中,数据流模型由 Buffer Queue 管理机制与 Streaming 流程共同构建,直接关系到图像采集性能、帧稳定性与平台兼容性。本文从工程视角出发,详解 V4L2 的 buffer 管理架构,包括内核态的数据流路径、帧队列调度逻辑、内存映射机制、驱动层对 `VIDIOC_QBUF` 和 `VIDIOC_DQBUF` 的处理,以及 streaming 启停流程的具体状态转换。结合 Qualcomm、MTK 等平台的调度优化策略,深入剖析视频帧在驱动层级的完整生命

努力分享一些人工智能、计算机视觉、影像等相关的知识干货! 1721

TensorFlow Lite Micro简介与使用

一文高效搞懂TensorFlow Lite Micro的简介与使用!

全栈O-Jay的博客 7870

tflite-micro:适用于微控制器的TensorFlow Lite

适用于微控制器的TensorFlow Lite TFLM代码目前正在从重构为独立的。 此重构目前处于初始阶段,预计将在2021年6月底完成。

[ESP32]:TFLite Micro推理CIFAR10模型

[ESP32]:TFLite Micro推理CIFAR10模型

LINKKEEE的博客 1435

Qt Design Studio 入门指南:从零开始打造炫酷UI(详细+实用+轻松上手)

本文是Qt Design Studio的详细入门指南,旨在帮助UI设计新手从零开始轻松打造炫酷界面。文章系统介绍了软件的核心概念、安装步骤、主界面解析,并通过创建一个完整的登录界面实例,手把手教学如何拖拽组件、设置属性、添加交互状态与动画。同时,分享了创建自定义组件、管理资源以及提升效率的实用技巧与常见问题解决方案,让读者能够快速上手并应用于实际项目开发。

devops8pract的博客 588

TwinCAT3 Modbus-TCP Client/Server使用

/起始地址是12289//起始地址是12294。

panjinliang066333的博客 7732

TFLite Micro嵌入式AI部署:如何在千字节内存设备上运行机器学习模型?

在当今边缘计算时代,将AI模型部署到资源受限的嵌入式设备已成为关键技术挑战。TFLite Micro作为TensorFlow生态中专为微控制器设计的轻量级框架,让开发者能够在仅有千字节级内存的设备上运行复杂的机器学习算法。本文将带你了解这一革命性技术的核心概念、应用场景和实战方法。 [![TFLite Micro代码架构](https://raw.gitcode.com/gh_mirrors/t

gitblog_00321的博客 1325

【Codex Sandbox 与审批机制:小白也能看懂的实用教程】

这篇教程介绍了Codex工具中的沙盒(Sandbox)和审批(Approvals)机制,帮助用户安全高效地使用Codex协作。沙盒限制Codex访问范围,审批机制则控制敏感操作权限。文章详细讲解了五种常见模式:最安全的安全只读浏览、只读非交互、仓库内编辑、Auto预设和不推荐的YOLO模式。还提供了新手使用路径建议、配置示例和实战场景范式,包括如何测试沙盒行为、不同系统下的实现方式以及常见问题解答。最后附上速查清单,帮助用户快速选择合适的权限组合。

zsr154278963的博客 6702

TFLite Micro Introduce

本文系统指导开发者在MCU上部署TensorFlow Lite Micro模型,涵盖从轻量模型训练、算子支持验证、模型转换量化到算子移植与性能优化的全流程。强调模型体积与算子兼容性,推荐使用MobileNet等轻量网络,通过TFLite Converter生成C数组嵌入固件,并利用MicroMutableOpResolver和张量竞技场完成推理。针对缺失算子,提供从Lite到Micro的三步移植方案及硬件优化实践,助力高效落地边缘智能。

探索未知,成就非凡 779

Oracle 常用语法汇总

CREATE TABLE 表名(COMMENT ON COLUMN 注释;-- 创建一个学生表STUDENT_ID NUMBER(10) PRIMARY KEY, -- 学生ID,主键FIRST_NAME VARCHAR2(50) NOT NULL, -- 学生名字,不允许为空LAST_NAME VARCHAR2(50) NOT NULL, -- 学生姓氏,不允许为空EMAIL VARCHAR2(100) UNIQUE, -- 学生电子邮箱,唯一。

拽着尾巴的鱼儿的博客 2154

Webpack打包到宝塔上线:前端小白也能搞定的部署保姆教程

本文为前端开发者提供了一份详尽的Webpack项目部署指南。通过宝塔面板的可视化操作,手把手教你如何将Vue3等项目从本地构建、打包,到上传服务器、配置Nginx,最终完成上线部署的全过程,有效解决了新手在项目上线环节的常见难题。

jjj34的博客 223

TfLite: c++ in TfLite micro

u011279649的专栏 962

光伏系统选型指南:5种主流MPPT算法优缺点对比(附选型流程图)

本文深入剖析了光伏系统中五种主流MPPT算法的核心原理与性能差异。通过对比扰动观察法、电导增量法、恒定电压法、模糊逻辑控制及人工智能算法在追踪精度、响应速度、实现成本与稳定性等方面的表现,为不同应用场景(如户用、工商业及大型电站)提供了清晰的选型决策流程图和实战指南,帮助工程师优化系统效率与投资回报。

weixin_29294597的博客 106

tflite micro makefile and test

Makefile

u011279649的专栏 785

我写了一个自动识别火车车厢位置的算法【lidar点云识别】

我写了一个自动识别火车车厢位置的算法【lidar点云识别】

qq_43212290的博客 797

GDB交叉编译与问题解决:从零到精通的深度指南

完成后,GDB会安装到/usr/local/gdb-aarch64/bin,可以用aarch64-linux-gnu-gdb --version检查。:得有支持目标架构的交叉编译工具链,比如gcc-arm-none-eabi(用于ARM裸机)或aarch64-linux-gnu-gcc(用于ARM Linux)。:在配置工具链时,运行aarch64-linux-gnu-gcc --version检查版本,确保工具链没问题。这种场景下用GDB调试,就像在荒野求生,但别慌,GDB依然是你的好伙伴。

大模型大数据攻城狮的专栏 1万+

在 windows 上使用 docker 运行 tflite-micro 示例代码

TFLite Micro 是 Google 推出的 TensorFlow Lite 的一个特殊版本,专门用于在资源受限的嵌入式设备上运行机器学习模型。本文介绍了如何在windows使用docker-destop运行 tflite-micro 的示例项目。

qq_41456316的博客 971

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

TFLite Micro完整教程:嵌入式AI部署终极指南

在边缘计算和物联网设备蓬勃发展的今天,如何在资源受限的微控制器上部署机器学习模型成为开发者的重要课题。TensorFlow Lite for Microcontrollers(TFLM)作为专为低功耗嵌入式设备设计的微型机器学习框架,让AI推理在仅有千字节级内存的设备上成为现实。本文将深入解析这一框架的技术优势、部署流程和性能优化策略,为嵌入式开发者提供完整的解决方案。 ## 技术优势解析:为什

gitblog_00599的博客 908

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

大模型时代下的轻量化部署:TensorFlow Lite Micro详解

在资源受限的微控制器上实现深度学习推理,TensorFlow Lite Micro 通过静态内存分配、零依赖设计和端到端工具链,让智能模型直接以C代码运行于裸机环境,推动边缘智能的真正落地。

weixin_42581003的博客 1064

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

TensorFlow 核心模块详解:TensorFlow Lite Micro 与微控制器部署

TensorFlow Lite Micro(TFLite Micro)是专为微控制器设计的超轻量级AI推理框架,能在KB级内存、MHz级CPU的硬件上运行。其核心特性包括超小体积(16KB)、低内存占用(2-10KB)、仅需CPU运算和超低功耗(微安级)。部署流程分为四步:设计极简模型(如10KB参数)、全整数量化(INT8/INT16)、转换为TFLite格式和集成到微控制器固件。通过训练后量化和模型剪枝可进一步压缩模型体积,适用于智能传感器、可穿戴设备等边缘AI场景。

没事学AI的博客 1766

如何在微控制器上部署AI模型?TFLite Micro实战指南

TensorFlow Lite Micro(TFLM)是专为资源受限的嵌入式设备设计的微型机器学习框架,能在仅有几十KB内存的微控制器上运行AI模型,为边缘计算提供强大支持。本文将带你从零开始掌握TFLM的部署技巧,让AI在最小硬件上发挥最大价值。 ## 🌟 理解TFLite Micro的核心优势 TFLM框架最大的特点就是**极致轻量化**和**跨平台兼容性**。与传统机器学习框架相比,T

gitblog_01137的博客 1070

【嵌入式AI开发必看】:TensorFlow Lite Micro C扩展的5大核心应用场景

掌握嵌入式AI开发利器,详解TensorFlow Lite Micro的C扩展在物联网、传感器处理、语音识别等5大场景的应用方法。突出低功耗、高实时性优势,提供轻量级模型部署方案,助力开发者高效实现边缘计算。实用技巧值得收藏。

Algorhythm的博客 1019

TFLite Micro嵌入式AI部署:从问题诊断到性能优化的完整指南

在嵌入式设备上部署机器学习模型时,开发者常常面临内存不足、推理速度慢、模型体积过大等挑战。为什么同样的模型在PC上运行流畅,到了微控制器就举步维艰?本文将采用问题导向的方法,系统分析嵌入式AI部署的技术难点,并提供经过验证的解决方案。 ## 问题诊断:嵌入式AI部署的三大核心挑战 ### 内存资源严重受限 微控制器通常只有几十到几百KB的RAM,而传统的TensorFlow模型动辄需要MB级

gitblog_00240的博客 657

如何快速部署机器学习模型到微控制器?TFLite Micro 终极入门指南

TensorFlow Lite for Microcontrollers(TFLM)是专为低功耗嵌入式设备设计的**微型机器学习框架**,能在仅有千字节级内存的微控制器和数字信号处理器上运行AI模型。本文将带你从安装到实战,零门槛掌握边缘AI部署技术! ## ???? 什么是 TFLite Micro? TFLite Micro 是 TensorFlow 生态中针对**资源受限设备**的轻量化解决...

gitblog_00058的博客 883

TFLite Micro 定制算子开发:从模型转换到端侧推理的完整工程链路

TensorFlow Lite Micro(TFLM)虽然为 MCU 提供了轻量级推理方案,但内置算子数量有限。当模型包含自定义层时,。实际项目中这种情况很常见——比如语音唤醒模型用了自定义注意力机制,部署到 STM32H7 时就卡在这一步。更麻烦的是某些算子虽然理论上支持,但在特定 MCU 上性能很差。比如 TFLM 的 Depthwise Conv2D 在 Cortex-M4 上没用 DSP 指令加速,比 CMSIS-NN 优化版慢 5 倍以上。这时候就得自己写定制算子替换默认实现。

qq_42431428的博客 2116

在 Cadence 音频数字信号处理器上加速 TensorFlow Lite Micro

发布人:来自 Cadence 的 Raj Pawate 和 Google 的 Advait Jain数字信号处理器 (DSPs) 是所有电池供电设备的重要组成部分,其提供了一种以极低功耗处理音频数据的方法。这些芯片负责运行信号处理算法,例如音频编解码器、噪声消除和波束形成等。这些 DSPs 也越来越多地用于运行神经网络,例如唤醒词检测、语音识别和噪声抑制。启用此类应用的关...

谷歌开发者 2116
上一篇: 2020·RDC·RT-Thread开发者大会圆满落幕!
下一篇: 一名富有激情的潮汕籍工程师的进阶之路:数据即未来
RT-Thread物联网操作系统
博客等级 码龄6年 2万+粉丝 392原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值