Coder Social home page Coder Social logo

ajl.ai's People

Contributors

boazsender avatar cowboy avatar gnarf avatar isaacdurazo avatar joyab avatar kadamwhite avatar mzgoddard avatar pbeshai avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ajl.ai's Issues

Consensus criterea

Add concept of consensus criteria to attribute/annotation types.

Consume this in postAnnotation controller (which is currently being hard coded to do 3 other annotatiosn 100% match)

Remodel state

opening this issue to discuss how state should be modeled.

I'm leaning toward remodeling the client side state, but perhaps both server and client should evolve toward each other now that we know more about this software.

Form Validation

Splitting out from #53: We should require users to have filled out an option for each step of the perceived demographics form before proceeding so they can't get the form into an invisibly invalid state.

This may be a good opportunity to add one final "confirmation" step before submitting & moving on to the next image, and/or to make the checkboxes auto-advance when selected.

This may mean moving form state into redux, per @gnarf's earlier feedback.

Add unit test framework

The boilerplate I am using for #4 does not have a built-in unit testing framework; this issue tracks pulling something like Jest into the project

Fill out missing LFW landmarks

Several sample data faces are missing full landmark data, this issue tracks manually updating the sample data to add in that information

add some way to represent multiple images of the same person

Specifically, start by implement a public_identities table and a link table with all of the images in the system.

identities:

  • id
  • real name
  • public name
  • imdb_id

Joy's model from mongo

  • person_id (IMDB Unique Number)
  • person_realname
  • person_publicName
  • dataset_enrollments (list of datasets with celebrity)
  • Imgs_of_celebrities (list of img urls with celebrity)

Establish Routing

We should implement a front-end router for the React application, and determine what the server infrastructure will be: should this be purely static w/ front-end routing, or have a server, etc

Select & implement an AJAX library

We should convert the existing fake api into something that fires an actual AJAX call to load the data, so that there will be an easier migration path once we have a read-write API to call against.

Design UX checkpoint feedback system

Such as,

  • You've finished a workload & passed validation - take a moment to call that out, then here's the next workload
  • You've finished a workload and your answers do not match the "truths" - call that out and give them ability to re-start w/ the new workload
  • You just tried to annotate a workload that was not sent to you
  • You have been "enrolled"

Some of the errors (see #53) are more a "state" that the user is in, rather than a system error; we should expand whatever we do for error handling, to account for these workflow actions

add logic for creating a new truth

In addition to the commits on PR #78, create logic to set a new truth in the known based on some arbitrary criteria of a "annotatable attribute". Perhaps the first pass is '4 different annotators agree'.

Add logic for establishing ground truth and starting new workloads

When a session posts it's first set of 12 annotations

  • check if they got the 8 ground truths correct
  • if they didn't get 8 right then have them start over
  • if they did, then check if the 4 unknown images have 4 agreeing submissions and make them into new ground truths
  • then respond with a new 3 image workload

finish scaffolding backend

  • Remove skintone from db scaffold and replace with ethniciy
  • Add endpoint for bootstrapping the client annotation types:
// to load the annotation types into the client (eg /api/v1/annotation_types
  annotations:{
    demographics: [{
        name: 'Perceived Age',
        options: ['infant', 'child', 'young adult', 'adult', 'elderly']
      },
      {
        name: 'Perceived Gender',
        options: ['other', 'female', 'male'],
      },
      {
        name: 'Perceived Ethnicity',
        options: ['balck', 'white', 'lantino/a', 'asian', 'other']
      }
    ],
    regions: [{}],
    landmarks: [{}]
  },
  • Add endpoint for bootstrapping the client work loads:
// to load workloads for the client (eg /api/v1/work)
// this would load 12 work items to start, followed by 3 each
// question about whether the server should default to knowing how many to send based on session, 
// or if this should be specified with a query param 
  workload : [{},{},{},{},{},{},{},{},{},{}]
  • Add endpoint for accepting annotations from the client:
// to take an array of annotations to be processed (eg /api/v1/annotations)
var annotations = [
  {
    image_id: ''
    demographics:[{
      name: '',
      option: ''
    },{
      name: '',
      option: ''
    }],
    regions: [],
    landmarks: [{}, {}, {}],
  },
  {...}
]

Create baseline visualization on home page

  • visualize annotation stats from annotation campaign
  • visualize ethnic/gender/age of landmark-annotated faces

Primary goal: motivate citizens to participate.

Show users how their participation improves their participation

Return 400 code for invalid POST data

Pulled out from @gnarf's review of #65: we have a comment that says,

This post must contain only and all annotations for images sent to the current session. If there is a discrepancy between the current workload sent to the current session's annotation post, the post will return an error 500.

We should probably return a 400 "Bad Request" error instead

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.