AidLearning build a Linux system running on the Android with GUI, AI and Python support…

xiaogang sun
6 min readJun 8, 2019

--

AidLearning FrameWork is a Linux system with GUI running on Android phone for AI programming without needing root. Aidlearning is also a Python programming framwork for mobile devices. In addition to some of the features available in the Linux environment, AidLearning has supported GUI and neural network environments. For example, Caffe, Tensorflow, Mxnet,Gluoncv, ncnn, Keras,Pytorch are perfectly supported…

Built with simplicity in mind, Aid Learning supports a list of Top Machine Learning Framework for Deep Learning. Now we support Caffe, Tensorflow, Mxnet, ncnn, Keras, Pytorch,Gluoncv, cv2,scipy…. powerfully.

Furthermore we provide an AI coding develop tool named Aid_code. It can provide you a visual AI programming IDE by using Python from zero on our framework! It means that when it is installed, your Android phone owned a Linux system with GUI which can write and run AI program in it as same as in PC.

Now you have a complete linux with GUI running on Android (Real linux running on the busybox and not virtul environment. So it is faster and almost real-time.) and can write your AI code on it visually using the Python!

On Github:AidLearning-FrameWork

Dependencies

All you need is an Android devices (phone ,tablet or arm board) that supports the CPU of Arm64(aarch64). The Android version requires more than 6.0. If you think the parameters are not clear enough, I would like to say that most of the mainstream mobile phones support it, such as Samsung, Huawei, MI, OPPO, VIVO, etc.In addition, the requirement of storage space is a little big. It is suggested that there should be 4G free storage space.

Installation

To install AidLearing, Simply download an app (apk file) and install it on your mobile device. download at:
http://www.aidlearning.net/downloads/aidlux-05-10.apk (support python2.7, python3 not support)
http://www.aidlearning.net/downloads/aidlux-05-31.apk (support python2.7 and python3.5.1)
http://www.aidlearning.net/downloads/aidlux-06-01.apk (support python2.7 and python3.6.4)

The app (apk) is only 8M,when you install the apk ,the apk will download the depdence of the framework
is 700M and 350M examples of AI codes using python. all is about 1G size to download .So it’s recommended that you install it in a WiFi environment.

Support AI Framework

— -

* [Caffe]https://github.com/BVLC/caffe
* [Tensorflow]https://github.com/tensorflow/tensorflow
* [Mxnet]https://github.com/apache/incubator-mxnet
* [Keras]https://github.com/keras-team/keras
* [ncnn]https://github.com/Tencent/ncnn
* [pytorch]https://github.com/pytorch/pytorch
* [opencv]https://github.com/opencv/opencv

— -

GUI Customize

Now you can easily customize your GUI with Python code!

cvs. setTitle (“Face Recognize”)
cvs. setInput_dict (usr_dict)
cvs. setSubmitName (“Register your FaceID”)
cvs. setCamX (350,480)
cvs. setInfoX (320,60)

As shown in the figure above, we divide an app into four areas: Title area, camera area, input area, info show area. An app GUI can consist of one or more areas.You can use Python (cvs class) statements to manipulate the Title, size and layout of these areas.
for examples: in the info area ,you can do this:
cvs. setInfoX (320,60) # setting the width,height of the info area
cvs. infoshow (“this is info show”) # show info in the info area


In particular, input area, we greatly simplify the operation process, you only need to specify a dict, AidLeaning will automatically generate a form for you to interact with users, such as you need to register a face, you can do this:

usr_dict={‘username’: ‘’, ‘type’: ‘add_person’}# define the input list
cvs.setInput_dict(usr_dict)# setting for gui
cvs.setSubmitName(“Register your FaceID”)#setting the name of submit button

so ,aidlearning will produce this gui:

SSH (connect to PC)

PC can connect to mobile by using **ssh-keygen**. Generate a new key pair with <b>ssh-keygen</b> command in your PC. the command ssh-keygen produce the file of id_rsa and id_rsa.pub in the dir: ~/.ssh/

Just need you do: open the url:mobilephone’sip:8910/upload(for example:http://192.168.1.6:8910/upload) in the pc to upload ssh’s file(id_rsa and id_rsa.pub).

Main Features:

#Graphical User Interface
We fixed Graphical User Interface for the Linux on Andorid(It has been pruned by andorid!), so you can use the GUI just like on the pc. For instance, You can use opencv to open and view camera!

# Fast,Real-Time
Real linux running on the busybox and not virtul environment like VirtulBox. So it is faster and almost real-time

# Easy to use
We provide a plenty of examples and by using our framework, you can run it with a tap, and then get a visual log to show the informations or errors.

# Coding anywhere
You can coding on your phone anywhere, anytime. Every inch of fragmentation have been fully utilized. Your creativity can be instantly realized with a flash of inspiration.

# Energy Star

According to the test on the mainstream smartphone like Samsung, Aid Learning Framework only use 1% power consumption in a whole day (Standby)

Youtobe show

[Watch the video](https://youtu.be/bkvNXgCi3_c)

ScreenShot of AidLearning

Examples Inside

Facencnn(mobiefacenet ncnn) 15fps in mobile phone
Face Landmark (106 keypoints ncnn) 15fps in mobile phone
handpose (tensorflow ) 5fps in mobile phone
body posenet for single person(converted from google ) 10fps in mobile phone
body posenet for multi-person(converted from google ) 7fps in mobile phoneStylized picture(GAN ) 3fps in mobile phone

…..

Aid_code IDE of python

We provide an AI coding develop tool named Aid_code. It can provide you a visual AI programming IDE by using Python from zero on our framework! Using the tool, you can run your python2 or python3 codes online.so ,you can coding with Aid_code IDE on your phone anywhere, anytime.

Of course, you can use Aid_code on the web to edit your code online. For example, you can use web coding with Aid_code on PC. You just need to open the web address: IP of your mobile phone:8900/, when your PC and mobile phone are in the same LAN.

You can open it on a PC, for example:
Http://192.168.1.8:8900/, if your phone’s IP is 192.168.1.8, you can check your phone’s IP by commanding ifconfig (run ifconfig under terminal)

Contributors

We are inviting anyone who wishes to contribute to the AidLearning project to reach to us. We primarily need contributions in translating the documentation of the project’s code to major languages that includes but not limited to French, Spanish, Portuguese, Arabian and more. We want every developer and researcher around the world to benefit from this project irrespective of their native languages.

We give special thanks to [qidiso](https://github.com/qidiso/) for his incredible and excellent work in translating AidLearning’s documentation to the Chinese language. Find below the contact details of those who have contributed immensely to the AidLearning project.

Email: postmaster@aidlearning.com
Website: http://www.aidlearning.net
Github: AidLearning-FrameWork

References

* VTE (libvte): Terminal emulator widget for GTK+, mainly used in gnome-terminal. [Source](https://github.com/GNOME/vte), [Open Issues](https://bugzilla.gnome.org/buglist.cgi?quicksearch=product%3A%22vte%22+), and [All (including closed) issues](https://bugzilla.gnome.org/buglist.cgi?bug_status=RESOLVED&bug_status=VERIFIED&chfield=resolution&chfieldfrom=-2000d&chfieldvalue=FIXED&product=vte&resolution=FIXED).
* iTerm 2: OS X terminal application. [Source](
https://github.com/gnachman/iTerm2), [Issues](https://gitlab.com/gnachman/iterm2/issues) and [Documentation](http://www.iterm2.com/documentation.html) (which includes [iTerm2 proprietary escape codes](http://www.iterm2.com/documentation-escape-codes.html)).
* Konsole: KDE terminal application. [Source](
https://projects.kde.org/projects/kde/applications/konsole/repository), in particular [tests](https://projects.kde.org/projects/kde/applications/konsole/repository/revisions/master/show/tests), [Bugs](https://bugs.kde.org/buglist.cgi?bug_severity=critical&bug_severity=grave&bug_severity=major&bug_severity=crash&bug_severity=normal&bug_severity=minor&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&product=konsole) and [Wishes](https://bugs.kde.org/buglist.cgi?bug_severity=wishlist&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&product=konsole).
* hterm: JavaScript terminal implementation from Chromium. [Source](
https://github.com/chromium/hterm), including [tests](https://github.com/chromium/hterm/blob/master/js/hterm_vt_tests.js), and [Google group](https://groups.google.com/a/chromium.org/forum/#!forum/chromium-hterm).
* xterm: The grandfather of terminal emulators. [Source](
http://invisible-island.net/datafiles/release/xterm.tar.gz).
* Connectbot: Android SSH client. [Source](
https://github.com/connectbot/connectbot)
* Android Terminal Emulator: Android terminal app which Termux terminal handling is based on. Inactive. [Source](
https://github.com/jackpal/Android-Terminal-Emulator).

--

--