安卓(Android)Python人工智能程序开发利器——AID Learning

在这里插入图片描述

简介

  • AidLearning是一个运行在移动端(Android)上的支持图形化界面的Linux虚拟机,同时是一个支持深度神经网络开发的框架和平台,内置了最为流行的深度学习框架caffe/mxnet/keras/pytoch/tensorflow/ncnn/opencv…内置了可视化AI开发编辑器,支持触摸拖拽式界面设计,支持代码动态调试和运行。支持在移动端和PC端用python开发你的AI应用,支持把你的python源码转化为APP(Apk)发布。支持一键式安装,只需要安装一个8M的App即可自动引导完成安装。目前,已在各大App应用中心(华为、小米、vivo、oppo…)上线,下载和访问量已超100万,内置了大量的AI例子和教程,互联网上(知乎、简书、CSDN、百度等)也有大量中文教程,方便你学习和开发。
    在这里插入图片描述

整体特点

创新性

移动端(手机)上最好的,环境最全的Linux模拟器,唯一支持图形化桌面的Linux模拟器…
唯一支持AI开发环境的模拟器、内置全球最流行Top 7的深度学习框架,内置大量深度学习的模型、例子和开发组件
唯一支持python图形化开发和调试的模拟器,支持触摸拖拽式界面设计,提高你的开发效率
支持用python开发可运行在手机的App,支持python代码直接编译生成可部署的apk文件
一键式安装,无任何依赖,你只需在手机上要安装一个8M的引导App,就可以自动完成所有环境的安装。
跨平台开发,支持云桌面(手机桌面和电脑桌面相同),既可以在手机或平版上或其他嵌入式主板上运行,也可以在电脑端基于web直接访问和开发。
支持加速库openblas,支持多线程和多进程,运行流畅、不卡顿,充分发挥ARM CPU的算力

通用性

支持Tensorflow、Caffe、mxnet、keras、pytoch、ncnn、opencv、scipy…
支持Python2.7/Python3.7.3。
自带AiCode可视化编程IDE,也支持谷歌的Jupyter的IDE。
内置完整原生的跨平台桌面,不需要安装第三方vnc等的支持,支持电脑端和手机端同桌面
既支持手机、Pad、也支持工业Arm板卡
开发的程序,既可以部署在手机端、也可以部署在电脑端
支持市面上99.5%的手机,已测试华为、VIVO、OPPO、三星、小米等全系列64位手机

安全性

Aid在手机上虚拟了一个封闭空间,不需要root,不会破坏你的手机的内容。
不会收集你的个人隐私,所有权限都可以自己设定…

易用性

一键式安装,自动下载最新依赖包、自动配置AI开发需要的环境,降低AI开发门槛
内置大量AI组件、模型、例子、教程,降低AI开发的门槛,你可以不懂AI算法,但可以用这个平台开发出AI应用。
一部手机,两个系统,Android和Linux共生共存,无重启自由切换;娱乐、开发、学习三不误
支持手机端开发与电脑端开发代码自动同步,支持界面触摸拖拽式设计,自动生成界面的代码
一键式编译和发布你开发支持AI的App
可扩展支持Java、C++等语言的支持

架构设计

  • AidLearning FrameWork可以分为Linux模拟器和AI编程平台两部分。
  • Linux模拟器由Terminal和Desktop构成。前者基于Android底层Linux kernel和busybox命令包构建了完整Linux的模拟器,你可以用apt命令安装任何你需要的依赖包;后者基于web构建了图形化操作桌面,你可以用在手机上用触摸操控整个系统,同时该桌面支持云桌面,你可以在电脑端通过一个网址轻松访达。
  • AI编程平台由深度学习框架和Python可视化编程框架(Python IDE)构成。前者包含了几乎所有目前流行的深度学习框架,负责模型的加载、计算图的调度;包含各计算的内存分配、Op实现。后则构建了Python可视化快速开发平台,不仅可以在线实时运行、调试Python代码,同时支持触摸拖拽式界面设计、并且可以生成最终的可执行程序、产出apk文件。

安装配置

你可以去 Github主页或者官网进行下载 也可以下载V0.84最新中文版!
在这里插入图片描述
下载后在你的手机或pad终端上进行安装即可,安装完成后,第一次启动会自动下载依赖包,依赖包有点大,大概有1.3G大小,所以建议在WIFI的环境下安装,安装时尽量不要锁屏,按照引导即可完成配置,如下图
在这里插入图片描述

注意事项:

  • 存储空间要在4GB以上表示安装完成。否则存在下载不全的可能,需要重新安装。
  • 安卓需要6.0以上的版本
  • 版本号为V0.84-b1
  • 下载安装成功,应该占用4G以上的存储空间
  • 手机和电脑连接点击Cloud_IP,然后再浏览器端输入IP地址,注意手机和电脑要在同一局域网内
  • 关闭屏幕不会断开连接,建议手机的休眠模式调整为10分钟,要不是容易断开连接
  • 连接的时候,不要用IE模式,用极速模式
  • 有别的方式可以访问手机,但是document是很方便的,/sdcard就是你的手机储存的映射,你可以直接通过手机储存卡访问硬盘
  • Debian上的软件基本都可以在AidCode里面安装
    在这里插入图片描述

用户界面

一.AID Learning手机端运行界面

1. Document(我的电脑):代码文件图形化管理。
2. AidCode(IDE):代码编辑器。
3. Terminal(命令终端):原生Linux运行环境,手机端使用。
4. Clound_IP:自动生成电脑端浏览器访问的IP地址。
5. Xterm(命令终端):原生Linux运行环境,电脑端浏览器使用。
6. Examples(案例):人脸识别,人脸关键点识别,姿态识别等各种商业级应用案例。
7. Jupyter(Notebook):用户常用的交互式代码编辑器。
8. ApkBuild(APP生成器):将用户在AID中开发的代码生成Android应用程序包
9. Safari:内置macOS中的浏览器。
10. VSCode:内置微软公司开发运行于Linux之上的,针对于编写现代 Web 和云应用的跨平台源代码编辑器。
11. Settings:Aid OS系统设置。
12. LFCE4: 即Xfce4,它是类 UNIX 操作系统上的轻量级桌面环境。
13. GameCent:游戏中心。
14. MusicPlay: 音乐播放器。
15. Servive:安装vscode以及常用的依赖包,启动服务。
在这里插入图片描述

二.AID Learning电脑端浏览器中运行界面

1. 要求手机和电脑要在同一wifi下或者电脑连接手机热点,并且手机端的AID程序必须打开。
2. 在手机端的AID中点击Clound_IP,在浏览器中输入Clound_IP中显示的IP地址(使用英文输入法),通过浏览器管理和编辑手机端的代码文件,如新建文件,复制,构建图形化APP等。
3. 提示:连接成功后在浏览器操作的结果会在手机端同步保存,至于在哪个环境中操作,看个人的习惯,另外也可以投屏到电视上,用蓝牙键盘操作。
在这里插入图片描述

三、Document(我的电脑)功能介绍

1. 浏览器中双击Document。
2. 案例文件存放在Home文件夹里面。
3. 左侧可以新建文件夹,也可以新建代码文件(*.py)。
4. 右侧上方红色框内的按钮,下载是将手机中的代码文件复制到电脑中,上传是将电脑的代码文件复制到手机中。
5. i的功能是查看文件信息,选中文件后可以做删除,复制,移动文件等操作。
6. 设置是配置你的账号。
7. 右上角的黄色按钮是windows中的缩小,缩小后的程序在Menu菜单栏上方点击Documents可以恢复到屏幕中,绿色按钮是缩小到矩形框大小和全屏切换,红色按钮是关闭程序。
在这里插入图片描述

四、AidCode(IDE)功能介绍

1. 浏览器中双击AidCode。
2. 在这里插入图片描述Run也有三个功能,Run py2是运行python 2.x版本的代码,Run py3是运行 python 3.x的代码,V0.82内置Python为3.64。Log/Src是日志和源码切换。最下方是代码调试窗口。
3. 在这里插入图片描述中Open是打开py代码文件,New是新建py代码文件,Wizard是开发安卓手机APP的图形化设计界面,里面有许多图形化的控件,可以加快APP开发速度,这个功能在以后详细介绍,Save是保存py代码文件。
4. 在这里插入图片描述这里是查看最近打开的文件和清除记录。
5.在这里插入图片描述 设置代码显示的主题,调整代码大小,颜色。
6.在这里插入图片描述 点击该按钮返回到AID OS桌面。
在这里插入图片描述

五、 Xterm(命令终端)功能介绍

1. 浏览器中双击Xterm。
2. 不要使用Terminal,会报错,这是手机端使用的命令终端操作。
3. 这里可以输入任何linux命令,如ls,cd,pwd等
在这里插入图片描述

六、Examples(案例)功能介绍

1. 浏览器中双击Examples,双击案例图标,切换到代码编辑窗口,点击Run
py3,即可查看运行结果,运行案例时候手机不要锁屏,保持常亮,避免无法调用摄像头。
2. Start coding Now!是测试输出”hello world“。
3. Open Camera Ex是打开手机端摄像头。
4. Face Pose是人脸关键点识别案例。
5. Face ID是人脸识别案例。
6. HandPose Recogonize是手势识别案例。
7. PersonPose Recogonize是单人姿态识别案例。
8. MutiPose Recogonize是快速多人姿态识别案例。
9. Get more examples是访问官网找寻更多案例。

提示:案例的代码不要随意改动,因为AID默认运行前会保存代码文件,如果修改测试,可以先复制。
在这里插入图片描述

七、Jupyter功能介绍

1. 浏览器中双击Jupyter,会在浏览器中新建一个窗口,第一次使用输入密码是admin。
2. Jupyter notebook的具体用法可以查看官方说明文档。
在这里插入图片描述

八、ApkBuild(APP生成器)功能介绍

1. 点击Start Now by Tool!进入图二界面。
2. Choose Your .Py File是选择Python入口文件。
3. Choose Other Files Used By Py(Opthonal)是选择人工智能模型和图片,可以选择文件夹,也可以选择文件。
4. Build Apk Now开始生产Apk。
5. 生成的Apk在Home文件夹中。
在这里插入图片描述

开发文档

AidLearning 支持用Python2/3来可视化开发您的App,内置了最为流行的深度学习框架caffe,mxnet,keras,pytoch,tensorflow,ncnn,opencv,scipy…内置了可视化AI开发编辑器,支持触摸拖拽式界面设计,支持代码动态调试和运行。支持在移动端和PC端用python开发你的AI应用,支持把你的python源码转化为APP(Apk)发布。

支持的包和框架:

python2支持:

  • absl-py==0.7.0
  • altgraph==0.16.1
  • appdirs==1.4.3
  • astor==0.7.1
  • backports.shutil-get-terminal-size==1.0.0
  • backports.weakref==1.0.post1
  • caffe==1.0.0
  • certifi==2018.11.29
  • chardet==3.0.4
  • Click==7.0
  • colorama==0.4.1
  • configobj==5.0.6
  • cryptography==1.7.1
  • cycler==0.10.0
  • Cython==0.25.2
  • decorator==4.0.11
  • dis3==0.1.3
  • easydict==1.9
  • EditOnline==0.1.14
  • enum34==1.1.6
  • Flask==1.0.2
  • funcsigs==1.0.2
  • functools32==3.2.3.post2
  • futures==3.2.0
  • gast==0.2.2
  • graphviz==0.10.1
  • grpcio==1.18.0
  • h5py==2.9.0
  • idna==2.8
  • imutils==0.5.2
  • ipaddress==1.0.17
  • ipython==5.8.0
  • ipython-genutils==0.2.0
  • itsdangerous==1.1.0
  • Jinja2==2.10
  • Keras==2.2.4
  • Keras-Applications==1.0.7
  • Keras-Preprocessing==1.0.9
  • keyring==10.1
  • keyrings.alt==1.3
  • Markdown==3.0.1
  • MarkupSafe==1.1.1
  • matplotlib==2.0.0
  • mock==2.0.0
  • mxnet==1.0.0
  • networkx==1.11
  • nose==1.3.7
  • numpy==1.14.5
  • pathlib2==2.3.3
  • pbr==5.1.2
  • pexpect==4.2.1
  • pickleshare==0.7.5
  • Pillow==4.0.0
  • prompt-toolkit==1.0.15
  • protobuf==3.6.1
  • ptyprocess==0.5.1
  • pyasn1==0.1.9
  • pycrypto==2.6.1
  • Pygments==2.3.1
  • pygobject==3.22.0
  • PyInstaller==3.5
  • pyobfuscate==0.3
  • pyparsing==2.1.10
  • Pyste==0.9.10
  • python-dateutil==2.5.3
  • python-for-android==0.7.0
  • pytz==2016.7
  • pywebview==2.4
  • pyxdg==0.25
  • PyYAML==3.12
  • remi==2019.4
  • requests==2.21.0
  • scandir==1.10.0
  • scikit-image==0.12.3
  • scikit-learn==0.20.3
  • scipy==0.18.1
  • SecretStorage==2.3.1
  • sh==1.12.14
  • simplegeneric==0.8.1
  • six==1.10.0
  • sklearn==0.0
  • subprocess32==3.2.7
  • tensorboard==1.10.0
  • tensorflow==1.10.0
  • termcolor==1.1.0
  • traitlets==4.3.2
  • urllib3==1.24.1
  • wcwidth==0.1.7
  • Werkzeug==0.14.1

python3支持:

  • absl-py==0.7.1
  • altgraph==0.16.1
  • astor==0.8.0
  • attrs==19.3.0
  • backcall==0.1.0
  • bleach==1.5.0
  • caffe==1.0.0
  • certifi==2019.3.9
  • chardet==3.0.4
  • Click==7.0
  • cycler==0.10.0
  • Cython==0.29.7
  • decorator==4.4.0
  • defusedxml==0.6.0
  • entrypoints==0.3
  • Flask==1.0.3
  • gast==0.2.2
  • gluoncv==0.4.0.post0
  • grpcio==1.20.1
  • h5py==2.9.0.post0
  • html5lib==0.9999999
  • htmlPy==2.0.3
  • idna==2.8
  • imageio==2.5.0
  • importlib-metadata==1.3.0
  • ipykernel==5.1.3
  • ipython==7.5.0
  • ipython-genutils==0.2.0
  • ipywidgets==7.5.1
  • itsdangerous==1.1.0
  • jedi==0.13.3
  • Jinja2==2.10.1
  • jsonschema==3.2.0
  • jupyter==1.0.0
  • jupyter-client==5.3.4
  • jupyter-console==6.0.0
  • jupyter-core==4.6.1
  • Keras==2.2.4
  • Keras-Applications==1.0.8
  • Keras-Preprocessing==1.0.9
  • kiwisolver==1.1.0
  • Markdown==3.1.1
  • MarkupSafe==1.1.1
  • matplotlib==3.1.0
  • mistune==0.8.4
  • more-itertools==8.0.2
  • mxnet==1.5.0
  • nbconvert==5.6.1
  • nbformat==4.4.0
  • networkx==2.3
  • nose==1.3.7
  • notebook==6.0.2
  • numpy==1.16.3
  • pandas==0.24.2
  • pandocfilters==1.4.2
  • parso==0.4.0
  • pexpect==4.7.0
  • pickleshare==0.7.5
  • Pillow==6.0.0
  • prometheus-client==0.7.1
  • prompt-toolkit==2.0.9
  • protobuf==3.7.1
  • psutil==5.6.3
  • ptyprocess==0.6.0
  • pydot==1.4.1
  • Pygments==2.4.0
  • PyInstaller==3.5
  • pyparsing==2.4.0
  • pyrsistent==0.15.6
  • python-dateutil==2.8.0
  • python-gflags==3.1.2
  • pytz==2019.1
  • PyWavelets==1.0.3
  • PyYAML==5.1
  • pyzmq==18.1.1
  • qtconsole==4.6.0
  • remi==2019.4
  • requests==2.22.0
  • scikit-image==0.15.0
  • scipy==1.3.0
  • Send2Trash==1.5.0
  • six==1.12.0
  • tensorboard==1.8.0
  • tensorflow==1.5.0
  • tensorflow-tensorboard==1.5.1
  • termcolor==1.1.0
  • terminado==0.8.3
  • testpath==0.4.4
  • torch==1.1.0a0+6b74856
  • tornado==6.0.3
  • tqdm==4.32.1
  • traitlets==4.3.2
  • urllib3==1.25.3
  • wcwidth==0.1.7
  • Werkzeug==0.15.4
  • widgetsnbextension==3.5.1
  • zipp==0.6.0

支持的AI框架版本

在这里插入图片描述

图形界面开发包cvs

我们重写了cvs包用来在手机端对gui的显示和设计,同时cvs继承了cv2(opencv for python)包和remi(python的跨平台的gui库)包的大部分功能,以下是cvs包的介绍:

怎么使用:

from cvs import *

包里有什么

在这里插入图片描述

简短教程:

首#先,导入cvs包
from cvs import *
#其次,定义一个子类继承“app”类,并声明一个“main”函数,该函数将成为应用程序的入口点。在主函数内部,您必须return the root widget。
Subclass the App class and declare a main function that will be the entry point of the application. Inside the main function you have to return the root widget.
class MyApp(App):
    def __init__(self, *args):
        super(MyApp, self).__init__(*args)
    def main(self):
        lbl = gui.Label("Hello world!", width=100, height=30)
        # return of the root widget
        return lbl
#最后,在主类之外,调用initcv(cvs.openwin)初始化窗口,调用函数“startcv”启动应用程序,并将前面声明的类的名称作为参数传递。
Outside the main class start the application calling the function startcv passing as parameter the name of the class you declared previously.
# starts the gui
initcv(cvs.openwin)
startcv(MyApp)

Run the script,显示如下:
在这里插入图片描述

扩展

支持Java开发

可通过内置的VSCode工具的扩展包下载支持!
也可以通过内置的Jupyter工具拓展Java支持,请参考知乎大佬(myastrotong)的文章

支持C/C++开发

可通过内置的VSCode工具的扩展包下载支持!

支持Js、go开发

可通过内置的VSCode工具的扩展包下载支持!

更多程序语言支持:
在这里插入图片描述

发布了14 篇原创文章 · 获赞 3 · 访问量 596

猜你喜欢

转载自blog.csdn.net/weixin_42055532/article/details/103944207