{"id":15633651,"url":"https://github.com/mrdbourke/airbnb-amenity-detection","last_synced_at":"2025-04-09T16:20:01.219Z","repository":{"id":40965733,"uuid":"241791258","full_name":"mrdbourke/airbnb-amenity-detection","owner":"mrdbourke","description":"Repo for 42 days project to replicate/improve Airbnb's amenity (object) detection pipeline.","archived":false,"fork":false,"pushed_at":"2024-08-30T23:53:34.000Z","size":55571,"stargazers_count":168,"open_issues_count":6,"forks_count":56,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-04-09T16:19:49.472Z","etag":null,"topics":["airbnb-amenity-detection","computer-vision","deep-learning","detectron2","machine-learning","machine-learning-project","object-detection"],"latest_commit_sha":null,"homepage":"https://dbourke.link/airbnb42days","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mrdbourke.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-02-20T04:16:50.000Z","updated_at":"2025-02-18T06:56:23.000Z","dependencies_parsed_at":"2024-10-30T08:34:09.605Z","dependency_job_id":null,"html_url":"https://github.com/mrdbourke/airbnb-amenity-detection","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrdbourke%2Fairbnb-amenity-detection","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrdbourke%2Fairbnb-amenity-detection/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrdbourke%2Fairbnb-amenity-detection/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrdbourke%2Fairbnb-amenity-detection/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mrdbourke","download_url":"https://codeload.github.com/mrdbourke/airbnb-amenity-detection/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248065281,"owners_count":21041872,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["airbnb-amenity-detection","computer-vision","deep-learning","detectron2","machine-learning","machine-learning-project","object-detection"],"created_at":"2024-10-03T10:49:52.642Z","updated_at":"2025-04-09T16:20:01.194Z","avatar_url":"https://github.com/mrdbourke.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Replicating Airbnb's Amenity Detection with Detectron2 👁 🛏\n\nThis repository contains all the code from a [42-day project](https://www.mrdbourke.com/42days) to replicate Airbnb's amenity detection using [Detectron2](https://github.com/facebookresearch/detectron2).\n\n![example of how amenities might be detected in an image](https://raw.githubusercontent.com/mrdbourke/airbnb-amenity-detection/master/custom_images/airbnb-amenity-detection-workflow-large.png)\n\nSample image taken from: https://www.airbnb.com/rooms/2151100\n\n**What's amenity detection?**\n\nObject detection but for common and useful household items someone looking for an Airbnb rental might want to know about. For example, does this home have a fireplace?\n\nOriginal inspiration was drawn from the article [Amenity Detection and Beyond — New Frontiers of Computer Vision at Airbnb](https://medium.com/airbnb-engineering/amenity-detection-and-beyond-new-frontiers-of-computer-vision-at-airbnb-144a4441b72e).\n\n## Try it for yourself\n\nTo see the major pieces of the puzzle (data downloading, preprocessing, modelling), check out the [example Colab Notebook](https://colab.research.google.com/drive/1BRiFBC06OmWNkH4VpPl8Sf7IT21w7vXr).\n\nYou can also see a [live and deployed app which uses the model](https://airbnb-amenity-detection.appspot.com/) (note: this may have been taken down by the time you check it due to costs, an extension would be finding a way to deply the model for little to no costs).\n\nIf the deployed application doesn't work, you can watch [this video](https://youtu.be/smlQbh6jQvg) to get an idea:\n\n[![deploying the airbnb amenity detection machine learning app on youtube](http://img.youtube.com/vi/smlQbh6jQvg/0.jpg)](http://www.youtube.com/watch?v=smlQbh6jQvg \"I got my machine learning model deployed! | Airbnb Amenity Detection Part 8\")\n\n## What's in this repo?\n\n* Notebooks with 00-10 are all the steps I took to train the full model, largely unchanged from when I originally wrote them.\n  * For a cleaned up version, see the [example Colab Notebook](https://colab.research.google.com/drive/1BRiFBC06OmWNkH4VpPl8Sf7IT21w7vXr).\n* `preprocessing.py` contains the preprocessing functions for turning [Open Images images \u0026 labels](https://storage.googleapis.com/openimages/web/index.html) into [Detectron2 style](https://detectron2.readthedocs.io/tutorials/datasets.html).\n* `downloadOI.py` is a slightly modified downloader script from [LearnOpenCV](https://www.learnopencv.com/fast-image-downloader-for-open-images-v4/) which downloads only certain classes of images from Open Images, example:\n\n```\n# Download only images from the Kitchen \u0026 dining room table class from Open Images validation set\n!python3 downloadOI.py --dataset \"validation\" --classes \"Kitchen \u0026 dining room table\"\n```\n* `app` contains a Python script with a [Streamlit](https://www.streamlit.io) app built around the model, if you can see the live version, Streamlit is what I used to build it.\n* `custom_images` contains a series of different images related to the project, including various rooms around my house to test the model.\n\n## See how it was done\n\n* [Daily progress, notes and code in a journal format](https://dbourke.link/airbnb42days) (since this was a 42-day project, I took notes every day on what I was working on).\n* [YouTube video series](https://www.youtube.com/playlist?list=PL6vjgQ2-qJFeMrZ0sBjmnUBZNX9xaqKuM) starting from the project overview to building a model to deploying a model to wrapping up the project.\n* All [modelling experiments](https://app.wandb.ai/mrdbourke/airbnb-amenity-detection) I tracked using Weights \u0026 Biases.\n\nQuestions/feedback/advice is welcome: daniel at mrdbourke dot com.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrdbourke%2Fairbnb-amenity-detection","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmrdbourke%2Fairbnb-amenity-detection","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrdbourke%2Fairbnb-amenity-detection/lists"}