ποΈ AI Vision
Using small machine learning or AI models we will be performing various Computer Vision related operations, for example Object Detection on images. This project purely focused on cross-platform applications & we can run small AI/ML models on our mobile phones in offline mode.
This project is buid on
kivy,kivymdand usesonnxruntime,numpy,opencvetc. to perform the tasks. This is still at very early phase before this project matures at some level.
Features
- Objects detection from
Imagein local storage. It uses SSD-MobilenetV1 - Directly capture from
Camera& detect objects on the image. It also uses the same model as above. Image Prediction: if you have an image of a single object & want to get top-5 predictions about the image, just upload & clickClassify. It uses ResNet18 which has around1000categories.Identify Speciesfrom a photo. It uses Google SpeciesNet & it has around2000odd species.No Ads, completelyopen-source(free).- No
trackers, nodata collectionetc. Actually you own your data & your app.
π½οΈ Demo
You can play below Video or click this Youtube Link to see the demo. Please let me know in the comments, how do you feel about this App.
π§ Our Scematic Architecture
To be added...
π§βπ» Quickstart Guide
π± Download & Run the Android App
You can check the Releases and downlaod the latest version of the android app on your phone.
If you want to select an image from phone memory, do it either from
DCIMorDownloadsorPicturesor any subfolders of this three folders. Same goes while saving the output image too.If you use the camera detection, please note that it uses back camera in
Landscapemode only, so you may need to rotate your phone to capture it properly.
Requirements
- Minimum
Android 9
π» Download & Run the Windows or Linux App
To be built later. For now you may use with python directly as mentioned below.
π Run with Python
- Clone the repo
git clone https://github.com/daslearning-org/vision-ai.git
- Run the application
cd vision-ai/onnx/
pip install -r requirements.txt # virtual environment is recommended
python main.py
π₯ More open-source apps from us
You may check our other apps from our app list
π¦Ύ Build your own App
The Kivy project has a great tool named Buildozer which can make mobile apps for Android & iOS
π± Build Android App
A Linux environment is recommended for the app development. If you are on Windows, you may use WSL or any Virtual Machine. As of now the buildozer tool works on Python version 3.11 at maximum. I am going to use Python 3.11
# add the python repository
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
# install all dependencies.
sudo apt install -y ant autoconf automake ccache cmake g++ gcc libbz2-dev libffi-dev libltdl-dev libtool libssl-dev lbzip2 make ninja-build openjdk-17-jdk patch patchelf pkg-config protobuf-compiler python3.11 python3.11-venv python3.11-dev
# optionally we can default to python 3.11
sudo ln -sf /usr/bin/python3.11 /usr/bin/python3
sudo ln -sf /usr/bin/python3.11 /usr/bin/python
sudo ln -sf /usr/bin/python3.11-config /usr/bin/python3-config
# optionally you may check the java installation with below commands
java -version
javac -version
# install python modules
git clone https://github.com/daslearning-org/vision-ai.git
cd vision-ai/onnx/
python3.11 -m venv .env # create python virtual environment
source .env/bin/activate
pip install -r req_android.txt
# build the android apk
buildozer android debug # this may take a good amount of time for the first time & will generate the apk in the bin directory