/AidLearning-FrameWork

🔥🔥AidLearning build Linux environment running on the Android devices with GUI, Deep-Learning and Python Visual Programming support. Now support VSCode,Jupyter, pyToApk! One-click install.🚀

Primary LanguagePythonOtherNOASSERTION

Linux+AI+Python+Gui 4in1 Environments Running on the Android . [中文版] [English]

Build Status Coverage Status License Repo size Code size Fork star commit

AidLearning is a completely Linux system running on the Android with GUI, Deep-Learning and Python Visual Programming support . The AidLearning framework which have the Linux+Android+AI+Python 4in1 environments Developed and Maintained by several students from Cas University and Yale University.

Table of Contents

Introduce

License

AidLearning App builds a graphical interface Linux system (without need root) on Android phones and coexists with your Android system. The App has a built-in system of leading deep learning frameworks, including Caffe, Tensorflow, Mxnet, pytorch, keras, ncnn and opencv. You no longer need complex configuration, wall-turning downloads and Install dependency packages.

AidLearning is also a pocket AI programming tool. The built-in AICode visual IDE allows you to easily program on your mobile phone with Python (supporting Python 2 and Python 3), support touch-and-drag interface design, support real-time debugging and graphical running of codes. AidLearning has a large number of AI source code examples, which include face recognition, pose recognition and classification. You can develop the AI App on mobile phones on a zero-based basis.

In addition, AidLearning provides wifi-based mapping projection technology, which can project mobile phone code to PC for Web interactive programming and SSH remote command interaction. Easy viewing on televisions and the ability to projector for large screen display, ensures the ability to present in group settings.

Last,the new version 0.82 now support convert the py to App(android apk),with the buildin ApkBuild tools,you can published the python project to only one apk,it's very fun and business.support VSCode and Jupyter programming tools,so you can coding by any languages(python,java,c++,js,go...)

In short, AidLearning has created a touch-and-drag programming platform for rapid development and learning that combines Android + Linux + AI 3IN1 environments. It utilizes mobile phones for fragmented programming and fully optimizes use of the development advantages of the two major operating systems (Android + Linux) and the perfect terminal advantages of mobile phones. AidLearning offers a distinct advantage to its users through an effective new platform for programming learning and development.

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, nubia etc. In addition, the requirement of storage space is a little big. It is suggested that there should be 6G free storage space.

Installation

To install AidLearing, Simply download an App (apk file) and install it on your mobile device. download newest version at : Download v0.83 now!
Other version at:https://github.com/aidlearning/AidLearning-FrameWork/releases

The APP (apk) is only 10M,when you install the apk and launch,the apk will auto download the dependence of the linux and examples of codes . all is about 1G size to download .So it's recommended that you install it in a wifi environment.

Important reminder: Click the setting icon after entering the desktop, the dialog box for the camera permission will pop up, please click agree, if you want to use the built-in examples.

Download v0.83 for chinese version now!

Support


Support AI Framework: frame


Support Python2.7 and Python3.6.4:

AidLearning Python2.7 Python3.6
caffe ✓1.0.0 ✓ 1.0.0
mxnet ✓1.0.0 ✓1.5.0
tensorflow ✓1.10.0 ✓1.5.0
Gluoncv ✓ 0.40
Keras ✓2.2.4 ✓2.2.4
Pytorch ✓1.1.0
Opencv(cv2) ✓2.4.9 ✓3.4.6
Scipy ✓0.18.1 ✓1.3.0
Numpy ✓1.14.5 ✓1.16.3

screen

Touch_and_Drag_Programming

Now you can easily customize your GUI with touch and drag using wizard!Wizard will produce the code automatic like this:

class MyApp(App):
 	def __init__(self, *args):
  		super(MyApp, self).__init__(*args)

	def main(self):
		container = gui.VBox(width=120, height=100)
		self.lbl = gui.Label('Hello world!')
		self.bt = gui.Button('Press me!')

	    # setting the listener for the onclick event of the button
		self.bt.onclick.do(self.on_button_pressed)

	    # appending a widget to another, the first argument is a string key
		container.append(self.lbl)
		container.append(self.bt)

	    # returning the root widget
		return container

        #listener function
	def on_button_pressed(self, widget):
		self.lbl.set_text('Button pressed!')
		self.bt.set_text('Hi!')

drag_touch

更多请阅读Wizard-触摸拖拽式设计你的界面

SSH

  • PC can connect to mobile by using ssh-keygen. Generate a new key pair with ssh-keygen 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) on the pc to upload ssh's file(id_rsa and id_rsa.pub).

sdcard

  • upload finished , just restart the app on the android ,open the terminal the type this command like this to connect:
ssh u0_a311@192.168.1.6 -p8022

Aid_code

  • 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.

sdcard

  • 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/ assume your phone's IP is 192.168.1.8, you can check your phone's IP by commanding ifconfig (run ifconfig command under terminal) sdcard
  • code IntelliSense: New code auto-prompting function, if you input the initial letters of variables, functions and keywords, the system will automatically complete , which can greatly improve efficiency.

深入了解Gui开发原理请阅读cvs-强大的图形界面开发包

Files transfer

You just need to open the web address: IP of your mobile phone:8080/, 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:8080/ then hit the upload button to upload the pc file to your mobile,or hit the download button to download the files of mobile to the pc. fileupload

Examples

---Examples inside

  • Facencnn(mobiefacenet ncnn) 15fps in mobile phone (99.83% in LFW)
  • 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 phone
  • Stylized picture(GAN ) 3fps in mobile phone

更多例子参考

Privacy Policy

  • Additional camera-based (camera) features: You can use this additional feature to capture camera video frames, making it easier to run python programs and view running results.
  • Mobile storage access: Our platform will read the package downloaded from the mobile phone, and users can download and use more third-party package.

References