Imaging Test Set Repository
The Test Set Repository is a collection of images with different encoding (JPEG, TIFF, DNG, proprietary "camera raw" formats, ...) that can be used as a test set for an imaging project. What's the rationale of this initiative? There are many reasons for it:
- Paying a lot of attention to tests is important for the quality of the product
- Even common and documented file formats (JPEG, TIFF, DNG) allow for a lot of variants (typically in the metadata stuff) and it's not unlikely to find cameras creating files that are not strictly compliant with the specifications.
- The scenario for "camera raw" formats is even worse: most of them are proprietary and undocumented, with manufacturers typically introducing slight changes for every new model on the marker (see the OpenRaw initiative for more information).
- Developers, especially those in the FLOSS world, can't have physical access to a lot of different camera models to get samples.
Google is your friend as usual and you can find a good number of samples in the Internet, but at this point you run into other issues:
- You should include a copy of the files with your sources, but you have first to address a number of licensing-related issues, since you can't just grab a picture and redistribute it.
- You can't just refer to the URL of the picture in the original site, since there's no guarantee that the publisher won't withdraw it (even the whole website might go away, or move to a different URL).
- A good test set should be versioned as sources are.
For this reason we incepted the Imaging Test Set Repository, where every sample file has been submitted with a clear license which is friendly with your open source application and files are versioned.
Please provide feedback to repository AT imaging DOT java DOT net.
Thanks to all the contributors.
How to use the repository
You have two ways to use it from your automated tests:
- Check it out from the repository with a Subversion client:
svn co https://svn.java.net/svn/imaging~svn
This approach will download the entire repository on your local disk. You can update it by just running
- By directly accessing a URL, such as http://java.net/projects/imaging/sources/svn/content/trunk/TestSets/mpetersen/Nikon/D70s/jpg/Nikon_D70s_0001.jpg. This of course requires that you know the complete URL of each file (see below). We are working to add an automated indexing system, so you'll be able to find all the URLs of available files by downloading a single text file.
- By browsing the repository on line starting from http://java.net/projects/imaging/sources/svn/show/trunk/TestSets/
A service for automatically generating textual metadata dumps will be added in a few weeks (more info later).
At the moment we have files form the following camera models (THE LIST IS LARGELY INCOMPLETE):
- Canon EOS 30D, EOS 300D
- Minolta Dynax 7D
- Nikon D100, D70, D70s, D200
- Olympus E-500
- Sony F-828
Everybody can and is encouraged to contribute files to the repository, following the rules below:
- Committers must have a Java.Net account and ask for the "Content Developer" role for the project imaging.dev.java.net.
- By uploading a file into the repository, you agree to license it under the Creative Commons Attribution-Noncommercial-No Derivative License 3.0 Unported and providing a copyright notice as described below. This license makes it possible for people to copy and distribute the file to other places (for instance to use it as a test file for an application), attributing the credits to its author; it is forbidden to create derivatives out of it. Even with this guarantees, we suggest you don't upload any work that might have a specific artistic, affective or commercial value.
- Every committer must create his/her own directory under trunk/www/TestSets/accountname and should only commit files there.
- Each committer's directory must be structured with the following subdirectories:
maker - Nikon, Canon, ...
model - D70s, D300, 350D ...
type - JPG, DNG, NEF
If the image has been exported by means of a software application out-of-the-camera (e.g. Nikon Capture Editor, Apple Aperture, Adobe Lightroom, ...) and/or the user wishes to upload a XMP sidecar file, another subdirectory is required:
where software is the name of the software application that created the file(s).
Last but not least, each uploaded file must be paired with a text file named file.license.txt which contains two lines:
copyright: copyright notice (e.g. (C) Copyright by John Doe, http://johndoephotos.com).
license: Attribution-Noncommercial-No Derivative Works 3.0 Unported
A simple example: if the user with account johndoe wishes to upload a photo named 20060603-0005.NEF (directly taken from the camera), the XMP sidecar generated by Adobe Lightroom and a JPEG version of the file created by Adobe Lightroom, the resulting file layout must be:
Please note that in the case of XMP files, you must provide also the original file it refers to in the same directory.
- Every committer takes the full responsibility for published material; in particular, (s)he must ensure that (s)he has got the right to publish the images (which are usually subjected to a copyright) because (s)he owns them or has got the permission from the author. Illegally posted content will be removed after noticing.
- Once you have create subfolders and published some files, you should not rename or delete them. People will depend on paths and file names to run tests and any change would disrupt them.
- No photos showing recognizable people, security-sensible sites or buildings are allowed.
- Any content including nudity or deemed obscene, offensive, sexually-related, pornographic, violent, racist, hate-inspiring, unethical will be removed and the poster account will be banned.