Page MenuHomePhabricator

Browse commons from app using TensorFlow Lite so that people can see other people's work in real time which will lead to the increase in upload quality.
Closed, DeclinedPublic

Description

Profile Information

Name : Aaron P P
Github : github.com/aaronpp65
Resume : https://docs.google.com/document/d/1-imtJ_eiHxupih26-4ULUGH83gBsQYyLhkszR4bwS1U/edit?usp=sharing
Location : India
Typical working hours : 9am to 5pm,8pm to 1am (IST)

Synopsis

The idea suggested was to provide a search button in the application and then use the Mediawiki API to make the search button list results.
But i would like to propose a different approach to this.
I plan to use TensorFlow Lite in the app so that when people use the camera to snap, the app will scan the premise and automatically display other people’s work if required. We will be using the latest model for image recognition,Inception-v3. This model was known to classify an image across 1000 categories supplied by the ImageNet academic competition with an error rate that approached human performance. This model achieves 5.64% top-5 error while an ensemble of four of these models achieves 3.58% top-5 error on the validation set of the ImageNet whole image ILSVRC 2012 classification task.A common prescription to a computer vision problem is to first train an image classification model with the ImageNet Challenge data set, and then transfer this model’s knowledge to a distinct task. So instead of using a pretrained model, we can train the Inception model using our own wikimedia commons dataset. Hence we will get strings similar to that of the commons. But Most Commons category have only 10 files or less, which is not enough for training. Also most of the images are not fit for training. Hence we map the images in ImageNet to that of the commons and then train the model. Then we will query the string in the commons database and retrieve other people work to be displayed to the user.

Deliverables

  • Train the Inception V3 model with ImageNet.
  • Convert the trained TensorFlow model on disk to the TensorFlow Lite file format (.tflite) using the TensorFlow Lite Converter.
  • Integrate converted file in to the mobile application.
  • Proper documentation and tests for the above-mentioned steps.

Timeline

This week-by-week timeline provides a rough guideline of how the project will be done.
Week 1 :

  • Familiarize with the code and the community, the version control system, the documentation and test system used, datasets etc.

Week 2 :

  • Familiarize with the Inception V3 Tensorflow model code written in python.

Week 3 :

  • Test dataset with pre-trained model to ensure its accuracy.

Week 4 :

  • Create dataset by mapping commons to ImageNet datasets.

Week 5 :

  • Train the model using this dataset.

Week 6 :

  • Test the model.

Week 7 & 8 :

  • Debugging and improvements to the model.
  • Convert the model to the TensorFlow Lite file format. (Starting with a trained TensorFlow model on disk, will convert that model to the TensorFlow Lite file format (.tflite) using the TensorFlow Lite Converter. )

Week 9 & 10:

  • Integrating the converted model into Android application.

    Deploying the TensorFlow Lite model file uses:
    • Java API: A convenience wrapper around the C++ API on Android.
    • C++ API: Loads the TensorFlow Lite Model File and invokes the Interpreter. The same library is available on both Android and iOS. Interpreter: Executes the model using a set of kernels. The interpreter supports selective kernel loading; without kernels it is only 100KB, and 300KB with all the kernels loaded.
    • This is a significant reduction from the 1.5M required by TensorFlow Mobile.
    • On select Android devices, the Interpreter will use the Android Neural Networks API for hardware acceleration, or default to CPU execution if none are available.

Week 11 & 12:

  • Query the database and provide suggestions of other people’s work
  • Debugging and testing.

*Every weekend a few hours will be dedicated to documenting existing code more thoroughly.

Wireframe

The user will select the camera icon which will open up the camera view.The camera will scan the premise and show other peoples work below.

P_20180323_212031-01.jpeg (2×1 px, 1 MB)

Participation

Communication can be done via hangouts.
I will be using Github to publish my code

About Me

  • B.Tech in Computer Science Engineering (6th sem. CGPA : 8.2)
  • I heard about this program through GDG meet
  • I have a 3 month semester break during the duration of the program and i have nothing planned for it like vacation,job etc
  • I always wanted to do give back to the community and i think this is an excellent way to do so . Also i wish to study masters and this program will help me decide if i am going in the right direction

Past Experience

*Currently i am working on a Automatic attendance system that uses CCTV camera to record attendance using facial recognition.

SAM

  • System for Asset Management (SAM) was developed for the Defence department for managing assets distributed over five or more locations.
  • Android App supported with a Web App and database.
  • It can be used to manage assets using any techniques like barcode, QR code, electronic tags etc.
  • I solely developed the Android app
  • Lead the 6 member team
  • Languages Used : JAVA, XML, HTML & CSS - Database worked with : SQL

KTUHUB

  • It is an infobase for all students studying under Dr.A.P.J.Abdul.Kalam Technological Uni.
  • It is a ASP.NET web application developed as a part of internship.
  • Responsible for the backend development in C#
  • 3 member team
  • Languages Used : C#, HTML & CSS - Database worked with : SQL

NPAY

  • An android app for making cashless payments.
  • Originally developed for college canteen.
  • Makes use of NFC technology.
  • Makes use of SQLite database
  • 2 member team
  • Solely developed the application
  • Languages Used : JAVA, XML

Contributions : Fiixed 8 Lint issues (#171) and 2 Codacy issues ( #778 ) of commons-app

Any Other info