Skip to content

Commit

Permalink
Merge pull request #181 from yashk2000/readme
Browse files Browse the repository at this point in the history
Update README.md
  • Loading branch information
yashk2000 committed Aug 24, 2020
2 parents 906122e + df6e689 commit c607742
Showing 1 changed file with 49 additions and 18 deletions.
67 changes: 49 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,31 +1,62 @@
<img height='200' src="https://user-images.githubusercontent.com/37406965/51083189-d5dc3a80-173b-11e9-8ca0-28015e0893ac.png" align="left" hspace="1" vspace="1">
<img height='175' src="https://user-images.githubusercontent.com/37406965/51083189-d5dc3a80-173b-11e9-8ca0-28015e0893ac.png" align="left" hspace="1" vspace="1">

# PPI-Vision Android Application for MifosX
# PPI-Vision :iphone:

Vision PPI is a computer vision and machine learning based app to help in filling out the PPI Survey. There are two broad aspects to this project - The android app which provides the interface to the field officer for conducting the survey and the machine learning models which will be used to analyze the images captured.
## Screenshots
Vision PPI is a computer vision and machine learning based app to help in filling out the PPI Survey. There are two broad aspects to this project - The android app which provides the interface to the field officer for conducting the survey and the machine learning models which will be used to analyze the images captured.

|<p> <img src="https://user-images.githubusercontent.com/38397893/85922793-e3c54300-b87d-11ea-80d6-810d53774961.jpg" /></p>| <p> <img src="https://user-images.githubusercontent.com/38397893/85922788-e162e900-b87d-11ea-89dc-089cd90ee819.jpg" /> </p> |
|---|---|
|<p><img src="https://user-images.githubusercontent.com/38397893/85922786-df992580-b87d-11ea-8737-d073ba08578e.jpg" /></p> | <p><img src="https://user-images.githubusercontent.com/38397893/85922782-dd36cb80-b87d-11ea-88a5-9c0660e7bc29.jpg" /></p> |
For more information about the usecases of the project and details about PPI, the API used and demo credentials, please take a look at the [project wiki](https://github.com/openMF/ppi-vision/wiki).

You can also find a demo <a href="https://youtu.be/In6A1iLQ_QU">here</a>.
## Screenshots :camera:

## How to Contribute
| <img src="https://user-images.githubusercontent.com/41234408/91012906-80992800-e604-11ea-960f-7956ed1c6b30.png" width="250" /> | <img src="https://user-images.githubusercontent.com/41234408/91012933-8ee74400-e604-11ea-8dca-4056855e25d5.png" width="250" /> | <img src="https://user-images.githubusercontent.com/41234408/91012972-a1fa1400-e604-11ea-92d2-5ba6ef186fa4.png" width="250" /> |
|---|---|---|
| <img src="https://user-images.githubusercontent.com/41234408/91013027-b2aa8a00-e604-11ea-8d46-41b63ecff38b.png" width="250" /> | <img src="https://user-images.githubusercontent.com/41234408/91013053-bccc8880-e604-11ea-8670-9fe584d11b61.png" width="250" /> | <img src="https://user-images.githubusercontent.com/41234408/91013076-c9e97780-e604-11ea-8c47-c965e401c1ab.png" width="250" /> |
| <img src="https://user-images.githubusercontent.com/41234408/91013128-db328400-e604-11ea-8ba8-3d6603424b7b.png" width="250" /> | <img src="https://user-images.githubusercontent.com/41234408/91013158-e5548280-e604-11ea-8049-a3fc2a391af8.png" width="250" /> | <img src="https://user-images.githubusercontent.com/41234408/91013194-ef768100-e604-11ea-9c6c-c76c520b85bd.png" width="250" /> |

This is an OpenSource project and we would be happy to see new contributors. The issues should be raised via the GitHub issue tracker.
All fixes should be proposed via pull requests.
## Contributions :information_desk_person:

## Building the Code
We welcome contributions in form of issues, as well as pull requests. Please go though the contribution guidelines over [here](https://github.com/openMF/ppi-vision/blob/master/CONTRIBUTING.md) and also through our Code of Conduct [here](https://github.com/openMF/ppi-vision/blob/master/CODE_OF_CONDUCT.md).

1. Clone the repository using HTTP: git clone https://github.com/openMF/ppi-vision.git
## Development Setup :triangular_ruler:

2. Open Android Studio.
Before you begin, you should have already downloaded the Android Studio SDK and set it up correctly. You can find a guide on how to do this here: [Setting up Android Studio](http://developer.android.com/sdk/installing/index.html?pkg=studio)

3. Click on 'Open an existing Android Studio project'
### Setting up the Android Project :black_nib:

4. Browse to the directory where you cloned the ppi vision repo and than go to "visionppi" and click OK.
1. Download the project source. You can do this either by forking and cloning the repository (recommended if you plan on pushing changes) or by downloading it as a ZIP file and extracting it.

5. Let Android Studio import the project.
2. Install the NDK in Android Studio.

6. Build the application in your device by clicking run button.
3. Open Android Studio, you will see a **Welcome to Android** window. Under Quick Start, select *Import Project (Eclipse ADT, Gradle, etc.)*

4. Navigate to the directory where you saved the ppi-vision project, select the root folder of the project (the folder named "vision-ppi"), and hit OK. Android Studio should now begin building the project with Gradle.

5. Once this process is complete and Android Studio opens, check the Console for any build errors.

- *Note:* If you receive a Gradle sync error titled, "failed to find ...", you should click on the link below the error message (if available) that says *Install missing platform(s) and sync project* and allow Android studio to fetch you what is missing.

6. To Build the app, go to *Build > Make Project* (or alternatively press the Make Project icon in the toolbar).

7. If the app was built successfully, you can test it by running it on either a real device or an emulated one by going to *Run > Run 'app'* or pressing the Run icon in the toolbar.

### Image Labelling :framed_picture:

#### Data Collection

For data collection, [this](https://github.com/hardikvasa/google-images-download) tool can be used. In order to increase the size of the dataset, we have used image augmentation techniques present in [GeneratedImages.py](https://github.com/openMF/ppi-vision/blob/master/DataCollection/GenerateImages.py). You can see how each technique works [here](https://github.com/openMF/ppi-vision/blob/master/DataCollection/ImageAugmentation.ipynb) in the sample notebook.

#### Model Training

We use [Google's MLKit SDK](https://developers.google.com/ml-kit) for image labelling. In order to train the model used further, we use transfer learning on our collected data.

**Useful Resources for getting started with MLKIt if you are interested in contributing to this project:**

- [Label images with ML Kit on Android](https://developers.google.com/ml-kit/vision/image-labeling/android)
- [MLKIt Quickstart Sample](https://github.com/googlesamples/mlkit/tree/master/android/vision-quickstart)
- [MLKit Custom Models](https://developers.google.com/ml-kit/custom-models)
- [Labelling images with a custom model on Android](https://developers.google.com/ml-kit/vision/image-labeling/custom-models/android)
- [Converting an existing TensorFlow object detection model into a TensorFlow Lite model](https://www.tensorflow.org/lite/convert)

### License :page_with_curl:

This project adhers to the [MIT License](https://github.com/openMF/ppi-vision/blob/master/LICENSE).

0 comments on commit c607742

Please sign in to comment.