mitmedialab / ajl.ai Goto Github PK
View Code? Open in Web Editor NEWA web application for crowdsourcing image annotations.
License: GNU Affero General Public License v3.0
A web application for crowdsourcing image annotations.
License: GNU Affero General Public License v3.0
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)
This is a tool for image annotation, not face annotation.
I believe it to be an artifact of the LFW sample data set, but I'd like to propose we use a unique ID for each record instead of a name
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.
annotation_type <-- top level names of all the annotation types
annotation_option <-- ethnicity/gender
annotation_range <-- age
annotation_box <-- regions
annotation_coord <--landmarks
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.
Either following the https://github.com/AJL-U/openfaces stack (angular 2) or a different one.
We added new API actions, but did not update the loading indicator reducers to account for them. This should be cleaned up.
https://invis.io/HKACANH6Z#/217941303_Labeling_Demographics_-_Dawn_Pinch
https://invis.io/HKACANH6Z#/217941305_Labeling_Region_-_Dawn_Pinch
https://invis.io/HKACANH6Z#/217941304_Labeling_Landmarks_-_Dawn_Pinch
Create a table for seed_truth and consensus_truth.
Several sample data faces are missing full landmark data, this issue tracks manually updating the sample data to add in that information
Specifically, start by implement a public_identities table and a link table with all of the images in the system.
identities:
Joy's model from mongo
Criteria:
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
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.
Such as,
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
either by pointing it at a remote test db, or at a local moch data server.
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'.
Define the data model for the application state and structure it using Redux
Depends on #4
When a session posts it's first set of 12 annotations
per @gnarf eg: compute accuracy
For example:
a grid of 12 images where you select all the people who have the same gender as you.
CC @joyab Can you say more about this?
// 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: [{}]
},
// 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 : [{},{},{},{},{},{},{},{},{},{}]
// to take an array of annotations to be processed (eg /api/v1/annotations)
var annotations = [
{
image_id: ''
demographics:[{
name: '',
option: ''
},{
name: '',
option: ''
}],
regions: [],
landmarks: [{}, {}, {}],
},
{...}
]
per @cowboy
so people don't have to get postgres running.
Primary goal: motivate citizens to participate.
Show users how their participation improves their participation
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
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.