Student projects/GSOC/Proposals: Difference between revisions

From Open Food Facts wiki
No edit summary
(added logo)
Line 1: Line 1:
[https://world.openfoodfacts.org Open Food Facts] has been selected as one of the mentor organizations for the [https://summerofcode.withgoogle.com/organizations/5282542639382528/ 2018 Google Summer of Code]
[https://world.openfoodfacts.org Open Food Facts] has been selected as one of the mentor organizations for the [https://summerofcode.withgoogle.com/organizations/5282542639382528/ 2018 Google Summer of Code]
[[File:Gsoc-off.450x225.png]]


The next step is for students and us to work together so that students can build the strongest and most impactful proposals to submit for the Summer of Code program.
The next step is for students and us to work together so that students can build the strongest and most impactful proposals to submit for the Summer of Code program.
Line 7: Line 9:
= Students and Mentors Welcome! =
= Students and Mentors Welcome! =


We are looking for both students to work on projects, and mentors to help them. If you would like to be a GSoC mentor, please contact @stephane or @teolemon on Slack. In particular we are looking for more mentors in the fields of data science, computer vision, machine learning, Android and iOS developments so that we can accept more projects.
We are looking for both students to work on projects, and additional mentors to help them. If you would like to be a GSoC mentor, please contact @stephane or @teolemon on Slack. In particular we are looking for more mentors in the fields of data science, computer vision, machine learning, Android and iOS developments so that we can accept more projects.


= Building strong proposals =
= Building strong proposals =

Revision as of 10:47, 13 March 2018

Open Food Facts has been selected as one of the mentor organizations for the 2018 Google Summer of Code

The next step is for students and us to work together so that students can build the strongest and most impactful proposals to submit for the Summer of Code program.

This page lists the key areas where we need the most help. You are of course welcome to propose other project ideas, and we are looking forward to discussing these ideas and yours.

Students and Mentors Welcome!

We are looking for both students to work on projects, and additional mentors to help them. If you would like to be a GSoC mentor, please contact @stephane or @teolemon on Slack. In particular we are looking for more mentors in the fields of data science, computer vision, machine learning, Android and iOS developments so that we can accept more projects.

Building strong proposals

Project ideas will need to be turned into strong project proposals. Here are some guidelines on how to write strong proposals for the Google Summer of Code.

To make your proposals more relevant, please take some time to familiarize yourself with the Open Food Facts project, and how the database is crowdsourced:

  • Explore our web site https://world.openfoodfacts.org , start with the Discover and Contribute pages.
  • Install our Android or iOS mobile app, scan some food products, and add photos for a few products from your country
  • Create an account on the web site, look up the products that you added, and edit the product pages to fill in the data for ingredients, nutrition facts etc.
  • Join us on Slack, request an instant invite

To discuss ideas, please join us on our Slack:

Google Summer of Code 2018 Project ideas

New Native Android and iOS apps to drive mass adoption and mass contribution

Why it's important: most of the data in the Open Food Facts database come from crowdsourcing through mobile apps: users scan barcodes of products and send us photos and data for missing products. We need Android and iOS apps that bring a lot of value to users so that we gain mass adoption, and that have powerful features to contribute photos and data as easily and quickly as possible.

Background: We currently have a basic app made with Cordova on the Google Play Store and the Apple App Store. Work has started on native apps, but they are missing key features.

Key features needed:

Augmented reality and continuous scan

  • Users need to be able to use the viewfinder of their camera to continuously scan for barcodes of products
  • When a barcode is recognized, an overlay display key information (e.g. A to E nutrition grades), with a link to the full product page
  • While the overlay is on, it needs to be possible to recognize new barcodes that come into view
  • Stretch goal: recognize products without scanning barcode, using technologies like Pastec

Offline mode

  • A small version of the database needs to be included in the app (at install, and then synched regularly)
    • All products, but only key data
  • When scanning products, key data should be shown instantly, even if there's no network
  • History of scanned products, and full data for these products should be saved locally on the device
  • Offline contribution
    • While offline (e.g. in a store with no network), users need to be able to scan and take photos for lots of products
    • Photos should be sent when network becomes available

Drip editing

  • Every little helps. Drip editing means asking Open Food Facts users little questions about the product they are looking at. They should take a split second to answer. Put together, they helps complete products quicker, update existing products and ensure quality. This project is about introducing drip editing, in collaboration with the backend team in either the Android or the iOS version.
  • Sample mockups at Drip Editing

Personnalisation and recommendations

  • Users should be able to provide data about them (age, sex, weight etc.) and their diet restrictions (e.g. allergens, vegan, religious) and preferences (organic, no GMOs, no palm oil..)
  • This data needs to be stored locally on device, and not sent to Open Food Facts and 3rd parties
  • Grade scan products based on this data
  • Display product recommendations / alternatives that better match the user preferences

Computer vision

Why it's important: all product data comes from photos of the product and labels. Today most of this data is entered manually. In order to be able to scale, we need to extract more data from photos automatically.

Background: We currently only do basic OCR for ingredients. There is a lot of room for improvement.

Sample data set:

Improve OCR for ingredients

  • Create golden test sets to measure accuracy of the current OCR and improvements
  • Train OCR models targeted for ingredients
  • Automatic cropping of ingredients lists

OCR for Nutrition Facts tables

  • Automatic recognition and cropping of nutrition facts table
  • OCR for the nutrition facts table

Brands and labels detection

  • Automatically recognize brands and labels (organic, fair trade etc.)

Packaging recognition

  • Is it a can, a bottle, a cardboard pack etc.

Product recognition

  • Recognize the front of products using the camera of the mobile phone, without scanning barcodes
  • Ideally offline and on device recognition (without having to take a picture and sending it to a server)

Create public training sets and data sets for all problems listed above

  • Similar to the Flickr logo set: http://image.ntua.gr/iva/datasets/flickr_logos/
  • Create a set that computer vision students can use to test different algorithms
    • Specify what needs to be included in each set, size, data, representativeness, most useful data format etc.
    • Create the set using real Open Food Facts photos and images

Data science

Why it's important: our product database is growing rapidly (10k new products every Month in early 2018), we need automated ways to extract and validate data

Background: to date, we have done very little in this area

Automatically classify products

  • Detect field values from other field values or bag of words from the OCR
    • Categories
    • Brands (in some cases, a strong feature can be the barcode prefix)
    • Labels
  • When certain, detected values can be applied immediately
  • When less certain, we can ask users to confirm suggestions

Automatically detect errors

  • Bad nutrition facts
    • e.g. by looking at outliers for products of the same category


Other projects

Taxonomy Editor

  • We define and use multilingual taxonomies for categories, labels, ingredients and other fields.
  • Those taxonomies are directed acyclic graphs (hierarchies where a child can have multiple parents).
  • They are currently defined in text files hosted on our wiki: https://en.wiki.openfoodfacts.org/Global_taxonomies but it is becoming unmanageable (the biggest taxonomy for categories is 37k lines long).
  • We need a tool that makes it easy to edit the taxonomy and translate it.

Backend Improvements, New Features and Performance

  • The Open Food Facts backend and web site is coded in Perl and the data is stored in MongoDB
  • We currently have performance issues with MongoDB requests that could be optimized
  • There are many other areas for improvements for the backend, see https://github.com/openfoodfacts/openfoodfacts-server

2017 Project ideas

Your ideas

Please feel free to submit proposals for other ideas that you have. If you have other ideas, please talk to us about them as early as possible, so that we can give you early feedback.

Thank you!