Giter Club home page Giter Club logo

drishtinp / drishti Goto Github PK

View Code? Open in Web Editor NEW
29.0 4.0 15.0 20.33 MB

Drishti is an open-source cross-platform mobile application project at Incubate Nepal that incorporates Machine Learning to help visually impaired people recognize different currency bills and perform daily cash transactions more effectively. We plan to expand Drishti to other applications like Short Text and Document Reading in the future.

License: MIT License

Kotlin 0.31% Swift 1.03% Objective-C 0.10% Dart 98.57%
flutter tflite cash-recognition nepali

drishti's Introduction

Drishti Logo

Build Status App Version License GitHub Stars

Drishti (Nepali: दृष्टि | English: Vision) is an open-source cross-platform mobile application project at Incubate Nepal that incorporates Machine Learning and Artificial Intelligence to help visually impaired people recognize different currency bills and perform daily cash transactions more effectively.

We plan to expand Drishti to other applications like Short Text and Document Reading in the future.


Table of Contents


General Information

The mobile application is used by the visually impaired community to recognize different currency bills and perform their daily cash transactions more easily. This user-friendly app uses the phone camera, accessibility features, and gestures to provide the desired results.


Project Deliverables

  • Mobile Application
  • Computer Vision Model
  • Website

Installation

The app is now available on Google Play Store as Drishti Nepal.

Drishti Google Play Link


App Demo

demo.mp4

Screenshots

Drishti App Screenshots


Technologies

  • Flutter
  • Python
  • Tensorflow

Techstack

  • Frontend: Flutter
  • Data science:
    • Experimentation: PyTorch
    • Training: Tensorflow
    • Deployment: Tflite (Tensorflow Lite)
  • Website: HTML, CSS, JavaScript

Features

List of implemented features:

  • Audio feedback in Native Language (Nepali)
  • Ad-free
  • Available to use Offline
  • History Feature
    • Keep Track of Scanned Notes
    • Sum up the transactions
    • Classify the Scanned Notes ("Today", "This Week", "This Month")

TODOs for future development:

  • Add haptic feedback for Cash Recognition
  • Implement Short Text and Document Reading (Nepali)

Status

  • Cash Recognition Feature
  • Short Text and Document Reading

Inspiration

Drishti app is particularly developed for the blind and low vision community of Nepal. To understand the need of our end users, the team studied and empathized with the blind and low-vision individuals from Blind Youth Association Nepal rather than digging into the financial problems faced by them.

After interviewing more than 50 visually impaired individuals, we found that they are already using some cash recognizing apps but are not satisfied with them. Some interviewees also shed light on their daily difficulties while traveling. They have suggested to include some additional features of location tracking and user friendly GPS in our future iterations. Our basic goal is to make a robust application which could benefit them.

As a/an I want to So that I can Status of progress
User Scan the currency notes at a bank Confirm the total sum of money I received Done
User Identify the bills in the dark using my flashlight Transact money during the evening too Done
Developer Get the feedback from the users Make necessary upgrades in the application Done
Product Owner Know the progress made in the application during each iteration Prioritize the future goals for the project Done
User Recognize the bills without having to ask others Be independent in my financial affairs Done
User Have a simple UI in my application Easily navigate into the app Done
User Have the buttons labeled in the app Properly recognize the buttons using my phone’s screen reader Done
Software engineer Easily get the source code of the app Modify the app and improve its accuracy Done
User See the history of my scanned notes in a day I can keep a record of my expenditure list conveniently Done

Contributing

These are the ways in which you can contribute to this project:

  • Submit bugs and feature requests
  • Review source code changes
  • Contribute directly to improve Drishti (adding new features and fixing bugs). The steps to do so include:
    • Fork this repository
    • Clone the forked repository to your machine
    • Create a branch with your GitHub username
    • Commit your changes, push the changes to GitHub
    • Open a pull request here

Contact Us


License

Drishti is MIT licensed, as found in the LICENSE file.

drishti's People

Contributors

aadarshadhakalg avatar basnetsoyuj avatar iamsannyrai avatar oshin-hi avatar pranjalchalise avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

drishti's Issues

App does not open when Android debug option is on

First of, this is a great initiative. Good to know about the project.

The issue is, I just installed the app and while opening the app, the messaged popped up and it did not allow me to open the app.

I am just curious to know about it. Why are we not allowing the app to run in such environment? I believe it would help to debug better.

Android Version: 6.0
Phone: Huawei

Thanks.

Model Accuracy and App Size

Work on improving model accuracy, simultaneously reducing the app size. The app was not supported by many devices due to its large application size. Since it is not 100% accurate, users are skeptical of the app. The developers have a task to improve the accuracy while reducing the app size at the same time.

Improve SDK Compatibility.

After user testing, we found out that our app does not work on older versions of Android. To ensure that our app reaches many of the visually impaired users, the application has to improve its SDK compatibility.
Current Compatibility-
minSdkVersion 23
targetSdkVersion 29

Implement a Real-time Recognizing Feature

Currently, our app gives the audio output after double-tapping the screen. The app should be able to recognize the notes as soon as it is placed and give audio results. Double-tapping the screen to hear the output is not feasible for our users.

Add haptic feedback for cash recognition.

Add different haptic feedback (vibrations) for different notes (might be helpful in places where the user can't listen to the audio).

This issue has partially been fixed in this commit: c7c8750 by @iamsannyrai.

(Gives different haptic feedback when a note is detected vs note isn't detected)

We still need to integrate different vibrations of different patterns/intensities for each individual note.

ML code to train model

I was looking at the code and was wondering about the way to train the model. Also, I don't see any datasets that are being used to train and recognize the cash. Are you guys running the script in any cloud platform to train the model? Can I get to see the code to train the model?

Add Flashlight Feature.

Recognizing notes in dim light and nights is a huge functional requirement for our users. Due to time constraints, the team could not implement the flashlight feature in the camera package.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.