🎁 3,000,000+ Unsplash images made available for research and machine learning

Overview

The Unsplash Dataset

The Unsplash Dataset is made up of over 250,000+ contributing global photographers and data sourced from hundreds of millions of searches across a nearly unlimited number of uses and contexts. Due to the breadth of intent and semantics contained within the Unsplash dataset, it enables new opportunities for research and learning.

The Unsplash Dataset is offered in two datasets:

  • the Lite dataset: available for commercial and noncommercial usage, containing 25k nature-themed Unsplash photos, 25k keywords, and 1M searches
  • the Full dataset: available for noncommercial usage, containing 3M+ high-quality Unsplash photos, 5M keywords, and over 250M searches

As the Unsplash library continues to grow, we’ll release updates to the dataset with new fields and new images, with each subsequent release being semantically versioned.

We welcome any feedback regarding the content of the datasets or their format. With your input, we hope to close the gap between the data we provide and the data that you would like to leverage. You can open an issue to report a problem or to let us know what you would like to see in the next release of the datasets.

For more on the Unsplash Dataset, see our announcement and site.

Download

Lite Dataset

The Lite dataset contains all of the same fields as the Full dataset, but is limited to ~25,000 photos. It can be used for both commercial and non-commercial usage, provided you abide by the terms.

⬇️ Download the Lite dataset [~650MB compressed, ~1.4GB raw]

Full Dataset

The Full dataset is available for non-commercial usage and all uses must abide by the terms. To access, please go to unsplash.com/data and request access. The dataset weighs ~20 GB compressed (~43GB raw)).

Documentation

See the documentation for a complete list of tables and fields.

Usage

You can follow these examples to load the dataset in these common formats:

Share your work

We're making this data open and available with the hopes of enabling researchers and developers to discover interesting and useful connections in the data.

We'd love to see what you create, whether that's a research paper, a machine learning model, a blog post, or just an interesting discovery in the data. Send us an email at [email protected].

If you're using the dataset in a research paper, you can attribute the dataset as Unsplash Lite Dataset 1.2.0 or Unsplash Full Dataset 1.2.0 and link to the permalink unsplash.com/data.


The Unsplash Dataset is made available for research purposes. It cannot be used to redistribute the images contained within. To use the Unsplash library in a product, see the Unsplash API.

Comments
  • Potential Data Cleanup activities

    Potential Data Cleanup activities

    In the unsplash_photos.photo_location_country and unsplash_photos.photo_location_city the values appear to be freeform text that was probably direct user input, with effectively duplicate entries for example,

    unsplash_lite=# select '>' || photo_location_city || '<' as city, '>' || photo_location_country || '<' as country,  count(*) from unsplash_photos where lower(photo_location_city) like '%london%' group by 1,2;
     ?column?  |       ?column?       | count
    -----------+----------------------+-------
     >LONDON < | >United Kingdom <    |     1
     >London<  | >Canada<             |     7
     >London<  | >Egyesült Királyság< |     1
     >London<  | >England<            |     1
     >London<  | >U.K.<               |     2
     >London<  | >U.K<                |     1
     >London<  | >United Kingdom <    |     1
     >London<  | >United Kingdom<     |    73
     >London<  |                      |     3
    (9 rows)```
    

    It looks like there needs to be some data cleaning on these fields, definitely some stripping white space and such. Is it assumed that we should do our own location normalization on this and possibly add in a normalized_photo_location_country and normalized_photo_location_city ?

    Also - over in unsplash_conversion.conversion_country this appears to be ISO 2 letter country codes. Is this guaranteed to be a valid ISO 2 letter country code? And was this data created based upon a maxmind geoip lookup or something similar?

    Thanks so much for this dataset, I think it is going to be quite useful for demonstrational purposes. I hope these questions help increase the quality of what is a already great dataset.

    bug 
    opened by copiousfreetime 5
  • API for Random Images

    API for Random Images

    I love your API and would like to integrate your commercial images into our product but through your API, do you consider creating an API Endpoint?

    It could work the same way as your existing API, just for the usage of those datasets.

    Creative Commons Images from Flickr is the same, but I like your API more. 👍

    enhancement 
    opened by themataleao 5
  • 1.1.0 Release

    1.1.0 Release

    Overview

    • Closes #10
    • Closes #13
    • Closes #21
    • Closes #22
    • Closes #29

    A 1.1.0 release tag will be created with more details about what's new in this version:

    New:

    • #10: Included user descriptions of the photos
    • #21: Included width, height and aspect ratio of photos
    • #22: Included colors data from photos, coming from a 3rd party AI

    Fix:

    • #13: Trimmed some fields.
    • #29: Replaced newlines in keywords file by spaces to avoid CSV importation issues
    documentation enhancement 
    opened by TimmyCarbone 3
  • Image analysis metadata available?

    Image analysis metadata available?

    Ticket #21 mentions additional image metadata that should be in the dataset. Are there other image analysis things that unsplash calculates that could be added? I'm in particular thinking of color value statistics, mean/median pixel value, min/max pixel values etc.

    enhancement question 
    opened by copiousfreetime 3
  • 1.0.1 - Fix always empty landmark columns

    1.0.1 - Fix always empty landmark columns

    Overview

    • Closes #12
    • Fix: All landmark columns are null
    • Fix: Some landmark names showing as empty strings instead of null
    • Fix: Duplicate entry for one photo in the Full Dataset

    New release

    • Upon merging, create a 1.0.1 tag and release for the dataset.
    • /lite/latest API link updated to the 1.0.1 dataset.
    bug 
    opened by TimmyCarbone 3
  • Explanation on the ai_service_2_confidence column in keywords.tsv000 (range seems weird)

    Explanation on the ai_service_2_confidence column in keywords.tsv000 (range seems weird)

    Describe the bug Hello ,

    I was looking on the data from the lite dataset this morning and I noticed something weird in the column 'ai_service_2_confidence' from the keywords.tsv000 file.

    when I applied some stats on the columns about ai_service the column 'ai_service_2_confidence' seems to have extreme value that are exceeding 100 that is for me the expected max (if I take the ai_service_1_confidence as reference for exemple)

    image

    To Reproduce

    There is the code to build the stats

    import pandas as pd
    dfp_keywords_raw = pd.read_csv('keywords.tsv000', sep='\t', header=0)
    dfp_keywords_raw[['ai_service_1_confidence', 'ai_service_2_confidence']].describe()
    

    Steps to reproduce the behavior: Having a python environment (3.6.13) with pandas 1.1.5 installed

    Expected behavior I am expecting to have a value in the column 'ai_service_2_confidence' in keywords.tsv000 file between 0 and 100 or if it's not the case having a more precise description of the value for the 'ai_service_2_confidence' in the description (like the range)

    Additional context I have a list of the keywords that seems to be impacted by these extreme values unsplash_extreme_value.zip

    Hope that it will help on your investigation 🕵️‍♀️ (and I hope that is not just me that is missing something)

    PS: your dataset is great by the way (really hope to have access to the full version soon)👍

    bug 
    opened by jeanmidevacc 2
  • Downloading unsplash dataset

    Downloading unsplash dataset

    I am trying to download unsplash dataset lite version and the link for the lite version download doesn't give me images. Is image in the download link or do I need to download it by using API?

    opened by darwinkeem 2
  • Question about the entities behind the

    Question about the entities behind the "anonymous_user_id"

    Hey, I'm trying to calculate the average amount of images a user downloads.

    As I know from my own photo stats, a lot of downloads are generated via API requests from external applications. You state in your API doc that external applications don't need to authenticate on a user level.

    My question: Is for an external application like Trello one anonymous user id generated or do you guys have a better approach to distinguish users "behind" the external application?

    Example from the test dataset Could the user from the first row (942 downloads) really be one person or also a whole logical entity like Trello?

    anonymous_user_id | downloads ---- | --- 5a055748-57d2-45c1-a882-5b9bb9313509 | 942 beb0923e-c17d-4a90-a8db-47b0f45fb0fc |897 85e5db9c-07c7-49bf-9e08-5cbd1603dd74 | 546 ... | ...


    Thanks a lot for the answer and great job with the data set. 👍 enhancement question 
    opened by vii33 2
  • Is it expected to have fields where all values are null

    Is it expected to have fields where all values are null

    When reviewing the data in the lite dataset, all of the following fields are null in all records.

    • unsplash_photos.ai_primary_landmark_name
    • unsplash_photos.ai_primary_landmark_latitude
    • unsplash_photos.ai_primary_landmark_longitude
    • unsplash_photos.ai_primary_landmark_confidence

    If all of these are supposed to be null all the time - It may be useful to drop those columns from the dataset completely.

    Although if these columns do have data in the full dataset it makes sense to have them exist. If this is the case, it may be useful to update the documentation to note that these fields are null in the lite dataset and have values in the full dataset.

    In any case, just checking to make sure that this is the expected behavior.

    bug 
    opened by copiousfreetime 2
  • Feature request: Add description = true feature to your random API requests

    Feature request: Add description = true feature to your random API requests

    Hello,

    I'm an English Learning Educator and I have a registered project set up already.

    I would like to get random images, but ONLY the ones that have a clear or detailed description field, not null or empty values.

    Is there a way to do this with your current api or can it be implemented by your team as a feature request?

    something like this:

    https://api.unsplash.com/photos/random?description=true&description_min_chars=10&client_id=XXXXXX

    params

    description = true (required)

    description_min_chars = int (required) minimum description characters length or char count

    Regards

    Hugo Barbosa

    enhancement 
    opened by inglesuniversal 1
  • Will I be banned if I download the pictures?

    Will I be banned if I download the pictures?

    I've applied the full dataset and it was approved. Now I get the 47 GB dataset. Will I be banned if I download the pictures? I have a 1Gb/s server and I'd download the pictures in 'photos.tsv000', the url begins in 'images.unsplash.com', I wonder if I could get banned when I download them too quickly? (For a 1Gb server of mine, about 5-6 pictures per second.)

    opened by orange2008 1
  • Photo ID 9_9hzZVjV8s

    Photo ID 9_9hzZVjV8s

    Describe the bug URL is bad

    To Reproduce Try downloading it

    Expected behavior Good URL

    Additional context Add any other context about the problem here.

    bug 
    opened by peardox 4
  • Elaboration of data fields and additions

    Elaboration of data fields and additions

    [1] photo_featured does this include the featured topic categories at the top?
    [1.1] Could this field include which topics it is featured in, but also if the photo was submitted and rejected from a topic? [1.2] Is there historic data for which images were not included as 'searchable' before the search system was replaced for everything being searchable?

    [2] suggested_by_user the description mentions 'a user (human)'. At some point (maybe?) unsplash was adding tags or keywords to its approved/moderated photos, does (could) this distinguish who added it (uploader or staff)?

    [4] keyword Is this referring to the search terms used to find the photo? [4.1] assuming it is the searching keywords, can we add a field for the position it was displayed on the website (i.e. if it was the first row first column, or it was an image that was 30 photos down that a searcher scrolled down to find and pick)

    Thanks for releasing the dataset, its a great contribution to the research community!

    enhancement 
    opened by cadop 1
  • Image cannot be displayed contains error

    Image cannot be displayed contains error

    Describe the bug Photo with id sEDzxW4NhL4 has errors. While it can be accessed via photo_url https://unsplash.com/photos/sEDzxW4NhL4 it cannot get accessed in photo_img_url https://images.unsplash.com/photo-1586019496196-bdbea65add07

    To Reproduce https://images.unsplash.com/photo-1586019496196-bdbea65add07

    Expected behavior

    Additional context

    bug 
    opened by sniafas 1
  • Dataset of all Unsplash contributors

    Dataset of all Unsplash contributors

    Is your feature request related to a problem? Please describe. Since the Unsplash Slack server as the only connection point of the community isn't as populated as it could be, I think there could be another way of bringing the people of Unsplash together.

    Describe the solution you'd like With a dataset of all Unsplash contributors it would be possible to create a map, giving them a chance to find other motivated photographers nearby. The dataset should contain the name, the location, the number of photos, the URL and maybe the linked website.

    Describe alternatives you've considered Before, there have been local Slack channels on the server to connect with other people from the same country, but afaik they have been shutdown.

    Additional context Nothing to add

    enhancement 
    opened by juppcamper 3
  • Publishing on Kaggle

    Publishing on Kaggle

    Hello,

    Thanks for sharing / publishing this dataset. Are there any plans for mirroring this dataset on Kaggle? If not, can I publish the Lite Dataset as a public dataset on Kaggle linking it back to Unsplash as the source and using the same licensing terms as here?

    It would be great to make this data available on Kaggle where a lot of ML research and models can be built.

    question 
    opened by vopani 3
Releases(1.2.0)
  • 1.2.0(Jul 30, 2021)

    New:

    Fix:

    • #39: Fixed AI confidence for AI keywords

    Data:

    • The collection_id field in the collections dataset field can now be a string
    • Added more search conversions
    • Historical data for search conversions will now be limited to 1 year before each version's release date.
    • Added ~1M photos to the Full Dataset.
    • Replaced 794 dead photos (removed from Unsplash) in the Lite Dataset with approved photos

    Lite dataset link:

    Integrity checks (SHA-256):

    • Lite: 461fa4a1796b7966fc3aa904ce2e7f18890323243ed0e95f47c7042b335fcd98
    • Full: daa99dab8ba7a47d530356311ffa73f17eb403898a75399c54812e9dd582f8af
    Source code(tar.gz)
    Source code(zip)
  • 1.1.0(Sep 24, 2020)

    New:

    • #10: Included user descriptions of the photos
    • #21: Included width, height and aspect ratio of photos
    • #22: Included colors data from photos, coming from a 3rd party AI

    Fix:

    • #13: Trimmed some fields.
    • #29: Replaced newlines in keywords file by spaces to avoid CSV importation issues

    Data:

    • Replaced 307 deleted photos in the Lite dataset with new approved photos
    • Removed about 17k deleted photos in the Full dataset
    • Updated conversions data with latest conversions. Full dataset now weighs ~25GB (vs. 16GB)

    Datasets:

    Integrity checks (SHA-256):

    • Lite: 266e45a8658ab2456779b3376b109e435e595646126846603f2efee5b47ee526
    • Full: 19abc3494bda06e36e61ccabf4dd2ca8e046ac50a5e4e3570cc8aa89ed6a9713
    Source code(tar.gz)
    Source code(zip)
  • 1.0.1(Aug 12, 2020)

    Fix:

    • #13: AI landmarks were always empty.
    • Some landmark names were blank instead of NULL
    • Removed duplicated photo zV2-QjJqkI in the Full Dataset

    Datasets:

    • Lite: Version 1.0.1
    • Lite dataset link now follows the pattern: https://unsplash.com/data/lite/{version}

    Integrity checks (SHA-256):

    • Lite: aa199951dd8756563f7ffef4abbc2d20c845bcff62241ae677af523728819d60
    • Full: ee47f7542e5ef260e6b904046b4837532f420412a0e2c299dcecab55acd28d1f
    Source code(tar.gz)
    Source code(zip)
  • 1.0.0(Aug 6, 2020)

Owner
Unsplash
Building the internet's open library of freely usable visuals. Join us 👫
Unsplash
Empirical Study of Transformers for Source Code & A Simple Approach for Handling Out-of-Vocabulary Identifiers in Deep Learning for Source Code

Transformers for variable misuse, function naming and code completion tasks The official PyTorch implementation of: Empirical Study of Transformers fo

Bayesian Methods Research Group 56 Nov 15, 2022
Akshat Surolia 2 May 11, 2022
Code and Resources for the Transformer Encoder Reasoning Network (TERN)

Transformer Encoder Reasoning Network Code for the cross-modal visual-linguistic retrieval method from "Transformer Reasoning Network for Image-Text M

Nicola Messina 53 Dec 30, 2022
QRec: A Python Framework for quick implementation of recommender systems (TensorFlow Based)

Introduction QRec is a Python framework for recommender systems (Supported by Python 3.7.4 and Tensorflow 1.14+) in which a number of influential and

Yu 1.4k Jan 01, 2023
This package is for running the semantic SLAM algorithm using extracted planar surfaces from the received detection

Semantic SLAM This package can perform optimization of pose estimated from VO/VIO methods which tend to drift over time. It uses planar surfaces extra

Hriday Bavle 125 Dec 02, 2022
Human head pose estimation using Keras over TensorFlow.

RealHePoNet: a robust single-stage ConvNet for head pose estimation in the wild.

Rafael Berral Soler 71 Jan 05, 2023
Scalable Graph Neural Networks for Heterogeneous Graphs

Neighbor Averaging over Relation Subgraphs (NARS) NARS is an algorithm for node classification on heterogeneous graphs, based on scalable neighbor ave

Facebook Research 67 Dec 03, 2022
TransZero++: Cross Attribute-guided Transformer for Zero-Shot Learning

TransZero++ This repository contains the testing code for the paper "TransZero++: Cross Attribute-guided Transformer for Zero-Shot Learning" submitted

Shiming Chen 6 Aug 16, 2022
More Photos are All You Need: Semi-Supervised Learning for Fine-Grained Sketch Based Image Retrieval

More Photos are All You Need: Semi-Supervised Learning for Fine-Grained Sketch Based Image Retrieval, CVPR 2021. Ayan Kumar Bhunia, Pinaki nath Chowdh

Ayan Kumar Bhunia 22 Aug 27, 2022
Experimental code for paper: Generative Adversarial Networks as Variational Training of Energy Based Models

Experimental code for paper: Generative Adversarial Networks as Variational Training of Energy Based Models, under review at ICLR 2017 requirements: T

Shuangfei Zhai 18 Mar 05, 2022
Vision Transformer for 3D medical image registration (Pytorch).

ViT-V-Net: Vision Transformer for Volumetric Medical Image Registration keywords: vision transformer, convolutional neural networks, image registratio

Junyu Chen 192 Dec 20, 2022
A Keras implementation of CapsNet in the paper: Sara Sabour, Nicholas Frosst, Geoffrey E Hinton. Dynamic Routing Between Capsules

NOTE This implementation is fork of https://github.com/XifengGuo/CapsNet-Keras , applied to IMDB texts reviews dataset. CapsNet-Keras A Keras implemen

Lauro Moraes 5 Oct 23, 2022
Parameterized Explainer for Graph Neural Network

PGExplainer This is a Tensorflow implementation of the paper: Parameterized Explainer for Graph Neural Network https://arxiv.org/abs/2011.04573 NeurIP

Dongsheng Luo 89 Dec 12, 2022
Advancing mathematics by guiding human intuition with AI

Advancing mathematics by guiding human intuition with AI This repo contains two colab notebooks which accompany the paper, available online at https:/

DeepMind 315 Dec 26, 2022
Easy to use and customizable SOTA Semantic Segmentation models with abundant datasets in PyTorch

Semantic Segmentation Easy to use and customizable SOTA Semantic Segmentation models with abundant datasets in PyTorch Features Applicable to followin

sithu3 530 Jan 05, 2023
Image augmentation library in Python for machine learning.

Augmentor is an image augmentation library in Python for machine learning. It aims to be a standalone library that is platform and framework independe

Marcus D. Bloice 4.8k Jan 07, 2023
Official PyTorch Implementation of paper EAN: Event Adaptive Network for Efficient Action Recognition

Official PyTorch Implementation of paper EAN: Event Adaptive Network for Efficient Action Recognition

TianYuan 27 Nov 07, 2022
Source code for our paper "Molecular Mechanics-Driven Graph Neural Network with Multiplex Graph for Molecular Structures"

Molecular Mechanics-Driven Graph Neural Network with Multiplex Graph for Molecular Structures Code for the Multiplex Molecular Graph Neural Network (M

shzhang 59 Dec 10, 2022
The GitHub repository for the paper: “Time Series is a Special Sequence: Forecasting with Sample Convolution and Interaction“.

SCINet This is the original PyTorch implementation of the following work: Time Series is a Special Sequence: Forecasting with Sample Convolution and I

386 Jan 01, 2023
Back to the Feature: Learning Robust Camera Localization from Pixels to Pose (CVPR 2021)

Back to the Feature with PixLoc We introduce PixLoc, a neural network for end-to-end learning of camera localization from an image and a 3D model via

Computer Vision and Geometry Lab 610 Jan 05, 2023