---
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.
### 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
```