Android
文章平均质量分 68
夜雨飘零1
他朝若是同淋雪,此生也算共白头!
展开
-
基于TNN在Android手机上实现图像分类
TNN:由腾讯优图实验室打造,移动端高性能、轻量级推理框架,同时拥有跨平台、高性能、模型压缩、代码裁剪等众多突出优势。TNN框架在原有Rapidnet、ncnn框架的基础上进一步加强了移动端设备的支持以及性能优化,同时也借鉴了业界主流开源框架高性能和良好拓展性的优点。原创 2020-09-06 11:29:00 · 3659 阅读 · 19 评论 -
基于MNN在Android手机上实现图像分类
MNN是一个轻量级的深度神经网络推理引擎,在端侧加载深度神经网络模型进行推理预测。目前,MNN已经在阿里巴巴的手机淘宝、手机天猫、优酷等20多个App中使用,覆盖直播、短视频、搜索推荐、商品图像搜索、互动营销、权益发放、安全风控等场景。此外,IoT等场景下也有若干应用。下面就介绍如何使用MNN在Android设备上实现图像分类。原创 2020-09-05 21:57:05 · 11903 阅读 · 16 评论 -
一行代码Android上实现人脸检测、关键点检测、口罩检测
一行代码实现人脸检测,人脸关键点检测和戴口罩检测。本项目是使用Paddle Lite 的C++实现的人脸检测,人脸关键点检测和戴口罩检测,并将编译好的动态库和静态库部署在Android应用上,在Android设备上实现人脸检测,人脸关键点检测和戴口罩检测,所以本应不会使用到C++开发,可以只使用笔者提供的JNI接口实现这些功能。在ai这个module是笔者在开发时使用到的,读者在使用这个项目时,完全可以删除掉,如果是看C++实现,也可以看这个module的源码。原创 2020-09-05 12:05:06 · 5511 阅读 · 15 评论 -
Android基于图像语义分割实现人物背景更换
使用开源库提供的预训练模型实现人物的图像语义分割,最终部署到Android应用上。关于如何在Android应用上使用PaddlePaddle模型,可以参考笔者的这篇文章。原创 2020-08-29 22:48:23 · 1820 阅读 · 4 评论 -
基于Paddle Lite在Android手机上实现图像分类
Paddle Lite是飞桨基于Paddle Mobile全新升级推出的端侧推理引擎,在多硬件、多平台以及硬件混合调度的支持上更加完备,为包括手机在内的端侧场景的AI应用提供高效轻量的推理能力,有效解决手机算力和内存限制等问题,致力于推动AI应用更广泛的落地。原创 2020-08-02 13:29:20 · 4869 阅读 · 9 评论 -
基于Tensorflow2 Lite在Android手机上实现图像分类
Tensorflow2之后,训练保存的模型也有所变化,基于Keras接口搭建的网络模型默认保存的模型是h5格式的,而之前的模型格式是pb。Tensorflow2的h5格式的模型转换成tflite格式模型非常方便。本教程就是介绍如何使用Tensorflow2的Keras接口训练分类模型并使用Tensorflow Lite部署到Android设备上。原创 2020-07-22 14:35:47 · 10455 阅读 · 74 评论 -
Mediapipe框架在Android上的使用
MediaPipe是用于构建跨平台多模态应用ML管道的框架,其包括快速ML推理,经典计算机视觉和媒体内容处理(如视频解码)。下面是用于对象检测与追踪的MediaPipe示例图,它由4个计算节点组成:PacketResampler计算器;先前发布的ObjectDetection子图;围绕上述BoxTrakcing子图的ObjectTracking子图;以及绘制可视化效果的Renderer子图。原创 2020-07-08 11:43:15 · 12531 阅读 · 28 评论 -
在Android实现双目测距
前言在上一章我们介绍了《双目摄像头测量距离》,在这个基础上,我们来了解如何在Android上使用双目测距算法。通过本教程,你不仅掌握如何在Android中使用SBM等双目测距算法,顺便也了解到如何在Android Studio配置OpenCV,通过使用OpenCV可以在Android中实现很多图像处理的功能。配置OpenCV下载OpenCV的Android版本源码,官网下载地址:https://opencv.org/releases/,如果读者无法下载,笔者也提供的源码下载,版本是3.4.1的,下载地原创 2020-05-16 11:43:42 · 3961 阅读 · 14 评论 -
Android使用AIUI快速搭建智能助手
前言目前大部分的手机都有语音助手,例如小米手机的小爱同学,VIVO的小V等等,通过智能助手我们可以快速询一些资讯或者操作手机,例如询问天气,发送微信给你的好友等等。这篇文章就来介绍如何使用AIUI快速搭建类似这样的智能助手。AIUIAIUI是科大讯飞2015年推出的自然语言理解为核心的全链路人机交互语音解决方案,可快速让你的应用和设备能听会说,能理解会思考。AIUI语义信息透明开放,可云端接...原创 2020-04-18 15:14:51 · 3583 阅读 · 6 评论 -
Android使用webrtc实现检测用户是否在说话
我们在Android应用做语音识别的时候,一般是用户唤醒之后开始说话。当用户超过一定的时候没有说话,就停止录音,并把录音发送到语音识别服务器,获取语音识别结果。本教程就是解决如何检测用户是否停止说话,我们使用的是WebRTC架构的源代码中的vad代码实现的。原创 2020-04-16 11:14:01 · 3191 阅读 · 13 评论 -
使用TensorFlow Lite在Android手机上实现图像分类
TensorFlow Lite是一款专门针对移动设备的深度学习框架,移动设备深度学习框架是部署在手机或者树莓派等小型移动设备上的深度学习框架,可以使用训练好的模型在手机等设备上完成推理任务。这一类框架的出现,可以使得一些推理的任务可以在本地执行,不需要再调用服务器的网络接口,大大减少了预测时间。在前几篇文章中已经介绍了百度的paddle-mobile,小米的mace,还有腾讯的ncnn。这在本章中我们将介绍谷歌的TensorFlow Lite。原创 2018-09-20 21:35:52 · 19332 阅读 · 167 评论 -
在Android手机上使用腾讯的ncnn实现图像分类
目录目录前言使用Ubuntu编译NCNN库转换预测模型开发Android项目参考资料前言使用Ubuntu编译NCNN库1、首先要下载和解压NDK。wget https://dl.google.com/android/repository/android-ndk-r17b-linux-x86_64.zipunzip android-ndk-r17b-l...原创 2018-09-05 19:40:31 · 17356 阅读 · 19 评论 -
在Android手机上使用MACE实现图像分类
在之前笔者有介绍过,使用的框架是百度开源的PaddleMobile。在本章中,笔者将会介绍使用小米的开源手机深度学习框架MACE来实现在Android手机实现图像分类。MACE的GitHub地址:https://github.com/XiaoMi/mace。原创 2018-08-22 12:42:56 · 4921 阅读 · 2 评论 -
Android的单个或多个权限动态申请
在Android 6.0(API 级别 23)以下申请权限是非常简单的,直接在但是在Android 6.0(API 级别 23)以上的版就不可以这样申请了,因为这样申请权限对用户来说是非常危险的,应用已安装就获取了全部权限,也不知道这些权限应用要来干什么,可能是用户不希望发生的一些操作。如果要使用上面的权限,除了要在这个配置文件声明,还要在Java代码中增加动态申请。下面我们就介绍如何单个和多个权限动态申请。原创 2018-07-14 11:47:32 · 4637 阅读 · 0 评论 -
在Android手机上使用PaddleMobile实现图像分类
目录目录前言编译paddle-mobile库前言编译paddle-mobile库JNIEXPORT jboolean JNICALL Java_com_example_paddlemobile1_ImageRecognition_load(JNIEnv *env, ...原创 2018-07-23 15:28:35 · 5177 阅读 · 10 评论 -
Android使用SharedPreferences保存账号密码
有很多的应用都会有保存密码和账号的功能,比如QQ。接下来就讲讲使用SharedPreferences来保存密码和账号,也许有些人会考虑的数据库,但是我个人认为对于保存简单的数据,使用的数据库就大材小用了,SharedPreferences比较轻量级首先写好布局,只有两个输入框和一个按钮原创 2017-08-16 18:33:34 · 3935 阅读 · 2 评论 -
Android网络框架OKhttp3学习笔记
OKhttp3是一个非常强大的Android网络框架,它是由Square公司开发并开源的,很大Android开发者都会使用到,所以我也要来学学。服务器为了方便测试,我们需要一个后台服务器的的应用,下面是一个Java Web的Servlet,它的功能是接收客户端发来的登录数据,判断密码是否正确,并返回结果(JSON格式)import javax.servlet.ServletExce原创 2017-08-16 18:33:41 · 489 阅读 · 0 评论 -
Android读取短信和联系人
读取短信和联系人经常会用到,要了解的是这是内容提供者(contentProvider)的知识点,大家都知道数据库是在data-->data 对应的包目录下,其他应用是不可以访问到的,如果有些数据要提供给其他的应用,比如通信录,其他应用想获取它的数据怎么办呢,这时内容提供者就出现了,预先写好了一些操作数据库的方法,因为方法是开发这个应用的开发者提供的,所以保证了数据库的安全操作,又能共享数据。短原创 2017-08-16 18:33:29 · 3294 阅读 · 0 评论 -
Android使用Service播放音乐
像音乐这种耗时的和适合后台操作的应当放在Service中进行操作,而不是放在Activity,下面就介绍使用Service的音乐播放器先创建一个MusicService,在Android Studio中,点击包名右键New-->Service-->Service如果是按照上面的方法创建的Service,配置清单中会自动生成 改Service的声明在MusicService中的J原创 2017-08-16 18:33:27 · 23619 阅读 · 10 评论 -
Android画板的实现
这是一个常见的画板功能,常用于画画和手写输入等等,今天就教大家实现这个小功能,这个功能还是比较简单的,只有一个Java文件先看效果图布局代码,只有三个按钮和一张图片原创 2017-08-16 18:33:24 · 2689 阅读 · 14 评论 -
Android在ImageView上直接显示网络图片
在原生的ImageView中,没有一个方法是可以直接显示网络的图片的,当我们经常需要显示网络图片时,每次都有一大堆的操作,这会很麻烦,今天就教大家在ImageView上轻松显示网络图片。自定义ImageView方法写一个类让它继承ImageView,并增加一个setImageURL(path)方法import android.content.Context;import android.原创 2017-08-16 18:33:19 · 59868 阅读 · 16 评论 -
Android开机启动
要开机启动,首先肯定是想到广播,广播接收器接收到开机发出的广播,就执行onReceive(),在onReceive()可以写一些我们需要做的操作使用Android Studio帮我们创建广播,点击包名-->New-->BroadcastReceiver如果是按照上面的操作,在清单文件中会自动生成红框中的代码需要静态注册,我们要在action中注册开机的广播原创 2017-08-16 18:33:16 · 528 阅读 · 0 评论 -
Android使用Fragment仿微信底部导航栏
这是一个使用Fragment做的一个底部导航栏的小demoMainActivity的代码package com.example.dell.myapplication;import android.app.FragmentManager;import android.app.FragmentTransaction;import android.os.Bundle;import原创 2017-08-16 18:33:13 · 3128 阅读 · 4 评论 -
Android的各种通知Notification、Dialog、Toast、Snackbar
有各种各样的通知,不同情况使用不同的通知方式,使用户在体验上更佳,下面就讲一下四种常用的通知方式Notification、Dialog、Toast、Snackbar通知栏(Notification)public void showNotification() { //通过Notification.Builder 创建一个notification Notifi原创 2017-08-16 18:33:11 · 1739 阅读 · 1 评论 -
Android的View动画
View动画其实就是使ImageView上的图片在隐藏、旋转、缩放、平移通过动画的过程显示。布局代码,设置图片要通过src设置原创 2017-08-16 18:33:08 · 1200 阅读 · 1 评论 -
Android的cookie的接收和发送
我在做自动登录的时候遇到的坑,特写此文以提醒各位不要把自己绕进去了。我们都知道在web端的cookie是可以通过服务器端设置保存的,默认是关闭浏览器就清除cookie的,但是可以在服务器端设置cookie的有效期,浏览器就会自动保存cookie,而在Android上是不会自动保存cookie,我用的是Okhttp3,我找不到response.addCookie(cookie)和reques原创 2017-05-13 11:13:41 · 8211 阅读 · 7 评论 -
Android调试的Log.d()没有输出
在之前我是很喜欢使用真机进行调试的,因为那时候觉得用真机调试比较方便,直到我发现我的手机打印不出Log.d()的调试日志,我才开始经常使用模拟器。当然还有两小点是:我的手机不支持快速启动和小编的电脑配置比较低,模拟器太吃内存了。写一个简单的应用,它的代码是public class MainActivity extends AppCompatActivity { @Override ...原创 2017-05-13 12:02:24 · 27204 阅读 · 8 评论