From 6366b90b7e124a0059e2ebebe0f813b2e35e2f66 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Sun, 31 Mar 2019 16:54:38 +0200 Subject: columns --- megapixels/app/site/parser.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'megapixels/app') diff --git a/megapixels/app/site/parser.py b/megapixels/app/site/parser.py index 00470e4b..06c45f41 100644 --- a/megapixels/app/site/parser.py +++ b/megapixels/app/site/parser.py @@ -27,6 +27,7 @@ def parse_markdown(metadata, sections, s3_path, skip_h1=False): current_group = [] footnotes = [] in_stats = False + in_columns = False in_footnotes = False ignoring = False @@ -50,6 +51,7 @@ def parse_markdown(metadata, sections, s3_path, skip_h1=False): footnotes.append(section) elif ignoring: continue + elif '### statistics' in section.lower() or '### sidebar' in section.lower(): if len(current_group): groups.append(format_section(current_group, s3_path)) @@ -64,6 +66,26 @@ def parse_markdown(metadata, sections, s3_path, skip_h1=False): if 'end sidebar' not in section.lower(): current_group.append(section) in_stats = False + + elif '=== columns' in section.lower(): + if len(current_group): + groups.append(format_section(current_group, s3_path)) + current_group = [] + in_columns = True + column_partz = section.split(' ') + if len(column_partz) == 3: + column_count = column_partz[2] + else: + column_count = "N" + groups.append("
".format(column_count)) + elif in_columns is True and '===' in section: + groups.append(format_section(current_group, s3_path, type='column', tag='div')) + current_group = [] + if 'end columns' in section: + groups.append("
") + in_columns = False + current_group = [] + elif section.strip().startswith('{% include'): groups.append(format_section(current_group, s3_path)) current_group = [] -- cgit v1.2.3-70-g09d2 From 2d8b7dd6ea6ccb0293c8839898cf7a1246dc0eb4 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Mon, 1 Apr 2019 14:25:06 +0200 Subject: rebuild --- megapixels/app/site/builder.py | 2 +- megapixels/app/site/loader.py | 3 ++ site/content/pages/datasets/uccs/index.md | 1 + site/includes/map.html | 2 +- site/public/datasets/index.html | 2 +- .../research/01_from_1_to_100_pixels/index.html | 32 ++++++++++++++++++++++ .../research/02_what_computers_can_see/index.html | 19 +++++++++++++ site/public/research/index.html | 18 ++++++++++-- 8 files changed, 74 insertions(+), 5 deletions(-) (limited to 'megapixels/app') diff --git a/megapixels/app/site/builder.py b/megapixels/app/site/builder.py index 603d4788..55a85b0f 100644 --- a/megapixels/app/site/builder.py +++ b/megapixels/app/site/builder.py @@ -57,7 +57,7 @@ def build_page(fn, research_posts, datasets): s3.sync_directory(dirname, s3_dir, metadata) content = parser.parse_markdown(metadata, sections, s3_path, skip_h1=skip_h1) - + html = template.render( metadata=metadata, content=content, diff --git a/megapixels/app/site/loader.py b/megapixels/app/site/loader.py index a544333b..d150942c 100644 --- a/megapixels/app/site/loader.py +++ b/megapixels/app/site/loader.py @@ -85,6 +85,9 @@ def parse_metadata(fn, sections): metadata['meta'] = load_json(dataset_path) if not metadata['meta']: print("Bad metadata? {}".format(dataset_path)) + else: + print(metadata['slug']) + print("{} does not exist!".format(dataset_path)) if 'meta' not in metadata or not metadata['meta']: # dude metadata['meta'] = {} diff --git a/site/content/pages/datasets/uccs/index.md b/site/content/pages/datasets/uccs/index.md index e0925e07..1e3ec097 100644 --- a/site/content/pages/datasets/uccs/index.md +++ b/site/content/pages/datasets/uccs/index.md @@ -6,6 +6,7 @@ desc: Unconstrained College Students (UCCS) is subdesc: The UCCS dataset includes 16,149 images and 1,732 identities of students at University of Colorado Colorado Springs campus and is used for face recognition and face detection cssclass: dataset image: assets/background.jpg +slug: uccs published: 2019-2-23 updated: 2019-2-23 authors: Adam Harvey diff --git a/site/includes/map.html b/site/includes/map.html index 30c248a6..7511d4c7 100644 --- a/site/includes/map.html +++ b/site/includes/map.html @@ -12,7 +12,7 @@ -->

- To help understand how {{ metadata.meta.dataset.name_display }} has been used around the world for commercial, military and academic research; publicly available research citing {{ metadata.meta.dataset.name_full} is collected, verified, and geocoded to show the biometric trade routes of people appearing in the images. Click on the markers to reveal reserach projects at that location. + To help understand how {{ metadata.meta.dataset.name_display }} has been used around the world for commercial, military and academic research; publicly available research citing {{ metadata.meta.dataset.name_full }} is collected, verified, and geocoded to show the biometric trade routes of people appearing in the images. Click on the markers to reveal reserach projects at that location.

diff --git a/site/public/datasets/index.html b/site/public/datasets/index.html index 03b38f8a..1d2630e1 100644 --- a/site/public/datasets/index.html +++ b/site/public/datasets/index.html @@ -28,7 +28,7 @@

Facial Recognition Datasets

-

Survey

+

Explore publicly available facial recognition datasets. More datasets will be added throughout 2019.

diff --git a/site/public/research/01_from_1_to_100_pixels/index.html b/site/public/research/01_from_1_to_100_pixels/index.html index c91d17ad..37fc367f 100644 --- a/site/public/research/01_from_1_to_100_pixels/index.html +++ b/site/public/research/01_from_1_to_100_pixels/index.html @@ -80,6 +80,38 @@
  • "Note that we only keep the images with a minimal side length of 80 pixels." and "a face will be labeled as “Ignore” if it is very difficult to be detected due to blurring, severe deformation and unrecognizable eyes, or the side length of its bounding box is less than 32 pixels." Ge_Detecting_Masked_Faces_CVPR_2017_paper.pdf
  • IBM DiF: "Faces with region size less than 50x50 or inter-ocular distance of less than 30 pixels were discarded. Faces with non-frontal pose, or anything beyond being slightly tilted to the left or the right, were also discarded."
  • +

    As the resolution +formatted as rectangular databases of 16 bit RGB-tuples or 8 bit grayscale values

    +

    To consider how visual privacy applies to real world surveillance situations, the first

    +

    A single 8-bit grayscale pixel with 256 values is enough to represent the entire alphabet a-Z0-9 with room to spare.

    +

    A 2x2 pixels contains

    +

    Using no more than a 42 pixel (6x7 image) face image researchers [cite] were able to correctly distinguish between a group of 50 people. Yet

    +

    The likely outcome of face recognition research is that more data is needed to improve. Indeed, resolution is the determining factor for all biometric systems, both as training data to increase

    +

    Pixels, typically considered the buiding blocks of images and vidoes, can also be plotted as a graph of sensor values corresponding to the intensity of RGB-calibrated sensors.

    +

    Wi-Fi and cameras presents elevated risks for transmitting videos and image documentation from conflict zones, high-risk situations, or even sharing on social media. How can new developments in computer vision also be used in reverse, as a counter-forensic tool, to minimize an individual's privacy risk?

    +

    As the global Internet becomes increasingly effecient at turning the Internet into a giant dataset for machine learning, forensics, and data analysing, it would be prudent to also consider tools for decreasing the resolution. The Visual Defense module is just that. What are new ways to minimize the adverse effects of surveillance by dulling the blade. For example, a researcher paper showed that by decreasing a face size to 12x16 it was possible to do 98% accuracy with 50 people. This is clearly an example of

    +

    This research module, tentatively called Visual Defense Tools, aims to explore the

    +

    Prior Research

    + +

    Notes

    + +

    What all 3 examples illustrate is that face recognition is anything but absolute. In a 2017 talk, Jason Matheny the former directory of IARPA, admitted the face recognition is so brittle it can be subverted by using a magic marker and drawing "a few dots on your forehead". In fact face recognition is a misleading term. Face recognition is search engine for faces that can only ever show you the mos likely match. This presents real a real threat to privacy and lends

    +

    Globally, iPhone users unwittingly agree to 1/1,000,000 probably +relying on FaceID and TouchID to protect their information agree to a


    1. NIST 906932. Performance Assessment of Face Recognition Using Super-Resolution. Shuowen Hu, Robert Maschal, S. Susan Young, Tsai Hong Hong, Jonathon P. Phillips

    2. diff --git a/site/public/research/02_what_computers_can_see/index.html b/site/public/research/02_what_computers_can_see/index.html index 9389bf84..0fce1373 100644 --- a/site/public/research/02_what_computers_can_see/index.html +++ b/site/public/research/02_what_computers_can_see/index.html @@ -126,6 +126,7 @@
    3. Wearing Necktie
    4. Wearing Necklace
    5. +

      for i in {1..9};do wget http://visiond1.cs.umbc.edu/webpage/codedata/ADLdataset/ADL_videos/P_0$i.MP4;done;for i in {10..20}; do wget http://visiond1.cs.umbc.edu/webpage/codedata/ADLdataset/ADL_videos/P_$i.MP4;done

      From Market 1501

      The 27 attributes are:

      @@ -269,6 +270,24 @@ Visibility boolean for each keypoint Region annotations (upper clothes, lower clothes, dress, socks, shoes, hands, gloves, neck, face, hair, hat, sunglasses, bag, occluder) Body type (male, female or child)

      source: https://www2.eecs.berkeley.edu/Research/Projects/CS/vision/shape/h3d/

      +

      From Leeds Sports Pose

      +

      =INDEX(A2:A9,MATCH(datasets!D1,B2:B9,0)) +=VLOOKUP(A2, datasets!A:J, 7, FALSE)

      +

      Right ankle +Right knee +Right hip +Left hip +Left knee +Left ankle +Right wrist +Right elbow +Right shoulder +Left shoulder +Left elbow +Left wrist +Neck +Head top

      +

      source: http://web.archive.org/web/20170915023005/sam.johnson.io/research/lsp.html

      diff --git a/site/public/research/index.html b/site/public/research/index.html index 303732f8..0ef57043 100644 --- a/site/public/research/index.html +++ b/site/public/research/index.html @@ -26,8 +26,22 @@
      -

      Research Blog

      -
      +
      +

      Research

      +
      +
      +
      Posted
      +
      2018-12-15
      +
      +
      +
      By
      +
      Adam Harvey
      +
      + +
      +
      + +
      -- cgit v1.2.3-70-g09d2 From 07dd05f733c8618ea8dc687f7a48a7add6f5a83b Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Mon, 1 Apr 2019 14:42:20 +0200 Subject: fix --- megapixels/app/site/loader.py | 5 +- scraper/client/paper/paper.verify.js | 11 +-- .../datasets/50_people_one_question/index.html | 25 +++---- site/public/datasets/brainwash/index.html | 78 +++++++++++----------- site/public/datasets/celeba/index.html | 25 +++---- site/public/datasets/cofw/index.html | 28 ++++---- site/public/datasets/duke_mtmc/index.html | 50 +++++++------- site/public/datasets/hrt_transgender/index.html | 37 +++++----- site/public/datasets/lfw/index.html | 37 +++++----- site/public/datasets/market_1501/index.html | 25 +++---- site/public/datasets/msceleb/index.html | 37 +++++----- site/public/datasets/pipa/index.html | 25 +++---- site/public/datasets/uccs/index.html | 52 +++++++-------- site/public/datasets/viper/index.html | 37 +++++----- site/public/research/index.html | 18 +---- 15 files changed, 223 insertions(+), 267 deletions(-) (limited to 'megapixels/app') diff --git a/megapixels/app/site/loader.py b/megapixels/app/site/loader.py index d150942c..779f68ba 100644 --- a/megapixels/app/site/loader.py +++ b/megapixels/app/site/loader.py @@ -85,9 +85,8 @@ def parse_metadata(fn, sections): metadata['meta'] = load_json(dataset_path) if not metadata['meta']: print("Bad metadata? {}".format(dataset_path)) - else: - print(metadata['slug']) - print("{} does not exist!".format(dataset_path)) + elif 'datasets' in fn: + print("/!\\ {} does not exist!".format(dataset_path)) if 'meta' not in metadata or not metadata['meta']: # dude metadata['meta'] = {} diff --git a/scraper/client/paper/paper.verify.js b/scraper/client/paper/paper.verify.js index fcebac02..25117ff1 100644 --- a/scraper/client/paper/paper.verify.js +++ b/scraper/client/paper/paper.verify.js @@ -52,7 +52,7 @@ class PaperVerify extends Component { let newState = {} if (oldSha256 && sha256 !== oldSha256) { - console.log('update verification') + // console.log('update verification') this.props.actions.getAddress(sha256) this.props.actions.getVerification(sha256) const citationState = this.getCitationState(sha256) @@ -60,7 +60,7 @@ class PaperVerify extends Component { ...initialState, ...citationState, ...address.paper, - pdfIndex: citationState.citations.pdf.findIndex(el => el.pdf.match(/^http:/)), + pdfIndex: citationState.citation.pdf.findIndex(el => el.match(/^https:/)), } this.setState(newState) } else if (verify && !verify.loading && verify.paper && (!oldPaper || oldPaper !== verify.paper)) { @@ -71,7 +71,7 @@ class PaperVerify extends Component { ...initialState, ...citationState, ...address.paper, - pdfIndex: citationState.citations.pdf.findIndex(el => el.pdf.match(/^http:/)), + pdfIndex: citationState.citation.pdf.findIndex(el => el.match(/^https:/)), } this.setState(newState) } else { @@ -81,7 +81,7 @@ class PaperVerify extends Component { newState = { ...citationState, ...address.paper, - pdfIndex: citationState.citations.pdf.findIndex(el => el.pdf.match(/^http:/)), + pdfIndex: citationState.citation.pdf.findIndex(el => el.match(/^https:/)), uses_dataset: paper.uses_dataset, images_in_paper: paper.images_in_paper, verified_by: paper.verified_by, @@ -170,7 +170,8 @@ class PaperVerify extends Component { const { paperInfo, sortedCitations } = this.props.api const citations = sortedCitations || paperInfo.citations || [] let citationIndex = citations.findIndex(f => f.id === this.state.citation.id) - + console.log(sortedCitations) + console.log('going to next', key, citationIndex) if (citationIndex === -1) { history.push('/paper/' + key + '/info/') } else { diff --git a/site/public/datasets/50_people_one_question/index.html b/site/public/datasets/50_people_one_question/index.html index 988ce2dc..8e3d2d2b 100644 --- a/site/public/datasets/50_people_one_question/index.html +++ b/site/public/datasets/50_people_one_question/index.html @@ -33,7 +33,7 @@

      Nam libero tempore, cum soluta nobis est eligendi optio, cumque nihil impedit, quo minus id, quod maxime placeat, facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet, ut et voluptates repudiandae sint et molestiae non-recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat

      -

      Information Supply Chain

      +

      Biometric Trade Routes

      - To understand how 50 People One Question Dataset has been used around the world... - affected global research on computer vision, surveillance, defense, and consumer technology, the and where this dataset has been used the locations of each organization that used or referenced the datast + To help understand how 50 People One Question Dataset has been used around the world for commercial, military and academic research; publicly available research citing 50 People One Question is collected, verified, and geocoded to show the biometric trade routes of people appearing in the images. Click on the markers to reveal reserach projects at that location.

      -
      +
      +
      • Academic
      • -
      • Industry
      • -
      • Government / Military
      • +
      • Commercial
      • +
      • Military / Government
      • Citation data is collected using SemanticScholar.org then dataset usage verified and geolocated.
      -
      +
      @@ -76,13 +77,13 @@
      -

      Supplementary Information

      +

      Supplementary Information

      +
      -

      Citations

      +

      Dataset Citations

      - Citations were collected from Semantic Scholar, a website which aggregates - and indexes research papers. The citations were geocoded using names of institutions found in the PDF front matter, or as listed on other resources. These papers have been manually verified to show that researchers downloaded and used the dataset to train or test machine learning algorithms. + The dataset citations used in the visualizations were collected from Semantic Scholar, a website which aggregates and indexes research papers. Each citation was geocoded using names of institutions found in the PDF front matter, or as listed on other resources. These papers have been manually verified to show that researchers downloaded and used the dataset to train or test machine learning algorithms.

      Add [button/link] to download CSV. Add search input field to filter. diff --git a/site/public/datasets/brainwash/index.html b/site/public/datasets/brainwash/index.html index 20f2f096..c97349aa 100644 --- a/site/public/datasets/brainwash/index.html +++ b/site/public/datasets/brainwash/index.html @@ -4,7 +4,7 @@ MegaPixels - + @@ -26,18 +26,16 @@

      -
      Brainwash is a dataset of webcam images taken from the Brainwash Cafe in San Francisco
      The Brainwash dataset includes 11,918 images of "everyday life of a busy downtown cafe" and is used for training head detection algorithms -

      Brainwash Dataset

      -

      (PAGE UNDER DEVELOPMENT)

      -

      Brainwash is a face detection dataset created from the Brainwash Cafe's livecam footage including 11,918 images of "everyday life of a busy downtown cafe 1". The images are used to develop face detection algorithms for the "challenging task of detecting people in crowded scenes" and tracking them.

      -

      Before closing in 2017, Brainwash Cafe was a "cafe and laundromat" located in San Francisco's SoMA district. The cafe published a publicy available livestream from the cafe with a view of the cash register, performance stage, and seating area.

      -

      Since it's publication by Stanford in 2015, the Brainwash dataset has appeared in several notable research papers. In September 2016 four researchers from the National University of Defense Technology in Changsha, China used the Brainwash dataset for a research study on "people head detection in crowded scenes", concluding that their algorithm "achieves superior head detection performance on the crowded scenes dataset 2". And again in 2017 three researchers at the National University of Defense Technology used Brainwash for a study on object detection noting "the data set used in our experiment is shown in Table 1, which includes one scene of the brainwash dataset 3".

      -
       An sample image from the Brainwash dataset used for training face and head detection algorithms for surveillance. The datset contains about 12,000 images. License: Open Data Commons Public Domain Dedication (PDDL)
      An sample image from the Brainwash dataset used for training face and head detection algorithms for surveillance. The datset contains about 12,000 images. License: Open Data Commons Public Domain Dedication (PDDL)
       49 of the 11,918 images included in the Brainwash dataset. License: Open Data Commons Public Domain Dedication (PDDL)
      49 of the 11,918 images included in the Brainwash dataset. License: Open Data Commons Public Domain Dedication (PDDL)
      +
      Brainwash is a dataset of webcam images taken from the Brainwash Cafe in San Francisco in 2014
      The Brainwash dataset includes 11,918 images of "everyday life of a busy downtown cafe" and is used for training head detection surveillance algorithms +

      Brainwash Dataset

      +

      Brainwash is a head detection dataset created from San Francisco's Brainwash Cafe livecam footage. It includes 11,918 images of "everyday life of a busy downtown cafe" 1 captured at 100 second intervals throught the entire day. Brainwash dataset was captured during 3 days in 2014: October 27, November 13, and November 24. According the author's reserach paper introducing the dataset, the images were acquired with the help of Angelcam.com [cite orig paper].

      +

      Brainwash is not a widely used dataset but since its publication by Stanford University in 2015, it has notably appeared in several research papers from the National University of Defense Technology in Changsha, China. In 2016 and in 2017 researchers there conducted studies on detecting people's heads in crowded scenes for the purpose of surveillance 2 3.

      +

      If you happen to have been at Brainwash cafe in San Franscisco at any time on October 26, November 13, or November 24 in 2014 you are most likely included in the Brainwash dataset.

      +
       The pixel-averaged image of all Brainwash dataset images is shown with 81,973 head annotations drawn from the Brainwash training partition. (c) Adam Harvey
      The pixel-averaged image of all Brainwash dataset images is shown with 81,973 head annotations drawn from the Brainwash training partition. (c) Adam Harvey

      Who used Brainwash Dataset?

      - This bar chart presents a ranking of the top countries where citations originated. Mouse over individual columns - to see yearly totals. These charts show at most the top 10 countries. + This bar chart presents a ranking of the top countries where dataset citations originated. Mouse over individual columns to see yearly totals. These charts show at most the top 10 countries.

      @@ -46,18 +44,11 @@
      -
      -

      - These pie charts show overall totals based on country and institution type. -

      - -
      - -
      +
      -

      Information Supply Chain

      +

      Biometric Trade Routes

      - To understand how Brainwash Dataset has been used around the world... - affected global research on computer vision, surveillance, defense, and consumer technology, the and where this dataset has been used the locations of each organization that used or referenced the datast + To help understand how Brainwash Dataset has been used around the world for commercial, military and academic research; publicly available research citing Brainwash Dataset is collected, verified, and geocoded to show the biometric trade routes of people appearing in the images. Click on the markers to reveal reserach projects at that location.

      -
      +
      +
      • Academic
      • -
      • Industry
      • -
      • Government / Military
      • +
      • Commercial
      • +
      • Military / Government
      • Citation data is collected using SemanticScholar.org then dataset usage verified and geolocated.
      -
      +
      -

      Citations

      +

      Dataset Citations

      - Citations were collected from Semantic Scholar, a website which aggregates - and indexes research papers. The citations were geocoded using names of institutions found in the PDF front matter, or as listed on other resources. These papers have been manually verified to show that researchers downloaded and used the dataset to train or test machine learning algorithms. + The dataset citations used in the visualizations were collected from Semantic Scholar, a website which aggregates and indexes research papers. Each citation was geocoded using names of institutions found in the PDF front matter, or as listed on other resources. These papers have been manually verified to show that researchers downloaded and used the dataset to train or test machine learning algorithms.

      Add [button/link] to download CSV. Add search input field to filter.

      -

      Additional Information

      +
      + + +
      +
      +
      +
      + +

      Supplementary Information

      + +
       An sample image from the Brainwash dataset used for training face and head detection algorithms for surveillance. The datset contains about 12,000 images. License: Open Data Commons Public Domain Dedication (PDDL)
      An sample image from the Brainwash dataset used for training face and head detection algorithms for surveillance. The datset contains about 12,000 images. License: Open Data Commons Public Domain Dedication (PDDL)
       49 of the 11,918 images included in the Brainwash dataset. License: Open Data Commons Public Domain Dedication (PDDL)
      49 of the 11,918 images included in the Brainwash dataset. License: Open Data Commons Public Domain Dedication (PDDL)

      Additional Resources

      +

      TODO

      +
        +
      • add bounding boxes to the header image
      • +
      • remake montage with randomized images, with bboxes
      • +
      • clean up intro text
      • +
      • verify quote citations
      • +
      • a

        "readme.txt" https://exhibits.stanford.edu/data/catalog/sx925dc9385.

      • a

        Li, Y. and Dou, Y. and Liu, X. and Li, T. Localized Region Context and Object Feature Fusion for People Head Detection. ICIP16 Proceedings. 2016. Pages 594-598.

      • a

        Zhao. X, Wang Y, Dou, Y. A Replacement Algorithm of Non-Maximum Suppression Base on Graph Clustering.

        diff --git a/site/public/datasets/celeba/index.html b/site/public/datasets/celeba/index.html index 07522561..e958cbef 100644 --- a/site/public/datasets/celeba/index.html +++ b/site/public/datasets/celeba/index.html @@ -33,7 +33,7 @@

        Nam libero tempore, cum soluta nobis est eligendi optio, cumque nihil impedit, quo minus id, quod maxime placeat, facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet, ut et voluptates repudiandae sint et molestiae non-recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat

      -

      Information Supply Chain

      +

      Biometric Trade Routes

      - To understand how CelebA Dataset has been used around the world... - affected global research on computer vision, surveillance, defense, and consumer technology, the and where this dataset has been used the locations of each organization that used or referenced the datast + To help understand how CelebA Dataset has been used around the world for commercial, military and academic research; publicly available research citing Large-scale CelebFaces Attributes Dataset is collected, verified, and geocoded to show the biometric trade routes of people appearing in the images. Click on the markers to reveal reserach projects at that location.

      -
      +
      +
      • Academic
      • -
      • Industry
      • -
      • Government / Military
      • +
      • Commercial
      • +
      • Military / Government
      • Citation data is collected using SemanticScholar.org then dataset usage verified and geolocated.
      -
      +
      @@ -76,13 +77,13 @@
      -

      Supplementary Information

      +

      Supplementary Information

      +
      -

      Citations

      +

      Dataset Citations

      - Citations were collected from Semantic Scholar, a website which aggregates - and indexes research papers. The citations were geocoded using names of institutions found in the PDF front matter, or as listed on other resources. These papers have been manually verified to show that researchers downloaded and used the dataset to train or test machine learning algorithms. + The dataset citations used in the visualizations were collected from Semantic Scholar, a website which aggregates and indexes research papers. Each citation was geocoded using names of institutions found in the PDF front matter, or as listed on other resources. These papers have been manually verified to show that researchers downloaded and used the dataset to train or test machine learning algorithms.

      Add [button/link] to download CSV. Add search input field to filter. diff --git a/site/public/datasets/cofw/index.html b/site/public/datasets/cofw/index.html index 99d4a9ef..7ac30579 100644 --- a/site/public/datasets/cofw/index.html +++ b/site/public/datasets/cofw/index.html @@ -43,7 +43,7 @@ To increase the number of training images, and since COFW has the exact same la

      https://www.cs.cmu.edu/~peiyunh/topdown/

      -

      Information Supply Chain

      +

      Biometric Trade Routes

      - To understand how COFW Dataset has been used around the world... - affected global research on computer vision, surveillance, defense, and consumer technology, the and where this dataset has been used the locations of each organization that used or referenced the datast + To help understand how COFW Dataset has been used around the world for commercial, military and academic research; publicly available research citing Caltech Occluded Faces in the Wild is collected, verified, and geocoded to show the biometric trade routes of people appearing in the images. Click on the markers to reveal reserach projects at that location.

      -
      +
      +
      • Academic
      • -
      • Industry
      • -
      • Government / Military
      • +
      • Commercial
      • +
      • Military / Government
      • Citation data is collected using SemanticScholar.org then dataset usage verified and geolocated.
      -
      +
      @@ -86,13 +87,13 @@ To increase the number of training images, and since COFW has the exact same la
      -

      Supplementary Information

      +

      Supplementary Information

      +
      -

      Citations

      +

      Dataset Citations

      - Citations were collected from Semantic Scholar, a website which aggregates - and indexes research papers. The citations were geocoded using names of institutions found in the PDF front matter, or as listed on other resources. These papers have been manually verified to show that researchers downloaded and used the dataset to train or test machine learning algorithms. + The dataset citations used in the visualizations were collected from Semantic Scholar, a website which aggregates and indexes research papers. Each citation was geocoded using names of institutions found in the PDF front matter, or as listed on other resources. These papers have been manually verified to show that researchers downloaded and used the dataset to train or test machine learning algorithms.

      Add [button/link] to download CSV. Add search input field to filter. @@ -103,8 +104,7 @@ To increase the number of training images, and since COFW has the exact same la

      Who used COFW Dataset?

      - This bar chart presents a ranking of the top countries where citations originated. Mouse over individual columns - to see yearly totals. These charts show at most the top 10 countries. + This bar chart presents a ranking of the top countries where dataset citations originated. Mouse over individual columns to see yearly totals. These charts show at most the top 10 countries.

      diff --git a/site/public/datasets/duke_mtmc/index.html b/site/public/datasets/duke_mtmc/index.html index 431cf7ff..9664181e 100644 --- a/site/public/datasets/duke_mtmc/index.html +++ b/site/public/datasets/duke_mtmc/index.html @@ -4,7 +4,7 @@ MegaPixels - + @@ -26,12 +26,17 @@
      -
      Duke MTMC is a dataset of CCTV footage of students at Duke University
      Duke MTMC contains over 2 million video frames and 2,000 unique identities collected from 8 cameras at Duke University campus in March 2014 -

      Duke Multi-Target, Multi-Camera Tracking Dataset (Duke MTMC)

      -

      (PAGE UNDER DEVELOPMENT)

      +
      Duke MTMC is a dataset of surveillance camera footage of students on Duke University campus
      Duke MTMC contains over 2 million video frames and 2,000 unique identities collected from 8 HD cameras at Duke University campus in March 2014 +

      Duke Multi-Target, Multi-Camera Tracking Dataset (Duke MTMC)

      +

      [ PAGE UNDER DEVELOPMENT ]

      +

      Duke MTMC is a dataset of video recorded on Duke University campus during for the purpose of training, evaluating, and improving multi-target multi-camera tracking. The videos were recorded during February and March 2014 and cinclude

      +

      Includes a total of 888.8 minutes of video (ind. verified)

      +

      "We make available a new data set that has more than 2 million frames and more than 2,700 identities. It consists of 8×85 minutes of 1080p video recorded at 60 frames per second from 8 static cameras deployed on the Duke University campus during periods between lectures, when pedestrian traffic is heavy."

      +

      The dataset includes approximately 2,000 annotated identities appearing in 85 hours of video from 8 cameras located throughout Duke University's campus.

      +
       Duke MTMC pixel-averaged image of camera #5 is shown with the bounding boxes for each student drawn in white. (c) Adam Harvey
      Duke MTMC pixel-averaged image of camera #5 is shown with the bounding boxes for each student drawn in white. (c) Adam Harvey

      According to the dataset authors,

      -

      Information Supply Chain

      +

      Biometric Trade Routes

      - To understand how Duke MTMC Dataset has been used around the world... - affected global research on computer vision, surveillance, defense, and consumer technology, the and where this dataset has been used the locations of each organization that used or referenced the datast + To help understand how Duke MTMC Dataset has been used around the world for commercial, military and academic research; publicly available research citing Duke Multi-Target, Multi-Camera Tracking Project is collected, verified, and geocoded to show the biometric trade routes of people appearing in the images. Click on the markers to reveal reserach projects at that location.

      -
      +
      +
      • Academic
      • -
      • Industry
      • -
      • Government / Military
      • +
      • Commercial
      • +
      • Military / Government
      • Citation data is collected using SemanticScholar.org then dataset usage verified and geolocated.
      -
      +

      Who used Duke MTMC Dataset?

      - This bar chart presents a ranking of the top countries where citations originated. Mouse over individual columns - to see yearly totals. These charts show at most the top 10 countries. + This bar chart presents a ranking of the top countries where dataset citations originated. Mouse over individual columns to see yearly totals. These charts show at most the top 10 countries.

      @@ -80,14 +85,7 @@
      -
      -

      - These pie charts show overall totals based on country and institution type. -

      - -
      - -
      +
      @@ -97,13 +95,13 @@
      -

      Supplementary Information

      +

      Supplementary Information

      +
      -

      Citations

      +

      Dataset Citations

      - Citations were collected from Semantic Scholar, a website which aggregates - and indexes research papers. The citations were geocoded using names of institutions found in the PDF front matter, or as listed on other resources. These papers have been manually verified to show that researchers downloaded and used the dataset to train or test machine learning algorithms. + The dataset citations used in the visualizations were collected from Semantic Scholar, a website which aggregates and indexes research papers. Each citation was geocoded using names of institutions found in the PDF front matter, or as listed on other resources. These papers have been manually verified to show that researchers downloaded and used the dataset to train or test machine learning algorithms.

      Add [button/link] to download CSV. Add search input field to filter. diff --git a/site/public/datasets/hrt_transgender/index.html b/site/public/datasets/hrt_transgender/index.html index 7e10c2fb..ed36abb5 100644 --- a/site/public/datasets/hrt_transgender/index.html +++ b/site/public/datasets/hrt_transgender/index.html @@ -32,8 +32,7 @@

      Who used HRT Transgender?

      - This bar chart presents a ranking of the top countries where citations originated. Mouse over individual columns - to see yearly totals. These charts show at most the top 10 countries. + This bar chart presents a ranking of the top countries where dataset citations originated. Mouse over individual columns to see yearly totals. These charts show at most the top 10 countries.

      @@ -42,18 +41,11 @@
      -
      -

      - These pie charts show overall totals based on country and institution type. -

      - -
      - -
      +
      -

      Information Supply Chain

      +

      Biometric Trade Routes

      - To understand how HRT Transgender has been used around the world... - affected global research on computer vision, surveillance, defense, and consumer technology, the and where this dataset has been used the locations of each organization that used or referenced the datast + To help understand how HRT Transgender has been used around the world for commercial, military and academic research; publicly available research citing HRT Transgender Dataset is collected, verified, and geocoded to show the biometric trade routes of people appearing in the images. Click on the markers to reveal reserach projects at that location.

      -
      +
      +
      • Academic
      • -
      • Industry
      • -
      • Government / Military
      • +
      • Commercial
      • +
      • Military / Government
      • Citation data is collected using SemanticScholar.org then dataset usage verified and geolocated.
      -
      +
      @@ -96,13 +89,13 @@
      -

      Supplementary Information

      +

      Supplementary Information

      +
      -

      Citations

      +

      Dataset Citations

      - Citations were collected from Semantic Scholar, a website which aggregates - and indexes research papers. The citations were geocoded using names of institutions found in the PDF front matter, or as listed on other resources. These papers have been manually verified to show that researchers downloaded and used the dataset to train or test machine learning algorithms. + The dataset citations used in the visualizations were collected from Semantic Scholar, a website which aggregates and indexes research papers. Each citation was geocoded using names of institutions found in the PDF front matter, or as listed on other resources. These papers have been manually verified to show that researchers downloaded and used the dataset to train or test machine learning algorithms.

      Add [button/link] to download CSV. Add search input field to filter. diff --git a/site/public/datasets/lfw/index.html b/site/public/datasets/lfw/index.html index 9cbf2e11..22384d77 100644 --- a/site/public/datasets/lfw/index.html +++ b/site/public/datasets/lfw/index.html @@ -46,7 +46,7 @@

      The Names and Faces dataset was the first face recognition dataset created entire from online photos. However, Names and Faces and LFW are not the first face recognition dataset created entirely "in the wild". That title belongs to the UCD dataset. Images obtained "in the wild" means using an image without explicit consent or awareness from the subject or photographer.

      -

      Information Supply Chain

      +

      Biometric Trade Routes

      - To understand how LFW has been used around the world... - affected global research on computer vision, surveillance, defense, and consumer technology, the and where this dataset has been used the locations of each organization that used or referenced the datast + To help understand how LFW has been used around the world for commercial, military and academic research; publicly available research citing Labeled Faces in the Wild is collected, verified, and geocoded to show the biometric trade routes of people appearing in the images. Click on the markers to reveal reserach projects at that location.

      -
      +
      +
      • Academic
      • -
      • Industry
      • -
      • Government / Military
      • +
      • Commercial
      • +
      • Military / Government
      • Citation data is collected using SemanticScholar.org then dataset usage verified and geolocated.
      -
      +

      Who used LFW?

      - This bar chart presents a ranking of the top countries where citations originated. Mouse over individual columns - to see yearly totals. These charts show at most the top 10 countries. + This bar chart presents a ranking of the top countries where dataset citations originated. Mouse over individual columns to see yearly totals. These charts show at most the top 10 countries.

      @@ -95,14 +95,7 @@
      -
      -

      - These pie charts show overall totals based on country and institution type. -

      - -
      - -
      +
      @@ -112,13 +105,13 @@
      -

      Supplementary Information

      +

      Supplementary Information

      +
      -

      Citations

      +

      Dataset Citations

      - Citations were collected from Semantic Scholar, a website which aggregates - and indexes research papers. The citations were geocoded using names of institutions found in the PDF front matter, or as listed on other resources. These papers have been manually verified to show that researchers downloaded and used the dataset to train or test machine learning algorithms. + The dataset citations used in the visualizations were collected from Semantic Scholar, a website which aggregates and indexes research papers. Each citation was geocoded using names of institutions found in the PDF front matter, or as listed on other resources. These papers have been manually verified to show that researchers downloaded and used the dataset to train or test machine learning algorithms.

      Add [button/link] to download CSV. Add search input field to filter. diff --git a/site/public/datasets/market_1501/index.html b/site/public/datasets/market_1501/index.html index b7e68c47..9a05d20e 100644 --- a/site/public/datasets/market_1501/index.html +++ b/site/public/datasets/market_1501/index.html @@ -31,7 +31,7 @@

      (PAGE UNDER DEVELOPMENT)

      -

      Information Supply Chain

      +

      Biometric Trade Routes

      - To understand how Market 1501 has been used around the world... - affected global research on computer vision, surveillance, defense, and consumer technology, the and where this dataset has been used the locations of each organization that used or referenced the datast + To help understand how Market 1501 has been used around the world for commercial, military and academic research; publicly available research citing Market 1501 Dataset is collected, verified, and geocoded to show the biometric trade routes of people appearing in the images. Click on the markers to reveal reserach projects at that location.

      -
      +
      +
      • Academic
      • -
      • Industry
      • -
      • Government / Military
      • +
      • Commercial
      • +
      • Military / Government
      • Citation data is collected using SemanticScholar.org then dataset usage verified and geolocated.
      -
      +
      @@ -74,13 +75,13 @@
      -

      Supplementary Information

      +

      Supplementary Information

      +
      -

      Citations

      +

      Dataset Citations

      - Citations were collected from Semantic Scholar, a website which aggregates - and indexes research papers. The citations were geocoded using names of institutions found in the PDF front matter, or as listed on other resources. These papers have been manually verified to show that researchers downloaded and used the dataset to train or test machine learning algorithms. + The dataset citations used in the visualizations were collected from Semantic Scholar, a website which aggregates and indexes research papers. Each citation was geocoded using names of institutions found in the PDF front matter, or as listed on other resources. These papers have been manually verified to show that researchers downloaded and used the dataset to train or test machine learning algorithms.

      Add [button/link] to download CSV. Add search input field to filter. diff --git a/site/public/datasets/msceleb/index.html b/site/public/datasets/msceleb/index.html index 50788aad..0ddf0c68 100644 --- a/site/public/datasets/msceleb/index.html +++ b/site/public/datasets/msceleb/index.html @@ -35,8 +35,7 @@

      Who used MsCeleb?

      - This bar chart presents a ranking of the top countries where citations originated. Mouse over individual columns - to see yearly totals. These charts show at most the top 10 countries. + This bar chart presents a ranking of the top countries where dataset citations originated. Mouse over individual columns to see yearly totals. These charts show at most the top 10 countries.

      @@ -45,18 +44,11 @@
      -
      -

      - These pie charts show overall totals based on country and institution type. -

      - -
      - -
      +
      -

      Information Supply Chain

      +

      Biometric Trade Routes

      - To understand how MsCeleb has been used around the world... - affected global research on computer vision, surveillance, defense, and consumer technology, the and where this dataset has been used the locations of each organization that used or referenced the datast + To help understand how MsCeleb has been used around the world for commercial, military and academic research; publicly available research citing Microsoft Celebrity Dataset is collected, verified, and geocoded to show the biometric trade routes of people appearing in the images. Click on the markers to reveal reserach projects at that location.

      -
      +
      +
      • Academic
      • -
      • Industry
      • -
      • Government / Military
      • +
      • Commercial
      • +
      • Military / Government
      • Citation data is collected using SemanticScholar.org then dataset usage verified and geolocated.
      -
      +

      Add more analysis here

      @@ -100,13 +93,13 @@
      -

      Supplementary Information

      +

      Supplementary Information

      +
      -

      Citations

      +

      Dataset Citations

      - Citations were collected from Semantic Scholar, a website which aggregates - and indexes research papers. The citations were geocoded using names of institutions found in the PDF front matter, or as listed on other resources. These papers have been manually verified to show that researchers downloaded and used the dataset to train or test machine learning algorithms. + The dataset citations used in the visualizations were collected from Semantic Scholar, a website which aggregates and indexes research papers. Each citation was geocoded using names of institutions found in the PDF front matter, or as listed on other resources. These papers have been manually verified to show that researchers downloaded and used the dataset to train or test machine learning algorithms.

      Add [button/link] to download CSV. Add search input field to filter. diff --git a/site/public/datasets/pipa/index.html b/site/public/datasets/pipa/index.html index 09baca99..9e7eb164 100644 --- a/site/public/datasets/pipa/index.html +++ b/site/public/datasets/pipa/index.html @@ -31,7 +31,7 @@

      (PAGE UNDER DEVELOPMENT)

      -

      Information Supply Chain

      +

      Biometric Trade Routes

      - To understand how PIPA Dataset has been used around the world... - affected global research on computer vision, surveillance, defense, and consumer technology, the and where this dataset has been used the locations of each organization that used or referenced the datast + To help understand how PIPA Dataset has been used around the world for commercial, military and academic research; publicly available research citing People in Photo Albums Dataset is collected, verified, and geocoded to show the biometric trade routes of people appearing in the images. Click on the markers to reveal reserach projects at that location.

      -
      +
      +
      • Academic
      • -
      • Industry
      • -
      • Government / Military
      • +
      • Commercial
      • +
      • Military / Government
      • Citation data is collected using SemanticScholar.org then dataset usage verified and geolocated.
      -
      +
      @@ -74,13 +75,13 @@
      -

      Supplementary Information

      +

      Supplementary Information

      +
      -

      Citations

      +

      Dataset Citations

      - Citations were collected from Semantic Scholar, a website which aggregates - and indexes research papers. The citations were geocoded using names of institutions found in the PDF front matter, or as listed on other resources. These papers have been manually verified to show that researchers downloaded and used the dataset to train or test machine learning algorithms. + The dataset citations used in the visualizations were collected from Semantic Scholar, a website which aggregates and indexes research papers. Each citation was geocoded using names of institutions found in the PDF front matter, or as listed on other resources. These papers have been manually verified to show that researchers downloaded and used the dataset to train or test machine learning algorithms.

      Add [button/link] to download CSV. Add search input field to filter. diff --git a/site/public/datasets/uccs/index.html b/site/public/datasets/uccs/index.html index ca106022..2477c9f8 100644 --- a/site/public/datasets/uccs/index.html +++ b/site/public/datasets/uccs/index.html @@ -4,7 +4,7 @@ MegaPixels - + @@ -26,12 +26,12 @@

      -
      Unconstrained College Students (UCCS) is a dataset of images ...
      The UCCS dataset includes ... -

      Unconstrained College Students ...

      +
      Unconstrained College Students (UCCS) is a dataset of long-range surveillance photos of students taken without their knowledge
      The UCCS dataset includes 16,149 images and 1,732 identities of students at University of Colorado Colorado Springs campus and is used for face recognition and face detection +

      Unconstrained College Students ...

      (PAGE UNDER DEVELOPMENT)

      -
      +
       The pixel-average of all Uconstrained College Students images is shown with all 51,838 face annotations. (c) Adam Harvey
      The pixel-average of all Uconstrained College Students images is shown with all 51,838 face annotations. (c) Adam Harvey
      -

      Information Supply Chain

      +

      Biometric Trade Routes

      - To understand how UCCS has been used around the world... - affected global research on computer vision, surveillance, defense, and consumer technology, the and where this dataset has been used the locations of each organization that used or referenced the datast + To help understand how UCCS has been used around the world for commercial, military and academic research; publicly available research citing UnConstrained College Students Dataset is collected, verified, and geocoded to show the biometric trade routes of people appearing in the images. Click on the markers to reveal reserach projects at that location.

      -
      +
      +
      • Academic
      • -
      • Industry
      • -
      • Government / Military
      • +
      • Commercial
      • +
      • Military / Government
      • Citation data is collected using SemanticScholar.org then dataset usage verified and geolocated.
      -
      +

      Who used UCCS?

      - This bar chart presents a ranking of the top countries where citations originated. Mouse over individual columns - to see yearly totals. These charts show at most the top 10 countries. + This bar chart presents a ranking of the top countries where dataset citations originated. Mouse over individual columns to see yearly totals. These charts show at most the top 10 countries.

      @@ -80,14 +80,7 @@
      -
      -

      - These pie charts show overall totals based on country and institution type. -

      - -
      - -
      +
      @@ -97,20 +90,20 @@
      -

      Supplementary Information

      +

      Supplementary Information

      +
      -

      Citations

      +

      Dataset Citations

      - Citations were collected from Semantic Scholar, a website which aggregates - and indexes research papers. The citations were geocoded using names of institutions found in the PDF front matter, or as listed on other resources. These papers have been manually verified to show that researchers downloaded and used the dataset to train or test machine learning algorithms. + The dataset citations used in the visualizations were collected from Semantic Scholar, a website which aggregates and indexes research papers. Each citation was geocoded using names of institutions found in the PDF front matter, or as listed on other resources. These papers have been manually verified to show that researchers downloaded and used the dataset to train or test machine learning algorithms.

      Add [button/link] to download CSV. Add search input field to filter.

      -
      Bounding box visualization
      Bounding box visualization

      Research Notes

      +

      Research Notes

      The original Sapkota and Boult dataset, from which UCCS is derived, received funding from1:

      • ONR (Office of Naval Research) MURI (The Department of Defense Multidisciplinary University Research Initiative) grant N00014-08-1-0638
      • @@ -123,6 +116,11 @@
      • ODNI (Office of Director of National Intelligence)
      • IARPA (Intelligence Advance Research Projects Activity) R&D contract 2014-14071600012
      +

      " In most face detection/recognition datasets, the majority of images are “posed”, i.e. the subjects know they are being photographed, and/or the images are selected for publication in public media. Hence, blurry, occluded and badly illuminated images are generally uncommon in these datasets. In addition, most of these challenges are close-set, i.e. the list of subjects in the gallery is the same as the one used for testing.

      +

      This challenge explores more unconstrained data, by introducing the new UnConstrained College Students (UCCS) dataset, where subjects are photographed using a long-range high-resolution surveillance camera without their knowledge. Faces inside these images are of various poses, and varied levels of blurriness and occlusion. The challenge also creates an open set recognition problem, where unknown people will be seen during testing and must be rejected.

      +

      With this challenge, we hope to foster face detection and recognition research towards surveillance applications that are becoming more popular and more required nowadays, and where no automatic recognition algorithm has proven to be useful yet.

      +

      UnConstrained College Students (UCCS) Dataset

      +

      The UCCS dataset was collected over several months using Canon 7D camera fitted with Sigma 800mm F5.6 EX APO DG HSM lens, taking images at one frame per second, during times when many students were walking on the sidewalk. "


      1. Sapkota, Archana and Boult, Terrance. "Large Scale Unconstrained Open Set Face Database." 2013.

      2. diff --git a/site/public/datasets/viper/index.html b/site/public/datasets/viper/index.html index f78d1c04..e94568a3 100644 --- a/site/public/datasets/viper/index.html +++ b/site/public/datasets/viper/index.html @@ -35,8 +35,7 @@

        Who used VIPeR?

        - This bar chart presents a ranking of the top countries where citations originated. Mouse over individual columns - to see yearly totals. These charts show at most the top 10 countries. + This bar chart presents a ranking of the top countries where dataset citations originated. Mouse over individual columns to see yearly totals. These charts show at most the top 10 countries.

      @@ -45,18 +44,11 @@
      -
      -

      - These pie charts show overall totals based on country and institution type. -

      - -
      - -
      +
      -

      Information Supply Chain

      +

      Biometric Trade Routes

      - To understand how VIPeR has been used around the world... - affected global research on computer vision, surveillance, defense, and consumer technology, the and where this dataset has been used the locations of each organization that used or referenced the datast + To help understand how VIPeR has been used around the world for commercial, military and academic research; publicly available research citing Viewpoint Invariant Pedestrian Recognition is collected, verified, and geocoded to show the biometric trade routes of people appearing in the images. Click on the markers to reveal reserach projects at that location.

      -
      +
      +
      • Academic
      • -
      • Industry
      • -
      • Government / Military
      • +
      • Commercial
      • +
      • Military / Government
      • Citation data is collected using SemanticScholar.org then dataset usage verified and geolocated.
      -
      +
      @@ -99,13 +92,13 @@
      -

      Supplementary Information

      +

      Supplementary Information

      +
      -

      Citations

      +

      Dataset Citations

      - Citations were collected from Semantic Scholar, a website which aggregates - and indexes research papers. The citations were geocoded using names of institutions found in the PDF front matter, or as listed on other resources. These papers have been manually verified to show that researchers downloaded and used the dataset to train or test machine learning algorithms. + The dataset citations used in the visualizations were collected from Semantic Scholar, a website which aggregates and indexes research papers. Each citation was geocoded using names of institutions found in the PDF front matter, or as listed on other resources. These papers have been manually verified to show that researchers downloaded and used the dataset to train or test machine learning algorithms.

      Add [button/link] to download CSV. Add search input field to filter. diff --git a/site/public/research/index.html b/site/public/research/index.html index 0ef57043..303732f8 100644 --- a/site/public/research/index.html +++ b/site/public/research/index.html @@ -26,22 +26,8 @@

      -
      -

      Research

      -
      -
      -
      Posted
      -
      2018-12-15
      -
      -
      -
      By
      -
      Adam Harvey
      -
      - -
      -
      - - +

      Research Blog

      +
      -- cgit v1.2.3-70-g09d2 From af41073892c9391d679b8872f498767ef87150d4 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Tue, 2 Apr 2019 13:10:14 +0200 Subject: incorporate sheet utilities --- megapixels/app/settings/app_cfg.py | 1 + megapixels/app/utils/sheet_utils.py | 82 +++++++++++++++++++++++++++++++++ site/includes/supplementary_header.html | 1 - 3 files changed, 83 insertions(+), 1 deletion(-) create mode 100644 megapixels/app/utils/sheet_utils.py (limited to 'megapixels/app') diff --git a/megapixels/app/settings/app_cfg.py b/megapixels/app/settings/app_cfg.py index f6d0a7df..1eed1a41 100644 --- a/megapixels/app/settings/app_cfg.py +++ b/megapixels/app/settings/app_cfg.py @@ -169,6 +169,7 @@ DIR_SITE_INCLUDES = "../site/includes" DIR_SITE_USER_CONTENT = "../site/public/user_content" DIR_SITE_DATASETS = "../site/datasets/" DIR_SITE_FINAL_CITATIONS = "../site/datasets/final/" +GOOGLE_ACCOUNT_CREDS_PATH = os.path.join("../", os.getenv("GOOGLE_ACCOUNT_CREDS_PATH")) # ----------------------------------------------------------------------------- # Celery diff --git a/megapixels/app/utils/sheet_utils.py b/megapixels/app/utils/sheet_utils.py new file mode 100644 index 00000000..85f979c6 --- /dev/null +++ b/megapixels/app/utils/sheet_utils.py @@ -0,0 +1,82 @@ +import os +import gspread +from oauth2client.service_account import ServiceAccountCredentials + +from app.settings import app_cfg as cfg + +def fetch_spreadsheet(): + """Open the Google Spreadsheet, which contains the individual worksheets""" + scope = ['https://spreadsheets.google.com/feeds', 'https://www.googleapis.com/auth/drive'] + path = os.path.dirname(os.path.abspath(__file__)) + credentials = ServiceAccountCredentials.from_json_keyfile_name(cfg.GOOGLE_ACCOUNT_CREDS_PATH, scope) + docid = "1denb7TjYsN9igHyvYah7fQ0daABW32Z30lwV7QrDJQc" + client = gspread.authorize(credentials) + spreadsheet = client.open_by_key(docid) + return spreadsheet + +def fetch_worksheet(name): + """Get a reference to a particular "worksheet" from the Google Spreadsheet""" + spreadsheet = fetch_spreadsheet() + return spreadsheet.worksheet(name) + +def fetch_google_sheet(name): + """Get all the values from a particular worksheet as a list of lists. + Returns: + :keys - the first row of the document + :lines - a list of lists with the rest of the rows""" + rows = fetch_worksheet(name).get_all_values() + keys = rows[0] + lines = rows[1:] + return keys, lines + +def fetch_google_sheet_objects(name): + """Get all the values from a worksheet as a list of dictionaries""" + keys, rows = fetch_google_sheet(name) + recs = [] + for row in rows: + rec = {} + for index, key in enumerate(keys): + rec[key] = row[index] + recs.append(rec) + return recs + +def fetch_google_lookup(name, item_key='key'): + """Get all the values from a worksheet as a dictionary of dictionaries. + Specify which field you want to use as the dictionary key.""" + keys, rows = fetch_google_sheet(name) + lookup = {} + for row in rows: + rec = {} + for index, key in enumerate(keys): + rec[key] = row[index] + lookup[rec[item_key]] = rec + return lookup + +def fetch_verified_paper_lookup(): + """Fetch a lookup keyed by dataset, where each dataset points to a hash of valid or invalid papers...""" + keys, rows = fetch_google_sheet('verifications') + verified_lookup = {} + for row in rows: + rec = {} + for index, key in enumerate(keys): + rec[key] = row[index] + if rec['dataset'] not in verified_lookup: + verified_lookup[rec['dataset']] = {} + if str(rec['uses_dataset']) == '1': + verified_lookup[rec['dataset']][rec['paper_id']] = rec + return verified_lookup + +def update_or_append_worksheet(name, form): + """Update a row if it exists, create it if it doesn't""" + worksheet = fetch_worksheet(name) + keys = worksheet.row_values(1) + row = [ form[key] if key in form else '' for key in keys ] + try: + cell = worksheet.find(form['paper_id']) + except: + cell = None + if cell: + for i, item in enumerate(row): + worksheet.update_cell(cell.row, i+1, item) + else: + worksheet.append_row(row) diff --git a/site/includes/supplementary_header.html b/site/includes/supplementary_header.html index bcd84223..be0967e4 100644 --- a/site/includes/supplementary_header.html +++ b/site/includes/supplementary_header.html @@ -1,6 +1,5 @@
      -
      -- cgit v1.2.3-70-g09d2 From b8f5c87e823d0b68d5e30f8de453ba90dcadc241 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Tue, 2 Apr 2019 14:38:27 +0200 Subject: sidebar from spreadsheet --- megapixels/app/site/loader.py | 38 ++++++++++++++++++++++ megapixels/app/site/parser.py | 11 +------ site/assets/css/css.css | 11 +------ site/content/pages/datasets/brainwash/index.md | 11 +------ site/includes/sidebar.html | 6 ++++ .../datasets/50_people_one_question/index.html | 4 +-- site/public/datasets/brainwash/index.html | 24 ++++++++++++-- site/public/datasets/celeba/index.html | 4 +-- site/public/datasets/cofw/index.html | 4 +-- site/public/datasets/duke_mtmc/index.html | 4 +-- site/public/datasets/facebook/index.html | 3 +- site/public/datasets/hrt_transgender/index.html | 4 +-- site/public/datasets/lfw/index.html | 4 +-- site/public/datasets/market_1501/index.html | 4 +-- site/public/datasets/msceleb/index.html | 4 +-- site/public/datasets/pipa/index.html | 4 +-- site/public/datasets/uccs/index.html | 4 +-- site/public/datasets/viper/index.html | 4 +-- site/public/research/index.html | 18 ++++++++-- 19 files changed, 109 insertions(+), 57 deletions(-) create mode 100644 site/includes/sidebar.html (limited to 'megapixels/app') diff --git a/megapixels/app/site/loader.py b/megapixels/app/site/loader.py index 779f68ba..701c78b2 100644 --- a/megapixels/app/site/loader.py +++ b/megapixels/app/site/loader.py @@ -5,6 +5,9 @@ import glob import app.settings.app_cfg as cfg from app.utils.file_utils import load_json +import app.utils.sheet_utils as sheet + +sidebar = sheet.fetch_google_lookup("sidebar", item_key="key") def read_metadata(fn): """ @@ -20,6 +23,12 @@ def read_metadata(fn): sections = data.split("\n\n") return parse_metadata(fn, sections) +def domainFromUrl(url): + domain = url.split('/')[2].split('.') + if len(domain) > 2 and len(domain[-2]) == 2: + return ".".join(domain[-3:]) + return ".".join(domain[-2:]) + default_metadata = { 'status': 'published', @@ -33,6 +42,18 @@ default_metadata = { 'tagline': '', } +sidebar_order = [ + { 'key': 'published', 'title': 'Published' }, + { 'key': 'images', 'title': 'Images' }, + { 'key': 'videos', 'title': 'Videos' }, + { 'key': 'identities', 'title': 'Identities' }, + { 'key': 'purpose', 'title': 'Purpose' }, + { 'key': 'created_by', 'title': 'Created by' }, + { 'key': 'funded_by_short', 'title': 'Funded by' }, + { 'key': 'size_gb', 'title': 'Download Size' }, + { 'key': 'website', 'title': 'Website' }, +] + def parse_metadata(fn, sections): """ parse the metadata headers in a markdown file @@ -87,8 +108,25 @@ def parse_metadata(fn, sections): print("Bad metadata? {}".format(dataset_path)) elif 'datasets' in fn: print("/!\\ {} does not exist!".format(dataset_path)) + + if metadata['slug'] in sidebar: + sidebar_row = sidebar[metadata['slug']] + if sidebar_row: + metadata['sidebar'] = [] + for item in sidebar_order: + key = item['key'] + value = sidebar_row[key] + if value: + value = value.replace(' - ', ' – ') + if key == 'size_gb': + value += ' GB' + if key == 'website': + value = "" + domainFromUrl(value) + "" + metadata['sidebar'].append({ 'value': value, 'title': item['title'], }) + if 'meta' not in metadata or not metadata['meta']: # dude metadata['meta'] = {} + metadata['sidebar'] = [] return metadata, valid_sections diff --git a/megapixels/app/site/parser.py b/megapixels/app/site/parser.py index 06c45f41..dc2a09f2 100644 --- a/megapixels/app/site/parser.py +++ b/megapixels/app/site/parser.py @@ -55,7 +55,7 @@ def parse_markdown(metadata, sections, s3_path, skip_h1=False): elif '### statistics' in section.lower() or '### sidebar' in section.lower(): if len(current_group): groups.append(format_section(current_group, s3_path)) - current_group = [] + current_group = [format_include("{% include 'sidebar.html' %}", metadata)] if 'sidebar' not in section.lower(): current_group.append(section) in_stats = True @@ -267,15 +267,6 @@ def format_include(section, metadata): include_fn = section.strip().strip('\n').strip().strip('{%').strip().strip('%}').strip() include_fn = include_fn.strip('include').strip().strip('"').strip().strip("'").strip() return includes_env.get_template(include_fn).render(metadata=metadata) - # include_dir = cfg.DIR_SITE_INCLUDES - # try: - # includes_env.get_template(fp_html) - # with open(join(include_dir, fp_html), 'r') as fp: - # html = fp.read().replace('\n', '') - # return html - # except Exception as e: - # print(f'Error parsing include: {e}') - # return '' def format_applet(section, s3_path): """ diff --git a/site/assets/css/css.css b/site/assets/css/css.css index 0ee8a4f3..30663ef7 100644 --- a/site/assets/css/css.css +++ b/site/assets/css/css.css @@ -1,4 +1,4 @@ -da* { box-sizing: border-box; outline: 0; } +* { box-sizing: border-box; outline: 0; } html, body { margin: 0; padding: 0; @@ -278,11 +278,8 @@ p.subp{ color: #ccc; margin-bottom: 20px; font-family: 'Roboto', sans-serif; -} -.meta > div { margin-right: 20px; line-height: 17px - /*font-size:11px;*/ } .meta .gray { font-size: 9pt; @@ -316,12 +313,6 @@ p.subp{ .left-sidebar .meta, .right-sidebar .meta { flex-direction: column; } -.right-sidebar .meta > div { - margin-bottom: 10px; -} -.left-sidebar .meta > div { - margin-bottom: 15px; -} .right-sidebar ul { margin-bottom: 10px; color: #aaa; diff --git a/site/content/pages/datasets/brainwash/index.md b/site/content/pages/datasets/brainwash/index.md index 6d90e78f..db88d949 100644 --- a/site/content/pages/datasets/brainwash/index.md +++ b/site/content/pages/datasets/brainwash/index.md @@ -15,16 +15,7 @@ authors: Adam Harvey ------------ ### sidebar - -+ Published: 2015 -+ Images: 11,918 -+ Faces: 91,146 -+ Created by: Stanford University (US)
      Max Planck Institute for Informatics (DE) -+ Funded by: Max Planck Center for Visual Computing and Communication -+ Purpose: Head detection -+ Download Size: 4.1GB -+ Website: stanford.edu - +### end sidebar ## Brainwash Dataset diff --git a/site/includes/sidebar.html b/site/includes/sidebar.html new file mode 100644 index 00000000..0f7d2dad --- /dev/null +++ b/site/includes/sidebar.html @@ -0,0 +1,6 @@ +{% for item in metadata.sidebar %} +
      +
      {{ item.title }}
      +
      {{ item.value }}
      +
      +{% endfor %} \ No newline at end of file diff --git a/site/public/datasets/50_people_one_question/index.html b/site/public/datasets/50_people_one_question/index.html index 540e2d0d..1b03fc7e 100644 --- a/site/public/datasets/50_people_one_question/index.html +++ b/site/public/datasets/50_people_one_question/index.html @@ -27,7 +27,8 @@
      People One Question is a dataset of people from an online video series on YouTube and Vimeo used for building facial recogntion algorithms
      People One Question dataset includes ... -

      50 People 1 Question

      +

      50 People 1 Question

      (PAGE UNDER DEVELOPMENT)

      At vero eos et accusamus et iusto odio dignissimos ducimus, qui blanditiis praesentium voluptatum deleniti atque corrupti, quos dolores et quas molestias excepturi sint, obcaecati cupiditate non-provident, similique sunt in culpa, qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio.

      Nam libero tempore, cum soluta nobis est eligendi optio, cumque nihil impedit, quo minus id, quod maxime placeat, facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet, ut et voluptates repudiandae sint et molestiae non-recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat

      @@ -71,7 +72,6 @@
      -->
      -
      diff --git a/site/public/datasets/brainwash/index.html b/site/public/datasets/brainwash/index.html index 5e8f3a4c..c0830a96 100644 --- a/site/public/datasets/brainwash/index.html +++ b/site/public/datasets/brainwash/index.html @@ -27,7 +27,28 @@
      Brainwash is a dataset of webcam images taken from the Brainwash Cafe in San Francisco in 2014
      The Brainwash dataset includes 11,918 images of "everyday life of a busy downtown cafe" and is used for training head detection surveillance algorithms -

      Brainwash Dataset

      +

      Brainwash Dataset

      Brainwash is a head detection dataset created from San Francisco's Brainwash Cafe livecam footage. It includes 11,918 images of "everyday life of a busy downtown cafe" 1 captured at 100 second intervals throught the entire day. Brainwash dataset was captured during 3 days in 2014: October 27, November 13, and November 24. According the author's reserach paper introducing the dataset, the images were acquired with the help of Angelcam.com [cite orig paper].

      Brainwash is not a widely used dataset but since its publication by Stanford University in 2015, it has notably appeared in several research papers from the National University of Defense Technology in Changsha, China. In 2016 and in 2017 researchers there conducted studies on detecting people's heads in crowded scenes for the purpose of surveillance 2 3.

      If you happen to have been at Brainwash cafe in San Franscisco at any time on October 26, November 13, or November 24 in 2014 you are most likely included in the Brainwash dataset.

      @@ -94,7 +115,6 @@
      -
      diff --git a/site/public/datasets/celeba/index.html b/site/public/datasets/celeba/index.html index f1ee0c22..ef7a3b27 100644 --- a/site/public/datasets/celeba/index.html +++ b/site/public/datasets/celeba/index.html @@ -27,7 +27,8 @@
      CelebA is a dataset of people...
      CelebA includes... -

      CelebA

      +

      CelebA

      (PAGE UNDER DEVELOPMENT)

      At vero eos et accusamus et iusto odio dignissimos ducimus, qui blanditiis praesentium voluptatum deleniti atque corrupti, quos dolores et quas molestias excepturi sint, obcaecati cupiditate non-provident, similique sunt in culpa, qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio.

      Nam libero tempore, cum soluta nobis est eligendi optio, cumque nihil impedit, quo minus id, quod maxime placeat, facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet, ut et voluptates repudiandae sint et molestiae non-recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat

      @@ -71,7 +72,6 @@
      -->
      -
      diff --git a/site/public/datasets/cofw/index.html b/site/public/datasets/cofw/index.html index 1f5aa315..3520aaa2 100644 --- a/site/public/datasets/cofw/index.html +++ b/site/public/datasets/cofw/index.html @@ -26,7 +26,8 @@
      -

      Caltech Occluded Faces in the Wild

      +

      Caltech Occluded Faces in the Wild

      (PAGE UNDER DEVELOPMENT)

      COFW is "is designed to benchmark face landmark algorithms in realistic conditions, which include heavy occlusions and large shape variations" [Robust face landmark estimation under occlusion].

      RESEARCH below this line

      @@ -81,7 +82,6 @@ To increase the number of training images, and since COFW has the exact same la
      -->
      -
      diff --git a/site/public/datasets/duke_mtmc/index.html b/site/public/datasets/duke_mtmc/index.html index 83050506..c3e84053 100644 --- a/site/public/datasets/duke_mtmc/index.html +++ b/site/public/datasets/duke_mtmc/index.html @@ -27,7 +27,8 @@
      Duke MTMC is a dataset of surveillance camera footage of students on Duke University campus
      Duke MTMC contains over 2 million video frames and 2,000 unique identities collected from 8 HD cameras at Duke University campus in March 2014 -

      Duke Multi-Target, Multi-Camera Tracking Dataset (Duke MTMC)

      +

      Duke Multi-Target, Multi-Camera Tracking Dataset (Duke MTMC)

      [ PAGE UNDER DEVELOPMENT ]

      Duke MTMC is a dataset of video recorded on Duke University campus during for the purpose of training, evaluating, and improving multi-target multi-camera tracking. The videos were recorded during February and March 2014 and cinclude

      Includes a total of 888.8 minutes of video (ind. verified)

      @@ -89,7 +90,6 @@
      -
      diff --git a/site/public/datasets/facebook/index.html b/site/public/datasets/facebook/index.html index 7fb1901a..e9adb3f2 100644 --- a/site/public/datasets/facebook/index.html +++ b/site/public/datasets/facebook/index.html @@ -27,7 +27,8 @@
      TBD
      TBD -
      TBD

      Statistics

      +
      TBD

      {% include 'sidebar.html' %}

      +

      Statistics

      Years
      2002-2004
      Images
      13,233
      Identities
      5,749
      Origin
      Yahoo News Images
      Funding
      (Possibly, partially CIA)

      Ignore content below these lines

      • Tool to create face datasets from Facebook https://github.com/ankitaggarwal011/FaceGrab
      • diff --git a/site/public/datasets/hrt_transgender/index.html b/site/public/datasets/hrt_transgender/index.html index 528d1c3d..3215fb5d 100644 --- a/site/public/datasets/hrt_transgender/index.html +++ b/site/public/datasets/hrt_transgender/index.html @@ -27,7 +27,8 @@
        TBD
        TBD -

        HRT Transgender Dataset

        +

      HRT Transgender Dataset

      Who used HRT Transgender?

      @@ -83,7 +84,6 @@
      -->
      -
      diff --git a/site/public/datasets/lfw/index.html b/site/public/datasets/lfw/index.html index 5f076fc7..562169e4 100644 --- a/site/public/datasets/lfw/index.html +++ b/site/public/datasets/lfw/index.html @@ -27,7 +27,8 @@
      Labeled Faces in The Wild (LFW) is the first facial recognition dataset created entirely from online photos
      It includes 13,456 images of 4,432 people's images copied from the Internet during 2002-2004 and is the most frequently used dataset in the world for benchmarking face recognition algorithms. -
      -
      diff --git a/site/public/datasets/market_1501/index.html b/site/public/datasets/market_1501/index.html index 951646e3..7d9f87f6 100644 --- a/site/public/datasets/market_1501/index.html +++ b/site/public/datasets/market_1501/index.html @@ -27,7 +27,8 @@
      Market-1501 is a dataset is collection of CCTV footage from ...
      The Market-1501 dataset includes ... -

      Market-1501 ...

      +

      Market-1501 ...

      (PAGE UNDER DEVELOPMENT)

      @@ -69,7 +70,6 @@
      -->
      -
      diff --git a/site/public/datasets/msceleb/index.html b/site/public/datasets/msceleb/index.html index 9a671c8e..ecab4c3a 100644 --- a/site/public/datasets/msceleb/index.html +++ b/site/public/datasets/msceleb/index.html @@ -27,7 +27,8 @@
      MS Celeb is a dataset of web images used for training and evaluating face recognition algorithms
      The MS Celeb dataset includes over 10,000,000 images and 93,000 identities of semi-public figures collected using the Bing search engine -

      Microsoft Celeb Dataset (MS Celeb)

      +

      Microsoft Celeb Dataset (MS Celeb)

      (PAGE UNDER DEVELOPMENT)

      At vero eos et accusamus et iusto odio dignissimos ducimus, qui blanditiis praesentium voluptatum deleniti atque corrupti, quos dolores et quas molestias excepturi sint, obcaecati cupiditate non-provident, similique sunt in culpa, qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio.

      Nam libero tempore, cum soluta nobis est eligendi optio, cumque nihil impedit, quo minus id, quod maxime placeat, facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet, ut et voluptates repudiandae sint et molestiae non-recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat

      @@ -87,7 +88,6 @@ -->

      Add more analysis here

      -
      diff --git a/site/public/datasets/pipa/index.html b/site/public/datasets/pipa/index.html index fe6a4742..ff4302eb 100644 --- a/site/public/datasets/pipa/index.html +++ b/site/public/datasets/pipa/index.html @@ -27,7 +27,8 @@
      is a dataset...
      PIPA subdescription -

      Dataset Title TBD

      +

      Dataset Title TBD

      (PAGE UNDER DEVELOPMENT)

      @@ -69,7 +70,6 @@
      -->
      -
      diff --git a/site/public/datasets/uccs/index.html b/site/public/datasets/uccs/index.html index 10b7603e..0925763b 100644 --- a/site/public/datasets/uccs/index.html +++ b/site/public/datasets/uccs/index.html @@ -27,7 +27,8 @@
      Unconstrained College Students (UCCS) is a dataset of long-range surveillance photos of students taken without their knowledge
      The UCCS dataset includes 16,149 images and 1,732 identities of students at University of Colorado Colorado Springs campus and is used for face recognition and face detection -

      Unconstrained College Students ...

      +

      Unconstrained College Students ...

      (PAGE UNDER DEVELOPMENT)

       The pixel-average of all Uconstrained College Students images is shown with all 51,838 face annotations. (c) Adam Harvey
      The pixel-average of all Uconstrained College Students images is shown with all 51,838 face annotations. (c) Adam Harvey
      @@ -84,7 +85,6 @@
      -
      diff --git a/site/public/datasets/viper/index.html b/site/public/datasets/viper/index.html index cc4272c8..b838c2b9 100644 --- a/site/public/datasets/viper/index.html +++ b/site/public/datasets/viper/index.html @@ -27,7 +27,8 @@
      VIPeR is a person re-identification dataset of images captured at UC Santa Cruz in 2007
      VIPeR contains 1,264 images and 632 persons on the UC Santa Cruz campus and is used to train person re-identification algorithms for surveillance -

      VIPeR Dataset

      +

      VIPeR Dataset

      (PAGE UNDER DEVELOPMENT)

      VIPeR (Viewpoint Invariant Pedestrian Recognition) is a dataset of pedestrian images captured at University of California Santa Cruz in 2007. Accoriding to the reserachers 2 "cameras were placed in different locations in an academic setting and subjects were notified of the presence of cameras, but were not coached or instructed in any way."

      VIPeR is amongst the most widely used publicly available person re-identification datasets. In 2017 the VIPeR dataset was combined into a larger person re-identification created by the Chinese University of Hong Kong called PETA (PEdesTrian Attribute).

      @@ -86,7 +87,6 @@
      -->
      -
      diff --git a/site/public/research/index.html b/site/public/research/index.html index 303732f8..0ef57043 100644 --- a/site/public/research/index.html +++ b/site/public/research/index.html @@ -26,8 +26,22 @@
      -

      Research Blog

      -
      +
      +

      Research

      +
      +
      +
      Posted
      +
      2018-12-15
      +
      +
      +
      By
      +
      Adam Harvey
      +
      + +
      +
      + +
      -- cgit v1.2.3-70-g09d2