最近一直在考虑在Android系统上做一些AI的项目,但现在的AI项目大多数采用Python语言。在网上搜了一些移动端AI的例子,觉得Google的TensorFlow Lite比较适合。...看到这样一篇介绍Android上的TensorFlow Lite的文章,翻译出来和大家分享。翻译并非逐句翻译,加入了我的一些理解。如果有问题请参看原文或和我联系。...目前它在Android和iOS上支持C++ API,并为Android开发人员提供Java Wrapper。...另外,在支持它的Android设备上,解释器也可以使用Android神经网络API进行硬件加速,否则默认在CPU上执行。 在本文中,我将重点介绍如何在Android应用中使用它。...构建TensorFlow Lite Android应用程序 要构建使用TensorFlow Lite的Android应用程序,您需要做的第一件事就是将tensorflow-lite库添加到应用程序中。
,当Activity进入到paused或者stopped状态后,这个Activity的状态仍然保存着。...框架中的每一个widget都适当的实现了这个方法,这样任何可见的UI更改活动在重新创建时自动保存和恢复。...例如,EditText部件保存用户输入的任何文本,CheckBox部件保存是否被选中。我们唯一要做的工作就是提供一个惟一的ID(android:ID属性)为每个widget保存其状态。...当然,如果在某些特殊的情况下,你不需要某个View自动保存和恢复他的状态,那么你可以设置View的属性android:saveEnabled为false,或者调用setSaveEnabled()方法。...也即是key-value模式了 因为在android的设计中中,这个函数的主要的作用是用来保存UI状态的,现在怎么去保存一些自己的数据呢 保存: @Override public void onSaveInstanceState
本章主要学习使用ViewModel保存UI数据,修复GeoQuiz应用的UI状态丢失缺陷。 一、引入 ViewModel 依赖 ViewModel 类旨在以注重生命周期的方式存储和管理界面相关的数据。...“杀死”的时候,帮用户保存一些不是很大的关键数据,从而在再次加载app的时候恢复状态。...通常,覆盖onSaveInstanceState(Bundle)函数,在Bundle对象中,保存当前activity小的或暂存状态的数据;覆盖onStop()函数,保存永久性数据,比如用户编辑的文字等。...如图设置: 不保留活动 四、ViewModel与保存实例状态 保留实例状态和ViewModel都不是长期存储解决方案。...参考:https://developer.android.com/jetpack 六、深入学习:解决问题要彻底 意思就是通过禁止应用屏旋转,以此解决设备配置改变带来的UI状态丢失问题的方式太粗暴,也不能从根本解决问题
说起来,在不知不觉中,我竟然凑成了这沉浸式状态栏三部曲。 其实最开始的时候,我主要是因为工作上的原因想要在Android版的Edge浏览器上实现首页图片沉浸式的功能。...可以看到,这些App虽然实现了沉浸式状态栏的效果,但是由于状态栏上的图标变得难以看清,所以最终效果可能反而不好。 但是,Edge浏览器是不会存在这种问题的。为什么呢?...从设计层面解决相对会比较容易一些,同时应该也是大部分App会采用的方案,那就是在背景图的上方再盖一层阴影。有了这层阴影之后,我们可以让状态栏上的图标始终都是浅色的。...Android系统其实给了我们API来控制状态栏图标的颜色,但是只能设置成黑、白这两种颜色,而不可以将状态栏图标改成五颜六色的样子。...因此,现在的问题就转移成了,我们如何才能识别一张背景图的指定区域是属于深色还是浅色? 非常幸运,在Android系统上我们是可以做到这一点的,只需要借助Google提供的Palette库即可。
在Android上,Perfetto是下一代系统性能的分析工具,它取代了systrace。 仍完全支持SYSTRACE....· / proc和/sys pollers,它们可以随时间采样进程范围或系统范围的cpu和内存计数器的状态。 · 与Android HALs模块集成,用于记录电池和电量消耗计数器。...Trace Processor是一个可移植的C ++ 11库,它提供面向列的表存储,专门设计用于将数小时的跟踪数据有效地保存到内存中,并基于流行的SQLite查询引擎公开SQL查询接口。...· Perfetto 是基于SQL lite的,更便于后处理。...当您看到“性能分析”处于活动状态时,请测试你的用例。完成后,按Ctrl-C结束配置文件。 然后将raw-trace文件从输出目录 上载到Perfetto UI,然后单击显示的菱形标记。
ASH(Active Session History,活动会话历史信息)每秒从VSESSION中取ACTIVE状态会话的信息,存储在VACTIVE_SESSION_HISTORY中,并收集所有活动会话的等待信息...这里的活动会话包含2类情况,一类是非空闲等待事件(WAIT_CLASS 'Idle'),一类是“ON CPU”状态的会话。...采样工作由新引入的后台进程MMNL(Manageability Monitor Lite Process)来完成。...众所周知,动态性能视图实质是Oracle自行构造的一堆存在于SGA内存区的虚表,也就是说,ASH的数据是保存在内存里的,实际上,Oracle分配给ASH的空间并不是无限大,ASH buffers的最小值为...这两方面的因素制约了VACTIVE_SESSION_HISTORY中能够保存的会话信息的能力。
我们的项目基于飞桨及其高性能端侧推理引擎Paddle Lite开发,实现了在基于Android系统的手机、平板电脑、嵌入式开发板上利用手势来实时控制贪吃蛇、神庙逃亡、地铁跑酷等交互式游戏,并可在大屏幕端进行投屏展示...01 采集模块 采集模块实现了Android设备上图像采集与设备运行状态的监控功能。通过高频调用关联相机来获取手势图片,将采集到的图片放入缓冲池中以供算法分析模块使用。...设计、搭建与训练神经网络 在卷积神经网络的选取与设计上,由于要将模型应用于计算资源非常受限的Android平台上,因此考虑选用轻量级神经网络MobileNet[2]。...Android端推理 最后,基于Paddle Lite在Android端加载模型并进行推理预测。 ? 首先我们要编译Android端能够调用的CPP库。本项目中编译的是Paddle Lite。...之后,将采集模块中摄像头捕捉的图片按照训练模型前完全一致的方法进行预处理,并加载保存好的预测模型,通过调用刚才编译的libpaddle-mobile.so库提供的API,就能实现Android端的推理。
TensorFlow Lite 支持安卓神经网络 API(https://developer.android.com/ndk/guides/neuralnetworks/index.html),以充分利用新的可用加速器...当加速器硬件不可用时,TensorFlow Lite 会退至优化的 CPU 执行状态,从而确保模型仍然可以在大量设备上快速运行。...图丨 TensorFlow Lite 的设计架构 组成部分 TensorFlow 模型(TensorFlow Model):保存在磁盘上、经过训练的 TensorFlow 模型; TensorFlow...TensorFlow Lite 模型文件被应用在移动应用程序中 Java API:安卓设备上适用于 C++ API 的便利封装; C++ API:加载 TensorFlow Lite 模型文件并启动编译器...第一方和第三方通信应用可以在 Android Wear 上使用该功能。 Inception v3 和 MobileNets 已经在 ImageNet 数据集上训练。
在Android手机上实现图像分类 前言 Paddle Lite是飞桨基于Paddle Mobile全新升级推出的端侧推理引擎,在多硬件、多平台以及硬件混合调度的支持上更加完备,为包括手机在内的端侧场景的...使用的是PaddlePaddle保存的预测模型,如果不了解PaddlePaddle的模型保存,可以参考《模型的保存与使用》这篇文章。...下面简单介绍一下保存模型的方式。通过使用fluid.io.save_inference_model()接口可以保存预测模型,预测模型值保存推所需的网络,不会保存损失函数等。...通过以下命令即即可把预测模型转变成Paddle Lite使用的模型,其中输出的mobilenet_v2.nb就是所需的模型文件,因为转换之后,模型可以在valid_targets指定的环境上加速预测,所以变得非常牛.../lite/tools/build.sh build_optimize_tool Paddle Lite的Android预测库 Paddle Lite的Android预测库也可以通过下载预编译的,或者通过源码编译
前言Paddle Lite是飞桨基于Paddle Mobile全新升级推出的端侧推理引擎,在多硬件、多平台以及硬件混合调度的支持上更加完备,为包括手机在内的端侧场景的AI应用提供高效轻量的推理能力,有效解决手机算力和内存限制等问题...使用的是PaddlePaddle保存的预测模型,如果不了解PaddlePaddle的模型保存,可以参考《模型的保存与使用》这篇文章。...下面简单介绍一下保存模型的方式。通过使用fluid.io.save_inference_model()接口可以保存预测模型,预测模型值保存推所需的网络,不会保存损失函数等。...通过以下命令即即可把预测模型转变成Paddle Lite使用的模型,其中输出的mobilenet_v2.nb就是所需的模型文件,因为转换之后,模型可以在valid_targets指定的环境上加速预测,所以变得非常牛.../lite/tools/build.sh build_optimize_toolPaddle Lite的Android预测库Paddle Lite的Android预测库也可以通过下载预编译的,或者通过源码编译
TensorFlow Hub(https://tfhub.dev/android-studio/collections/ml-model-binding/1) 上提供了各种带有元数据的预训练模型,开发者还可以自己将元数据添加到...TensorFlow Lite 模型中,如将元数据添加到TensorFlow Lite模型中概述(https://www.tensorflow.org/lite/convert/metadata )。...有关线程状态分布的数据。 所选跟踪事件的最长运行时间。 ? 要导航到另一个事件,请从表中选择另一行。...有关如何记录系统跟踪的基本用法说明,请参阅“使用CPU Profiler检查CPU活动”的“ 记录跟踪”部分 。.../studio/profile/cpu-profiler Windows用户:如果在分析应用程序时线程活动时间轴中缺少标签,请参阅 https://developer.android.com/studio
Lite在Android手机上实现图像分类 前言 Tensorflow2之后,训练保存的模型也有所变化,基于Keras接口搭建的网络模型默认保存的模型是h5格式的,而之前的模型格式是pb。...本教程就是介绍如何使用Tensorflow2的Keras接口训练分类模型并使用Tensorflow Lite部署到Android设备上。...搭建的一个MobileNetV2模型并训练自定义数据集,本教程主要是介绍如何在Android设备上使用Tensorflow Lite部署分类模型,所以关于训练模型只是简单介绍,代码并不完整。...如果保存的模型格式不是h5,而是tf格式的,如下代码,保存的模型是tf格式的。...核心代码如下,创建一个子线程,子线程中不断从摄像头预览的AutoFitTextureView上获取图像,并执行预测,并在页面上显示预测的标签、对应标签的名称、概率值和预测时间。
TensorFlow Lite支持Android神经网络API(Android Neural Networks API)利用这些新的加速器硬件。...TensorFlow Lite架构设计 下面的关系图显示了TensorFlow Lite的构架设计: 组件包括: TensorFlow模型:一个保存在磁盘上训练好的TensorFlow模型。...Tensorflow Lite模型文件将被部署在一个移动应用程序,其中: Java API:在Android上对C++API的一个封装。...C++ API:加载Tensorflow Lite模型文件和调用解释器。在Android和iOS上共用同一个库文件。 解释器:采用一组运算符来执行模型。...在Android Wear上,第一方和第三方的消息应用程序均使用了此功能。 Inception v3和MobileNet均是在ImageNet数据集上预训练好的。
TensorFlow Lite支持Android神经网络API(Android Neural Networks API)利用这些新的加速器硬件。...模型:一个保存在磁盘上训练好的TensorFlow模型。...Tensorflow Lite模型文件将被部署在一个移动应用程序,其中: Java API:在Android上对C++API的一个封装。...C++ API:加载Tensorflow Lite模型文件和调用解释器。在Android和iOS上共用同一个库文件。 解释器:采用一组运算符来执行模型。...在Android Wear上,第一方和第三方的消息应用程序均使用了此功能。 Inception v3和MobileNet均是在ImageNet数据集上预训练好的。
前言Tensorflow2之后,训练保存的模型也有所变化,基于Keras接口搭建的网络模型默认保存的模型是h5格式的,而之前的模型格式是pb。...本教程就是介绍如何使用Tensorflow2的Keras接口训练分类模型并使用Tensorflow Lite部署到Android设备上。...搭建的一个MobileNetV2模型并训练自定义数据集,本教程主要是介绍如何在Android设备上使用Tensorflow Lite部署分类模型,所以关于训练模型只是简单介绍,代码并不完整。...如果保存的模型格式不是h5,而是tf格式的,如下代码,保存的模型是tf格式的。...核心代码如下,创建一个子线程,子线程中不断从摄像头预览的AutoFitTextureView上获取图像,并执行预测,并在页面上显示预测的标签、对应标签的名称、概率值和预测时间。
:tensorflow-lite-metadata:0.1.0' } 3.3 为了适配更多的 Android 设备,还需要配置 ABI: android { defaultConfig {...四、项目开发 在这个项目中,我展示如何使用 TensorFlow Lite 实现一个简单的手写数字识别App。...() # 保存模型文件 with open('nim_model.tflite', 'wb') as f: f.write(tflite_model) 保存模型文件代码码会输出一个 nim_model.tflite...5.2 实时推理的延迟控制 手写数字识别属于实时性要求较高的任务。为了提升用户体验,需要降低推理延迟。通过 TensorFlow Lite 的优化和多线程处理,可以有效降低推理时的延迟。...5.3 模型的跨平台兼容性 保证应用在特定设备上运行良好,还要确保在不同硬件架构的设备上(如 armeabi-v7a 和 arm64-v8a)都能正常工作,涉及到 TensorFlow Lite 模型在不同设备间的兼容性
对比当前的lite对象和上一个lite对象的包名是否一致 if (!...:stateNotNeeded=boolean" 属性 // 该标识用来指明能否在不保存Activity的情况下将其终止并成功重启 // "true" 表示可在不考虑其之前状态情况下重新启动...,"false"表示需要之前的状态,默认值"false"。...上面这些类,全部是定义于PackageParser中的内部类,这些内部类主要的作用就是保存AndroidManifest.xml解析出的对应信息。...四大组件中的其它成员,也有类似的继承结构。 这种设计的原因是:Package除了保存信息外,还需要支持Intent匹配查询。
Lite是一款专门针对移动设备的深度学习框架,移动设备深度学习框架是部署在手机或者树莓派等小型移动设备上的深度学习框架,可以使用训练好的模型在手机等设备上完成推理任务。...获取模型主要有三种方法,第一种是在训练的时候就保存tflite模型,另外一种就是使用其他格式的TensorFlow模型转换成tflite模型,第三中是检查点模型转换。...1、最方便的就是在训练的时候保存tflite格式的模型,主要是使用到tf.contrib.lite.toco_convert()接口,下面就是一个简单的例子: import tensorflow as...文件就可以直接在TensorFlow Lite上使用。...开发Android项目 有了上面的模型之后,我们就使用Android Studio创建一个Android项目,一路默认就可以了,并不需要C++的支持,因为我们使用到的TensorFlow Lite是Java
),要把在PC端训练好的模型放到Android APP上,调研了下,谷歌发布了TensorFlow Lite可以把TensorFlow训练好的模型迁移到Android APP上,百度也发布了移动端深度学习框架...2.模型训练注意事项 第一步,首先在pc端训练模型的时候要模型保存为.pb模型,在保存的时候有一点非常非常重要,就是你待会再Android studio是使用这个模型用到哪个参数,那么你在保存pb模型的时候就把给哪个参数一个名字...否则,你在Android studio中很难拿出这个参数,因为TensorFlow Lite的fetch()函数是根据保存在pb模型中的名字去寻找这个参数的。...Studio中配置 第二步,开始把pb模型移植到Android Studio上,网上绝大部分资料都是说用bazel重新编译模型生成依赖,这种方法难度太大。...APP的效果,全部代码,将会开源在github上,欢迎star。
如果您是 iOS 开发人员,或者同时使用 iOS 和 Android,则 Apple 一年一度的全球开发人员大会(WWDC)是您不容错过的活动。...如果您在 Android 上运行 TensorFlow Lite 模型,并且 Android 设备为 Android 8.1(API 级别 27)或更高版本,并且通过专用的神经网络硬件,GPU 或某些其他数字信号处理器支持硬件加速...在 Android 中使用 TensorFlow Lite 为简单起见,我们将仅演示如何在新的 Android 应用中将 TensorFlow Lite 与预构建的 TensorFlow Lite MobileNet...有一个使用 TensorFlow Lite 的示例 Android 应用,您可能希望首先在具有 API 级别的 Android 设备上与 Android Studio 一起运行。...如果您成功构建并运行了演示应用,则在 Android 设备上移动时,应该能够通过设备摄像头和 TensorFlow Lite MobileNet 模型看到识别出的对象。
领取专属 10元无门槛券
手把手带您无忧上云