--- license: mit title: AI Vision Application - Cross-platform, Offline description: An open-source cross-platform AI Vision application built on onnxruntime, numpy & opencv. It can perform tasks like object detection, image classification on your image. It also uses a model like Google SpeciesNet (cameratrapai) to identify wildlife species. meta: - name: keywords content: ai vision, object detection, speciesnet google, google cameratrapai, speciesnet onnxruntime model, onnxruntime, opencv, numpy, offline ai, cross-platform ai app, onnxruntime android, python on android - name: author content: Somnath Das - name: robots content: index, follow - property: og:image content: https://blog.daslearning.in/llm_ai/ml/images/ogImg.png - property: og:title content: AI Vision Application - Cross-platform, Offline - property: og:description content: An open-source cross-platform AI Vision application built on onnxruntime, numpy & opencv. It can perform tasks like object detection, image classification on your image. It also uses a model like Google SpeciesNet (cameratrapai) to identify wildlife species. - property: og:url content: https://blog.daslearning.in/llm_ai/ml/ai-vision.html - name: canonical content: https://blog.daslearning.in/llm_ai/ml/ai-vision.html - property: og:type content: article - property: article:author content: https://daslearning.in/contact/ - property: og:site_name content: DasLearning - name: theme-color content: "#0f172a" # dark blue-grey for Chrome mobile UI - name: viewport content: width=device-width, initial-scale=1.0 --- # 👁️ 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`, `kivymd` and uses `onnxruntime`, `numpy`, `opencv` etc. to perform the tasks. This is still at very early phase before this project matures at some level. GitHub Downloads (all assets, all releases) GitHub Downloads (all assets, all releases) ### Features 1. Objects detection from `Image` in local storage. It uses [SSD-MobilenetV1](https://github.com/onnx/models/tree/main/validated/vision/object_detection_segmentation/ssd-mobilenetv1) 2. Directly capture from `Camera` & detect objects on the image. It also uses the same model as above. 3. `Image Prediction`: if you have an image of a single object & want to get top-5 predictions about the image, just upload & click `Classify`. It uses [ResNet18](https://github.com/onnx/models/tree/main/validated/vision/classification/resnet) which has around `1000` categories. 4. `Identify Species` from a photo. It uses [Google SpeciesNet](https://github.com/google/cameratrapai) & it has around `2000` odd species. 5. `No Ads`, completely `open-source` (free). 6. No `trackers`, no `data collection` etc. Actually you own your data & your app. ## 📽️ Demo You can play below Video or click this [Youtube Link](https://www.youtube.com/watch?v=wUABgn4JYc4) 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](https://github.com/daslearning-org/vision-ai/releases) and downlaod the latest version of the android app on your phone. 1. If you want to select an image from phone memory, do it either from `DCIM` or `Downloads` or `Pictures` or any subfolders of this three folders. Same goes while saving the output image too. 2. If you use the camera detection, please note that it uses back camera in `Landscape` mode 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 1. Clone the repo ```bash git clone https://github.com/daslearning-org/vision-ai.git ``` 2. Run the application ```bash 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](https://daslearning.in/apps/) ## 🦾 Build your own App The Kivy project has a great tool named [Buildozer](https://buildozer.readthedocs.io/en/latest/) 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` ```bash # 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 ```