= Hominids@home = This is a design document for a distributed thinking project. Don't edit this page unless you're involved in this project. == Image collection == A given rig session will yield * A number of cameras with ~1000 images. Image are hi-res (~2Kx3K pixels). Each image has a timestamp. File names may not be unique across cameras. * A GPS log file with a sequence of timestamped waypoints. We'll need to develop an '''image collector''' program (python/Linux?). This will first read in the GPS log file. Then you'll connect the various cameras, one at a time, to USB, and it will download their images. This will produce a "batch" of images, consisting of: * A directory of the images, with filenames that are unique within the batch. * A 'batch description' file, JSON format. Includes * Batch name (descriptive) * And for each image: * time * lat/long of center of image (estimated from image timestamp and GPS log) * filename * x/y size, pixels * estimated size factor (meters/pixel) We'll develop a script '''load_images''' that takes the above info and does the following: * Create a Bossa "batch" record * Copy the images to a directory whose name is the batch ID * Create medium-res (~1024x768) versions of images. * Creates a Bossa job record for each image. Each run of this script produces a batch of jobs that can be managed as a unit (see below). Initially the state of the batch is "pending", meaning that it is not available to volunteers. == Volunteer levels == There will be three levels of participation: Beginning:: Identify bones, no classification. Intended for elementary school kids. Intermediate:: Distinguish Primate/Nonprimate, and Tooth/Skull/Other. Intended for adults from general public. Advanced:: Distinguish ~10 taxa and ~5 bone types. Intended for experts. The level is stored both in user records and in job instances. == Training course == We'll need to develop training courses (probably using Bolt) for each volunteer level. A given course will contain: * several examples (different ages, lighting conditions) of each type of object to be identified, some negatives, and some images that look like positives but are negative. * a test consisting of some number of positive and negative examples == Volunteer experience == Each image will initially be shown in the medium-res (1024x768) form. It will have a control area that remains fixed at the top of the window, even if the image scrolls. The control area includes: * a "Done" button * a "Magnify" or "Shrink" button. This toggles between the medium-res and hi-res (3Kx2K) image. * Menus for feature type, and a comment field. Other ideas: * a "Rotate" button that rotates the image 90 deg. To identify a feature, the user selects a feature type and clicks on the image. After every N images (N=1?) the volunteer is shown a feedback page (see below). == Feedback page == This page is intended to give volunteers feedback on their efforts, and to encourage them to continue. Possible contents: * thumbnails of recent jobs, with links so that they can see how other people annotated the same image. * links to message boards * "who's online now", with ability to send instant messages * this users's message inbox == Calibration images == We may want to use "calibration images", i.e. images for which the correct annotation is known, for two reasons: * to increase the fraction of images that contain something * to improve our assessment of volunteer error rates == Scientist interfaces == Scientists will interact through a web-based interface. The top-level page will show a list of batches, with their times, names, spatial extent, and status (Pending, In Progress, Completed). For a given batch, the scientist can: * Change the status of the batch * View a map in which the images appear as small rectangles, with color coding showing which have been processed by volunteers, and how many features were found. Clicking on a rectangle goes to a page showing the instances of the job, allowing the scientist to view and compare the results, to select a "best" answer, and to add their own annotations. * View a textual list of images, ordered by decreasing number of features found.