1 <!doctype html><html lang=en class=no-js> <head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=description content="A research project tracing how ordinary photographs became an information supply chain for the global face recognition industry."><meta name=author content="Adam Harvey"><link rel=canonical href=https://adam.harvey.studio/exposing-ai/><link rel=prev href=../cvdazzle/><link rel=next href=../vframe/><link rel=icon href=../favicon.png><meta name=generator content=zensical-0.0.62><title>Exposing.ai - Adam Harvey Studio</title><link rel=stylesheet href=../assets/stylesheets/modern/main.ce62732f.min.css><link rel=stylesheet href=../assets/stylesheets/modern/palette.812a03bb.min.css><link rel=stylesheet href=../assets/fonts.min.css><link rel=stylesheet href=../assets/extra.min.css>
1<script>__md_scope=new URL("..",location),__md_scope.pathname.endsWith("/")||(__md_scope=new URL(__md_scope.pathname+"/",location)),__md_hash=e=>[...e].reduce(((e,t)=>(e<<5)-e+t.charCodeAt(0)),0),__md_get=(e,t=localStorage,_=__md_scope)=>JSON.parse(t.getItem(_.pathname+"."+e)),__md_set=(e,t,_=localStorage,a=__md_scope)=>{try{_.setItem(a.pathname+"."+e,JSON.stringify(t))}catch(e){}},document.documentElement.setAttribute("data-platform",navigator.platform)</script>
1<meta property=og:type content=article><meta property=og:site_name content="Adam Harvey Studio"><meta property=og:title content=Exposing.ai><meta property=og:description content="A research project tracing how ordinary photographs became an information supply chain for the global face recognition industry."><meta property=og:url content=https://adam.harvey.studio/exposing-ai/><meta property=og:image content=https://adam.harvey.studio/exposing-ai/index-thumb.jpg><meta property=article:published_time content=2018-11-01><meta name=twitter:card content=summary_large_image><meta name=twitter:title content=Exposing.ai><meta name=twitter:description content="A research project tracing how ordinary photographs became an information supply chain for the global face recognition industry."><meta name=twitter:image content=https://adam.harvey.studio/exposing-ai/index-thumb.jpg>
1<script type=application/ld+json>{ 2 "@context": "https://schema.org", 3 "@graph": [ 4 { 5 "@type": "CreativeWork", 6 "@id": "https://adam.harvey.studio/exposing-ai/#work", 7 "name": "EXPOSING.ai", 8 "headline": "EXPOSING.ai", 9 "description": "A research project tracing how ordinary photographs became an information supply chain for the global face recognition industry.", 10 "url": "https://adam.harvey.studio/exposing-ai/", 11 "image": "https://adam.harvey.studio/exposing-ai/index-thumb.jpg", 12 "inLanguage": "en", 13 "dateCreated": "2018-11-01", 14 "datePublished": "2018-11-01", 15 "dateModified": "2026-02-06", 16 "keywords": "face-detection, privacy", 17 "sameAs": "https://exposing.ai", 18 "author": { "@id": "https://adam.harvey.studio/#person" }, 19 "publisher": { "@id": "https://adam.harvey.studio/#person" }, 20 "isPartOf": { "@id": "https://adam.harvey.studio/#website" }, 21 "copyrightHolder": { "@id": "https://adam.harvey.studio/#person" } 22 }, 23 { 24 "@type": "Person", 25 "@id": "https://adam.harvey.studio/#person", 26 "name": "Adam Harvey", 27 "url": "https://adam.harvey.studio/", 28 "image": "https://adam.harvey.studio/about/index-thumb.jpg", 29 "sameAs": [ 30 "https://tldr.nettime.org/@adam_harvey", 31 "https://github.com/adamhrv" 32 ] 33} 34 ] 35} 36</script>
36<link rel=preload href=../assets/fonts/inter/inter-400-normal-latin.woff2 as=font type=font/woff2 crossorigin><link rel=preload href=../assets/fonts/syne-tactile/syne-tactile-400-normal-latin.woff2 as=font type=font/woff2 crossorigin></head> <body dir=ltr data-md-color-scheme=default data-md-color-primary=indigo data-md-color-accent=indigo> <input class=md-toggle data-md-toggle=drawer type=checkbox id=__drawer autocomplete=off> <input class=md-toggle data-md-toggle=search type=checkbox id=__search autocomplete=off> <label class=md-overlay for=__drawer aria-label=Navigation></label><div data-md-component=skip> <a href=#__skip class=md-skip> Skip to content </a> </div> <div data-md-component=announce> </div> <header class="md-header md-header--shadow" data-md-component=header> <nav class="md-header__inner md-grid" aria-label=Header> <a href=./.. title="Adam Harvey Studio" class="md-header__button md-logo" aria-label="Adam Harvey Studio" data-md-component=logo> <img src=../logo-sm.gif alt="Adam Harvey Studio"> </a> <label class="md-header__button md-icon" for=__drawer aria-label=Navigation> <svg xmlns=http://www.w3.org/2000/svg fill=none stroke=currentColor stroke-linecap=round stroke-linejoin=round stroke-width=2 class="lucide lucide-menu" viewBox="0 0 24 24"><path d="M4 5h16M4 12h16M4 19h16"/></svg> </label> <div class=md-header__title data-md-component=header-title> <div class=md-header__ellipsis> <div class=md-header__topic> <span class=md-ellipsis> Adam Harvey Studio </span> </div> <div class=md-header__topic data-md-component=header-topic> <span class=md-ellipsis> Exposing.ai </span> </div> </div> </div> <form class=md-header__option data-md-component=palette> <input class=md-option data-md-color-media=(prefers-color-scheme) data-md-color-scheme=default data-md-color-primary=indigo data-md-color-accent=indigo aria-label="Switch to light mode" type=radio name=__palette id=__palette_0> <label class="md-header__button md-icon" title="Switch to light mode" for=__palette_1 hidden> <svg xmlns=http://www.w3.org/2000/svg fill=none stroke=currentColor stroke-linecap=round stroke-linejoin=round stroke-width=2 class="lucide lucide-sun-moon" viewBox="0 0 24 24"><path d="M12 2v2M14.837 16.385a6 6 0 1 1-7.223-7.222c.624-.147.97.66.715 1.248a4 4 0 0 0 5.26 5.259c.589-.255 1.396.09 1.248.715M16 12a4 4 0 0 0-4-4M19 5l-1.256 1.256M20 12h2"/></svg> </label> <input class=md-option data-md-color-media="(prefers-color-scheme: light)" data-md-color-scheme=default data-md-color-primary=indigo data-md-color-accent=indigo aria-label="Switch to dark mode" type=radio name=__palette id=__palette_1> <label class="md-header__button md-icon" title="Switch to dark mode" for=__palette_2 hidden> <svg xmlns=http://www.w3.org/2000/svg fill=none stroke=currentColor stroke-linecap=round stroke-linejoin=round stroke-width=2 class="lucide lucide-sun" viewBox="0 0 24 24"><circle cx=12 cy=12 r=4 /><path d="M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M6.34 17.66l-1.41 1.41M19.07 4.93l-1.41 1.41"/></svg> </label> <input class=md-option data-md-color-media="(prefers-color-scheme: dark)" data-md-color-scheme=slate data-md-color-primary=indigo data-md-color-accent=indigo aria-label="Switch to system preference" type=radio name=__palette id=__palette_2> <label class="md-header__button md-icon" title="Switch to system preference" for=__palette_0 hidden> <svg xmlns=http://www.w3.org/2000/svg fill=none stroke=currentColor stroke-linecap=round stroke-linejoin=round stroke-width=2 class="lucide lucide-moon" viewBox="0 0 24 24"><path d="M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401"/></svg> </label> </form>
36<script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
36 <label class="md-header__button md-icon" for=__search aria-label=Search> <svg xmlns=http://www.w3.org/2000/svg fill=none stroke=currentColor stroke-linecap=round stroke-linejoin=round stroke-width=2 class="lucide lucide-search" viewBox="0 0 24 24"><path d="m21 21-4.34-4.34"/><circle cx=11 cy=11 r=8 /></svg> </label> <div class=md-search data-md-component=search role=dialog aria-label=Search> <button type=button class=md-search__button> Search </button> </div> <div class=md-header__source> </div> </nav> </header> <div class=md-container data-md-component=container> <main class=md-main data-md-component=main> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component=sidebar data-md-type=navigation> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--primary" aria-label=Navigation data-md-level=0> <label class=md-nav__title for=__drawer> <a href=./.. title="Adam Harvey Studio" class="md-nav__button md-logo" aria-label="Adam Harvey Studio" data-md-component=logo> <img src=../logo-sm.gif alt="Adam Harvey Studio"> </a> Adam Harvey Studio </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../about/ class=md-nav__link> <span class=md-ellipsis> About </span> </a> </li> <li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_2 checked> <label class=md-nav__link for=__nav_2 id=__nav_2_label tabindex> <span class=md-ellipsis> Projects </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_2_label aria-expanded=true> <label class=md-nav__title for=__nav_2> <span class="md-nav__icon md-icon"></span> Projects </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../cvdazzle/ class=md-nav__link> <span class=md-ellipsis> CV Dazzle </span> </a> </li> <li class="md-nav__item md-nav__item--active"> <a href=././ class="md-nav__link md-nav__link--active"> <span class=md-ellipsis> Exposing.ai </span> </a> </li> <li class=md-nav__item> <a href=../vframe/ class=md-nav__link> <span class=md-ellipsis> VFRAME </span> </a> </li> <li class=md-nav__item> <a href=../circular-diffusion/ class=md-nav__link> <span class=md-ellipsis> Circular Diffusion </span> </a> </li> <li class=md-nav__item> <a href=../datapools/ class=md-nav__link> <span class=md-ellipsis> Data Pools </span> </a> </li> <li class=md-nav__item> <a href=../stealth-wear/ class=md-nav__link> <span class=md-ellipsis> Stealth Wear </span> </a> </li> <li class=md-nav__item> <a href=../dface/ class=md-nav__link> <span class=md-ellipsis> DFACE </span> </a> </li> <li class=md-nav__item> <a href=../think-privacy/ class=md-nav__link> <span class=md-ellipsis> Think Privacy </span> </a> </li> <li class=md-nav__item> <a href=../researchers-gone-wild/ class=md-nav__link> <span class=md-ellipsis> Researchers Gone Wild </span> </a> </li> <li class=md-nav__item> <a href=../megapixels-glassroom/ class=md-nav__link> <span class=md-ellipsis> MegaPixels </span> </a> </li> <li class=md-nav__item> <a href=../skylift/ class=md-nav__link> <span class=md-ellipsis> SkyLift </span> </a> </li> <li class=md-nav__item> <a href=../hyperface/ class=md-nav__link> <span class=md-ellipsis> HyperFace </span> </a> </li> <li class=md-nav__item> <a href=../off-pocket/ class=md-nav__link> <span class=md-ellipsis> OFF Pocket </span> </a> </li> <li class=md-nav__item> <a href=../camoflash/ class=md-nav__link> <span class=md-ellipsis> CamoFlash </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--section md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_3> <label class=md-nav__link for=__nav_3 id=__nav_3_label tabindex> <span class=md-ellipsis> Essays </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_3_label aria-expanded=false> <label class=md-nav__title for=__nav_3> <span class="md-nav__icon md-icon"></span> Essays </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../anti-fragile-sycophants/ class=md-nav__link> <span class=md-ellipsis> Anti-Fragile Sycophants </span> </a> </li> <li class=md-nav__item> <a href=../todays-selfie-essay/ class=md-nav__link> <span class=md-ellipsis> Today's Selfie </span> </a> </li> <li class=md-nav__item> <a href=../creative-commons/ class=md-nav__link> <span class=md-ellipsis>
36 Creative Commons Biometrics </span> </a> </li> <li class=md-nav__item> <a href=../what-is-a-face/ class=md-nav__link> <span class=md-ellipsis> What Is a Face </span> </a> </li> <li class=md-nav__item> <a href=../on-computer-vision/ class=md-nav__link> <span class=md-ellipsis> On Computer Vision </span> </a> </li> <li class=md-nav__item> <a href=../origins-and-endpoints/ class=md-nav__link> <span class=md-ellipsis> Origins and Endpoints </span> </a> </li> <li class=md-nav__item> <a href=../3d-printed-training-data/ class=md-nav__link> <span class=md-ellipsis> 3D Printed Training Data </span> </a> </li> </ul> </nav> </li> </ul> </nav> </div> </div> </div> <div class="md-sidebar md-sidebar--secondary" data-md-component=sidebar data-md-type=toc hidden> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--secondary" aria-label="On this page"> </nav> </div> </div> </div> <div class=md-content data-md-component=content> <article class="md-content__inner md-typeset"> <header class=ah-page-header> <h1 id=__skip>EXPOSING.ai</h1> <dl class=ah-meta> <div class=ah-meta__item> <dt class=ah-meta__label>Created</dt> <dd class=ah-meta__value>2018</dd> </div> <div class=ah-meta__item> <dt class=ah-meta__label>Updated</dt> <dd class=ah-meta__value>2026-02-06</dd> </div> <div class=ah-meta__item> <dt class=ah-meta__label>By</dt> <dd class=ah-meta__value>Adam Harvey</dd> </div> <div class="ah-meta__item ah-meta__item--url"><dt class="ah-meta__label ah-sr">URL</dt> <dd class=ah-meta__value> <a href=https://exposing.ai target=_blank rel=noopener class=ah-meta__link title="VIEW PROJECT: https://exposing.ai">exposing.ai</a> </dd> </div> </dl> <p class=ah-page-header__description>A research project tracing the origins and endpoints of biometric image datasets built "in the wild", and how ordinary photographs became an information supply chain for the global face recognition industry.</p> <nav class=ah-tags aria-label=Tags> <a href=../tags/#tag:face-detection class=ah-tag>face-detection</a> <a href=../tags/#tag:privacy class=ah-tag>privacy</a> </nav> </header> <figure> <span class=ah-ph style=aspect-ratio:1600/1600;background-image:url(data:image/webp;base64,UklGRnAAAABXRUJQVlA4IGQAAADQAwCdASoYABgAPtlWpEyoJKOiN/VYAQAbCWkAAC31pOTHqzrYzAAA/vKX114JKmLg5HVFAIrWsvTjqYL4bA424uq2NeC2wboU7c8u/Tmw/qw5c0WZZPMZEb0ubKuYV608hgAA)><img alt="Exposing.ai project" height=1600 src=/exposing-ai/exposing-ai.webp width=1600></span> <br> <figcaption>Exposing.ai project</figcaption> </figure> <p>Exposing.ai is a research project about the origins and endpoints of biometric image datasets created "in the wild". The project investigates how photos have unwittingly become part of an information supply chain powering the global biometrics industry. </p> <p>Research from the Exposing.ai project has been featured in the Financial Times, New York Times, Nature, a US Government Accountability Report, the 2020 AI Index, several academic research papers, and has helped push forward an urgent discussion about the ethics of dataset collection into public discourse.</p> <p><a class=md-button href=https://exposing.ai>Visit Exposing.ai</a></p> </article> </div>
36<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
36 </div> <button type=button class="md-top md-icon" data-md-component=top hidden> <svg xmlns=http://www.w3.org/2000/svg fill=none stroke=currentColor stroke-linecap=round stroke-linejoin=round stroke-width=2 class="lucide lucide-circle-arrow-up" viewBox="0 0 24 24"><circle cx=12 cy=12 r=10 /><path d="m16 12-4-4-4 4M12 16V8"/></svg> Back to top </button> </main> <footer class=md-footer> <nav class="md-footer__inner md-grid" aria-label=Footer> <a href=../cvdazzle/ class="md-footer__link md-footer__link--prev" aria-label="Previous: CV Dazzle"> <div class="md-footer__button md-icon"> <svg xmlns=http://www.w3.org/2000/svg fill=none stroke=currentColor stroke-linecap=round stroke-linejoin=round stroke-width=2 class="lucide lucide-arrow-left" viewBox="0 0 24 24"><path d="m12 19-7-7 7-7M19 12H5"/></svg> </div> <div class=md-footer__title> <span class=md-footer__direction> Previous </span> <div class=md-ellipsis> CV Dazzle </div> </div> </a> <a href=../vframe/ class="md-footer__link md-footer__link--next" aria-label="Next: VFRAME"> <div class=md-footer__title> <span class=md-footer__direction> Next </span> <div class=md-ellipsis> VFRAME </div> </div> <div class="md-footer__button md-icon"> <svg xmlns=http://www.w3.org/2000/svg fill=none stroke=currentColor stroke-linecap=round stroke-linejoin=round stroke-width=2 class="lucide lucide-arrow-right" viewBox="0 0 24 24"><path d="M5 12h14M12 5l7 7-7 7"/></svg> </div> </a> </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-copyright><nav class=ah-footer-links aria-label=About> <a href=../about/>About</a> <a href=../about/#connect>Connect</a> <a href=../about/#publications>Publications</a> <a href=../about/#press>Press</a> <a href=../tags/>Index</a> </nav> <div class=md-copyright__highlight> Unless otherwise noted all text, images, and media © Adam Harvey </div> <span class=ah-generator> Made with <a href=https://zensical.org/ target=_blank rel=noopener>Zensical</a> </span> </div> <div class=md-social> <a href=https://tldr.nettime.org/@adam_harvey target=_blank rel="noopener me" title=Mastodon class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 448 512"><!--! Font Awesome Free 7.3.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2026 Fonticons, Inc.--><path fill=currentColor d="M433 179.1c0-97.2-63.7-125.7-63.7-125.7-62.5-28.7-228.6-28.4-290.5 0 0 0-63.7 28.5-63.7 125.7 0 115.7-6.6 259.4 105.6 289.1 40.5 10.7 75.3 13 103.3 11.4 50.8-2.8 79.3-18.1 79.3-18.1l-1.7-36.9s-36.3 11.4-77.1 10.1c-40.4-1.4-83-4.4-89.6-54-.6-4.6-.9-9.3-.9-13.9 85.6 20.9 158.7 9.1 178.7 6.7 56.1-6.7 105-41.3 111.2-72.9 9.8-49.8 9-121.5 9-121.5zm-75.1 125.2h-46.6V190.1c0-49.7-64-51.6-64 6.9v62.5H201V197c0-58.5-64-56.6-64-6.9v114.2H90.3c0-122.1-5.2-147.9 18.4-175 25.9-28.9 79.8-30.8 103.8 6.1l11.6 19.5 11.6-19.5c24.1-37.1 78.1-34.8 103.8-6.1 23.7 27.3 18.4 53 18.4 175"/></svg> </a> <a href=https://github.com/adamhrv target=_blank rel=noopener title=GitHub class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 512 512"><!--! Font Awesome Free 7.3.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2026 Fonticons, Inc.--><path fill=currentColor d="M216.5 362.5c-66-8-112.5-55.5-112.5-117 0-25 9-52 24-70-6.5-16.5-5.5-51.5 2-66 20-2.5 47 8 63 22.5 19-6 39-9 63.5-9s44.5 3 62.5 8.5c15.5-14 43-24.5 63-22 7 13.5 8 48.5 1.5 65.5 16 19 24.5 44.5 24.5 70.5 0 61.5-46.5 108-113.5 116.5 17 11 28.5 35 28.5 62.5v52c0 15 12.5 23.5 27.5 17.5C441 459.5 512 369 512 257 512 115.5 397 0 255.5 0S0 115.5 0 257c0 111 70.5 203 165.5 237.5 13.5 5 26.5-4 26.5-17.5v-40c-7 3-16 5-24 5-33 0-52.5-18-66.5-51.5-5.5-13.5-11.5-21.5-23-23-6-.5-8-3-8-6 0-6 10-10.5 20-10.5 14.5 0 27 9 40 27.5 10 14.5 20.5 21 33 21s20.5-4.5 32-16c8.5-8.5 15-16 21-21"/></svg> </a> </div> </div> </div> </footer> </div> <div class=md-dialog data-md-component=dialog> <div class="md-dialog__inner md-typeset"></div> </div>
36<script id=__config type=application/json>{"annotate":null,"base":"..","features":["content.code.copy","content.footnote.tooltips","navigation.footer","navigation.instant","navigation.instant.prefetch","navigation.expand","navigation.sections","navigation.top","navigation.tracking","search.highlight","search.suggest","toc.follow"],"redirect":null,"search":"../assets/javascripts/workers/search.7d14d953.min.js","tags":null,"translations":{"clipboard.copied":"Copied to clipboard","clipboard.copy":"Copy to clipboard","search.result.more.one":"1 more on this page","search.result.more.other":"# more on this page","search.result.none":"No matching documents","search.result.one":"1 matching document","search.result.other":"# matching documents","search.result.placeholder":"Type to start searching","search.result.term.missing":"Missing","select.version":"Select version"},"version":null}</script>
36
36<script src=../assets/javascripts/bundle.8dcc8e9c.min.js></script>
36
36<script src=../assets/site.min.js></script>
36 </body> </html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.